MCPcopy Index your code
hub / github.com/Gisto/Gisto

github.com/Gisto/Gisto @v2.12.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.12.0 ↗ · + Follow
453 symbols 1,472 edges 188 files 0 documented · 0% updated 4d agov2.12.0 · 2026-07-04★ 1,1559 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Gisto MK II

GitHub License GitHub Release

Snippets made awesome

Gisto is a code snippet manager that runs on GitHub Gists / GitLab Snippets / local in-browser database and adds additional features such as searching, tagging and sharing snippets while including a rich code editor. You can also use local storage to save snippets directly in your browser.

[!NOTE]

Latest builds are always at the releases tab or at gisto.org

[!IMPORTANT]
Current version is a complete rewrite of the original Gisto.

Table of Contents

🍾 New version (2.x.x)

Tracked Via issue: #387

changelog

All progress of current version can be tracked on the "main" branch. New version uses Tauri instead of electron - what significantly reduces the file size

Previous version (up to 1.13.4)

Previous version can be tracked via the "master" branch.


👁️ Preview

(click to play)

Gisto MK-II


ℹ️ About

Gisto is a code snippet manager with support for multiple snippet backends, a rich code editor, searching, tagging, and sharing.


🔌 Supported Snippet Backends

GitHub Gists

The default backend. Uses your GitHub account and the Gists API. All snippets are stored on GitHub and accessible at gist.github.com at any time. Requires a GitHub personal access token.

GitLab Snippets

Uses your GitLab account and the Snippets API. All snippets are stored on GitLab and accessible from your GitLab account. Requires a GitLab personal access token.

Snippet-Bin

Self-hosted snippet server inspired by the GitHub Gists API. Provides the same Gisto experience with full data ownership — your snippets never leave your infrastructure. Deploy with Docker behind your own domain or VPN. Requires a Snippet-Bin instance URL and API token.

When to use Snippet-Bin: You want a private snippet store without relying on GitHub/GitLab, need to host behind a corporate firewall, or prefer owning your infrastructure.

Local Storage

No account required. Snippets are stored in your browser's IndexedDB. You can export and import your snippets as JSON files from Settings.

When to use Local Storage: You want to try Gisto without setting up an account, need offline-first access, or prefer not to sync snippets to any external service.


⬇️ Getting gisto

Homebrew (Recommended for macOS)

brew install --cask Gisto/tap/gisto

Download from website

Visit gisto.org for more information.

Download from realeases

Download Gisto for macOS, Windows, Linux from the releases tab

Web app


Desktop app is built with Tauri for a smaller file size.


⚠️ Important Notice About Installation

This App is Not Code-Signed

Since this is an open-source project and we currently do not have the resources to purchase code-signing certificates, the application is not signed. As a result:

  • On Windows: You may see a warning like "Windows protected your PC" or "Unrecognized app."
  • On macOS: You may see a message saying "This app is from an unidentified developer."

These warnings are normal for unsigned applications and do not mean the app is harmful. However, always ensure you download the app from the official release page of this repository to avoid tampered files.

How to Install the Unsigned App

Windows:

  1. When the warning appears, click More info.
  2. Select Run anyway to proceed with the installation.

macOS:

  1. After downloading, if you see the warning, go to System Preferences > Security & Privacy > General.
  2. Click Open Anyway next to the blocked app message.
  3. Confirm by clicking Open when prompted.

🌱 Features

  • Advanced search
  • Enterprise log-in (under consideration)
  • Tags
  • Syntax highlight
  • Grouping by language
  • Quick snippet actions
  • Copy to clipboard
  • Copy file contents to clipboard
  • Open in external tools like plunkr, carbon.now.sh, jsfiddle, etc.
  • Editor settings
  • Theme color changer
  • Web app
  • Support for multiple languages - (this feature machine generated, experimental and not fully implemented yet)
  • Open source
  • Local storage mode - Use IndexedDB to store snippets locally without a GitHub/GitLab account

and more...


🔍 Privacy/authentication

Gisto supports two authentication modes:

  1. GitHub/GitLab - Authenticate using GitHub Access token or GitLab Personal Access Token

You may manually create an access token from the account settings at GitHub and login using the generated token.

Gisto only saves the Access token in your local storage and nothing else.

This token will be saved permanently until you log out, or it will expire.

  1. Local Mode - Store snippets locally using IndexedDB

No account required. Your snippets are stored in your browser's local database. You can export and import your snippets as JSON files from Settings.


🌐 Internationalization

Gisto is available in multiple languages. You can change the language in the settings.

[!NOTE]

Please note that the translations are machine-generated and may not be perfect. If you would like to contribute to the translations, please feel free to submit a pull request.

⚙️ Latest builds

Latest builds are always at the releases tab


🐞 Issues, bug reporting and pull requests

Please feel free to add a bug / feature request / suggestions to the issue tracker.

Pull requests are very welcome


👨‍💻 Development setup

Make sure you have nodejs and pnpm (we use pnpm) installed in the development machine

Setup

  1. Clone the latest "main" branch: git clone -b main --single-branch https://github.com/gisto/gisto.git
  2. Run pnpm install
  3. Run pnpm dev to start the development app (vite)
  4. Run pnpm tauri dev to start the development desktop app (vite with Tauri)

🕶️ Contribution

Please squash commits per "feature"

Flow

  1. Create a branch from latest main
  2. Add new code additions
  3. Write meningfull commit message using pnpm commit command (it will be linted, as we generate changelog from commits)
  4. Push
  5. Open pull request
  6. Merge to main - changelog will be automatically updated via GitHub Actions

🚀 Release cycle

⚠︎ For maintainers

The release process is fully automated via GitHub Actions. Here's the flow:

flowchart TD
    A[Maintainer triggers

automate-release.yml] -->|selects version bump| B{bump type}
    B -->|patch| C[Patch version bump]
    B -->|minor| D[Minor version bump]
    B -->|major| E[Major version bump]

    C --> F[Bump version & update CHANGELOG]
    D --> F
    E --> F

    F --> G[Push tag to remote]
    G --> H[Merge main → release branch]
    H --> I[Trigger publish.yml]

    I --> J[Build for macOS ARM]
    I --> K[Build for macOS Intel]
    I --> L[Build for Linux]
    I --> M[Build for Windows]

    J --> N[Create GitHub Release]
    K --> N
    L --> N
    M --> N

    N --> O[Trigger homebrew-tap.yml]
    O --> P[Update Homebrew tap]

Steps

  1. Trigger automate-release.yml workflow manually:
  2. Go to Actions → Automate Release → Run workflow
  3. Select version bump type: patch, minor, or major
  4. Click "Run workflow"

  5. Automated process (no manual intervention needed):

  6. Version bumped and tag created
  7. Changelog updated and committed
  8. Changes pushed to remote
  9. main merged into release branch
  10. Build triggered for all platforms
  11. Release created with DMG/EXE/AppImage
  12. Homebrew tap updated automatically

  13. Release available at:

  14. Releases tab
  15. Homebrew: brew install --cask Gisto/tap/gisto

⚖️ License

Gisto is licensed under the MIT License. See LICENSE for the full license text.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 360
Method 45
Interface 38
Class 10

Languages

TypeScript99%
Rust1%

Modules by API surface

src/lib/api/local-api.ts25 symbols
src/lib/providers/snippet-service.ts24 symbols
src/lib/api/github-api.ts21 symbols
src/lib/api/snippet-bin-api.ts20 symbols
src/utils/snippet.ts18 symbols
src/lib/providers/types.ts18 symbols
src/lib/api/gitlab-api.ts18 symbols
src/lib/mock-data.ts13 symbols
src/lib/api/ai-api.ts11 symbols
e2e/test-utils.ts8 symbols
src/utils/string.ts7 symbols
src/lib/store/globalState.ts7 symbols

For agents

$ claude mcp add Gisto \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page