Installation

Install GNO via Bun, prove local retrieval with gno doctor, and configure vector search on macOS.

After indexing, compiled project context can produce an explicitly included, cited Markdown handoff. It needs no extra service and does not replace agent instructions or enable automatic refresh.

GNO ships as a TypeScript CLI package installed and run by Bun. The same package exposes a web server, TypeScript SDK, and MCP server. The supported runtime is Bun 1.4.1 or newer. On an older Bun, gno serve, gno daemon and gno mcp still start but print a warning: older Bun releases have bugs that can crash a long-running server.

Keep the installed package intact: local models run in a worker that Bun starts from the package source. A standalone bun build --compile binary cannot run local models. No separate daemon installation is required.

macOS and Linux

bun install -g @gmickel/gno

On macOS, vector search requires the Homebrew build of SQLite so GNO can load the SQLite extension for vector similarity:

brew install sqlite3

After indexing at least one folder, verify with gno doctor. Alongside environment checks, doctor derives a bounded term from each local collection and proves that lexical retrieval returns the expected document.

gno doctor

Windows

Current support target is windows-x64. The CLI path works via Bun/global install, and the desktop beta ships as a packaged Windows zip on GitHub Releases. Windows arm64 is not supported yet.

bun install -g @gmickel/gno

Desktop beta

The packaged desktop shell wraps gno serve in a native window with the workspace UI pre-wired. Grab a build from GitHub Releases and run it like any other desktop app. Desktop builds are beta and may trail the current CLI package; verify the version attached to the release before choosing it over the CLI.

Quitting the app stops the server it started. If the app crashes or is force-quit, the server shuts itself down as well, so the next launch starts cleanly.

Verify your install

gno --version
gno doctor
gno status

gno doctor surfaces path resolution, SQLite version, model cache location, disk space, embedding freshness, and retrieval activation. gno status exposes the same activation contract without loading or downloading models or starting a connector runtime. A passed lexical proof means the collection is usable even when semantic search remains pending. Status reports degraded state but still exits 0; doctor exits non-zero when lexical activation fails. A collection with no documents yet is not a failure: doctor shows it as informational (i) and status lists it as no documents yet. Add files, then run gno update.

Connect your AI tools

Most users install a skill or MCP target so the client can search the local index and return cited snippets. One command per client:

# Coding agents (zero-overhead skill install)
gno skill install --target claude --scope user # Claude Code
gno skill install --target codex --scope user
gno skill install --target opencode --scope user
gno skill install --target openclaw --scope user
gno skill install --target hermes --scope user
gno skill install --target all --scope user # all agents

# AI assistants and editors (MCP)
gno mcp install --target claude-desktop
gno mcp install --target cursor
gno mcp install --target zed
gno mcp install --target windsurf
gno mcp install --target claude-code
gno mcp status

Full client list + write-access options: MCP reference. Per-client setup guides: Claude Code, Claude Desktop, Cursor.

Installation and verification are separate. The Web UI’s Connectors page offers an explicit read-only retrieval check for installed MCP targets. Installed skill targets remain target_runtime_unverifiable because GNO can inspect their files but cannot prove that a client loaded or executed them.

Next steps