Gister is a local-fist, and super-fast code snippet manager powered by GitHub Gist. Aspiring to be the Linear for Gist management.
- Local first, making loading gists super fast
- Cross-platform (macOS, Linux, Windows)
- MCP server support for working with agents
- Light-weight (~11Mb) built on Tauri
- Support for GitHub enterprise
- Search snippets
- Free and OSS
| Light Theme | Dark Theme |
|---|---|
![]() |
![]() |
There are multiple ways to install Gister.
For all operating systems (macOS, Windows, Linux) you can visit the releases page and download the latest version.
For macOS you can also use brew:
brew tap gethopp/tap
brew trust gethopp/tap
brew install --cask gethopp/tap/gister
Gister is a Tauri desktop app, with React and TypeScript frontend bundled with Vite, plus a small Rust core that holds the MCP server.
Some extra noteworthy libraries:
- Astryx for the component library and theming
- Dexie (IndexedDB) as the local-first source of truth
- Zustand for runtime state that mirrors the local DB
- CodeMirror for editing and syntax highlighting and and
react-markdownwithremark-gfmfor rendering markdown files - Fuse.js for fuzzy search
- rmcp, the official Rust MCP SDK, runs a full MCP server inside the app
- axum and tokio serve it over streamable HTTP at
127.0.0.1:1996/mcp, so your agents can list, search, read, create, and edit gists while Gister is open
While Gister is running, agents can call these tools over the MCP server:
| Tool | Description |
|---|---|
list_gists |
Lists your gists, most recently updated first. Metadata only, no file contents. |
search_gists |
Fuzzy-searches your gists by description and filename, and returns the matches. |
read_gist |
Reads a single gist by id, including the full text of every file. |
create_gist |
Creates a gist with one or more files. Description is optional; public or secret is fixed at creation. |
update_gist |
Updates a gist's description, or edits, renames, adds, and deletes its files. |
delete_gist |
Deletes a gist by id, permanently. |
get_gist_url |
Returns the public web URL of a gist by id. |
get_current_user |
Returns the signed-in GitHub user's profile (login, name, email). |
sync_gists |
Runs a background sync with GitHub to refresh the local cache. |
Feel free to tackle any points from the ones below if you are up for it!
- Add more keyboard shortcts for oprations like deleting a Gist etc.
- Support for Jupiter notebooks
- Support for GitLab
- Tag support for organizing gists
Or if you find any bug or have any feature requests, please feel free to open an issue or a pull request.
At Hopp, we are building high quality OSS tools to help developers build better software. Some of our projects include:
- Hopp - The best OSS pair-programming app for developers (macOS and Windows)
- Figma-mcp-brigde - Figma Plugin + MCP server that streams live Figma document data to AI tools without hitting Figma API rate limits
- Gister - OSS code snippet manager for developers
If you want to sponsor Gister and our work please check our GitHub Sponsors page: https://github.com/sponsors/gethopp ❤️
I used to be a heavy Lepton user. At some point I figured the project was dead, so I started building my own replacement (turns out the maintainer came back and shipped v2 in the meantime, congrats on that!).
What I really wanted was a code snippet manager that feels like Linear: local-first, keyboard-first, and fast enough that it never gets in the way. That's Gister.

