macOS
Apple Silicon and Intel. Vector search needs the Homebrew SQLite.
- Install GNO
bun install -g @gmickel/gno - Install SQLite (for vector search)
brew install sqlite3 - Set up + prove a folder
gno setup ~/notes --name notes
Install
Current CLI for macOS, Linux, and Windows. MIT-licensed, zero telemetry, and local by default. No account required; configured HTTP model servers and optional gno.sh publishing are explicit network boundaries.
bun install -g @gmickel/gnoDon’t have Bun yet? Install it with bun.sh, then come back and run the command above. GNO requires Bun 1.4.1 or newer.
Per-platform
The install command is the same on macOS, Linux, and Windows. Platform extras are below.
Apple Silicon and Intel. Vector search needs the Homebrew SQLite.
bun install -g @gmickel/gnobrew install sqlite3gno setup ~/notes --name notesx86_64 and arm64. Bun runs the installed CLI package.
bun install -g @gmickel/gnogno setup ~/notes --name noteswindows-x64 supported. arm64 not yet.
bun install -g @gmickel/gnogno setup ~/notes --name notesVerify
gno setup bootstraps an empty install, indexes the folder, and returns only after a keyword search finds an exact result from your own files. Semantic indexing keeps running in the background. Local models load on first use and again after an idle period, so the first semantic search can be slow.
gno --version
gno setup ~/notes --name notes
gno statusgno:// result, and records private lexical and semantic receipts. Safe to rerun.For a second brain or LLM wiki, give the harness both the GNO skill and the retrieval protocol. The skill teaches commands and workflows; the protocol teaches when to retrieve, which search path to use, and how to cite and maintain knowledge.
gno skill install --target claude --scope user
gno agents install --target claude
gno agents verify --target claudeReplace claude with codex, opencode, openclaw, or hermes. MCP users can keep their connector and add the protocol for a supported harness. Start a fresh session and check that the agent retrieves an indexed document and cites it. Agent setup and supported targets. CLI and Web UI users can skip this step.
Cloned a repository with .gno/index.yml? Setup checks the nearest valid project profile but leaves it read-only by default. Preview the portable collection and context changes, then opt in to applying them before lexical setup:
gno profile check
gno profile diff
gno setup . --apply-profileA profile is never required. Missing or invalid profiles fall back to normal setup. Applying a valid profile writes only external user config and index state. It never modifies the tracked profile and never deletes unrelated collections or indexed documents. Databases, model caches, locks, receipts, and secrets do not belong in the repository. Likely secret context files are rejected, and context files are limited to regular UTF-8 files no larger than 64 KiB.
With a valid profile, --apply-profile cannot be combined with an explicit --name or --exclude; conflicts fail before config or index mutation.
--exclude accepts one literal pattern per occurrence. Likely secrets fail closed unless you accept the interactive default-No prompt or pass --authorize-secret-risk; --yes, JSON, non-terminal input, decline, and EOF never authorize that risk. Use --no-semantic to start no semantic worker.
Exit 0 means exact lexical proof completed, even when semantic or connector follow-up remains. Exit 1 is invalid or safely rejected input. Exit 2 is a config, receipt, I/O, store, indexing, proof, or internal failure.
Private lexical and semantic state lives under the configured data directory at setup-receipts/<index>/<folder-fingerprint>.json and setup-semantic/<index>/<folder-fingerprint>.json. Rerunning setup on an unchanged folder reuses the same semantic state.
Setup runs at most one background semantic job per folder, and a rerun does not start a second one. --no-semantic starts no job and leaves a running one alone. If semantic work is pending or failed, setup still reports keyword success and prints the exact foreground gno ... embed <collection> command that finishes it.
Add repeatable --connector flags and JSON output:
gno setup ~/notes --name notes --connector cursor-mcp --connector codex-skill --jsonExact IDs: claude-code-skill, claude-desktop-mcp, cursor-mcp, codex-skill, opencode-skill, openclaw-skill, and hermes-skill. Connector follow-up can report completed_with_actions without invalidating lexical success. MCP targets run a bounded retrieval proof; skill targets remain target_runtime_unverifiable because setup cannot safely execute the host agent runtime. Without connector flags, --json emits setup-command-result@1.0; with one or more, it switches to setup-activation-result@1.0.
gno setup runs on its own and never connects to a running gno serve, gno daemon, or MCP server. Onboarding in the Web UI and desktop app runs the same retrieval check through the running server, but it does not write the setup receipt files.
The Web Health Center, /api/status.activation, doctor, and status report the same readiness state. /api/health is process liveness only. For MCP, use the explicit read-only verification action on the Web Connectors page; installed skill runtimes remain unverifiable rather than being reported as passed.
gno mcp install records the exact Bun + installed GNO runtime, active index, and absolute config, data, and cache roots in the client configuration. That keeps desktop and editor processes on the same local workspace even when their shell environment orPATH differs.
Desktop beta
The desktop build wraps gno serve in a native window with the workspace UI pre-wired. Desktop builds are a beta and may trail the current CLI release; check GitHub Releases for the version attached to each download.
Next
Point GNO at a folder, index it, and wire the skill + MCP into your AI tools.
Install the skill and retrieval protocol. Targets include Claude Code, Codex, OpenCode, OpenClaw, and Hermes Agent.
Install GNO as an MCP server for Claude Desktop, Cursor, Zed, Windsurf, and more.
Tune collections, presets, and model choices via index.yml and the CLI.
Source
CLI, SDK, Web UI, MCP server, and agent skills live in one repository. Read the source, file issues, send a PR, or fork it for your own experiments.