Cross-platform Starcat CLI and MCP bridge for AI agents.
Starcat is a native macOS app that turns GitHub Stars into a searchable, organized and AI-assisted knowledge base. It supports README rendering, tags, private notes, release tracking, repository health signals, AI summaries, semantic search, browser plugin workflows and self-hostable support APIs.
Preferred install method:
brew tap starcat-app/starcat
brew trust starcat-app/starcat
brew install --cask starcatUseful links:
- Home and downloads: https://starcat.ink
- Public support and release notes: https://github.com/starcat-app/starcat-pro
- Starcat App Homebrew tap: https://github.com/starcat-app/homebrew-starcat
- CLI / MCP: starcat-cli / Homebrew tap
- AI Agent Skill: https://github.com/starcat-app/starcat-skill
- Browser plugins: Chrome / Safari
- Localization: https://github.com/starcat-app/starcat-localization
Self-hostable support APIs:
- starcat-sharing-api
- starcat-trending-api
- starcat-weekly-api
- starcat-wiki-api
- starcat-recommend-api
- starcat-discovery-api
starcat is the cross-platform command-line client for Starcat and a stdio MCP server for AI agents such as Codex and Claude Code.
The CLI never reads the Starcat database directly and does not duplicate application business logic. Every read and write goes through Starcat MCP tools, so permissions, dry-run behavior, Pro entitlement checks, and audit logging remain enforced by the Starcat app.
- macOS:
arm64,amd64 - Linux:
arm64,amd64 - Windows:
amd64
The Starcat app still runs on macOS. The CLI may run on the same Mac or connect from a trusted LAN, Tailscale, or WireGuard device.
brew tap starcat-app/starcat-cli
brew install starcatThe tap repository is starcat-app/homebrew-starcat-cli; the installed command is starcat.
curl -fsSL https://github.com/starcat-app/starcat-cli/releases/latest/download/install.sh | shThe default destination is ~/.local/bin/starcat. Override it when needed:
curl -fsSL https://github.com/starcat-app/starcat-cli/releases/latest/download/install.sh \
| STARCAT_INSTALL_DIR=/custom/bin shirm https://github.com/starcat-app/starcat-cli/releases/latest/download/install.ps1 | iexThe default destination is $HOME\.local\bin\starcat.exe.
Every installer reports platform detection, download, checksum verification, and installation progress. Assets come from GitHub Releases and are verified against checksums.txt before installation. The completion message includes PATH guidance, pairing steps, and common commands.
In Starcat, open Settings > MCP Service, start the service, and click Copy Pairing Command. Paste the complete command into the target device's terminal and press Enter, then approve the device in Starcat:
starcat pair "starcat-pair://connect?..."
starcat doctorFor manual entry, run starcat pair, paste the URI, and press Enter. Pairing commands expire after five minutes, can only be redeemed once, and still require approval inside Starcat. Long-lived device credentials are stored in macOS Keychain, Windows Credential Manager, or Linux Secret Service.
After pairing, configure the AI agent with a user-level MCP server:
{
"command": "/absolute/path/to/starcat",
"args": ["mcp"]
}starcat mcp bridges line-delimited JSON-RPC between stdio and Starcat MCP Streamable HTTP. Protocol messages are written only to stdout; diagnostics are written to stderr.
starcat help
starcat capabilities
starcat stats
starcat stats ai --range 30d
starcat stats knowledge
starcat repo search "local RAG" --scope starred --limit 20
starcat repo context owner/repo
starcat repo readme owner/repo
starcat repo summary owner/repo
starcat tags listhelp, version, pair, unpair, doctor, update, and all stats commands use terminal-friendly output. They intentionally have no JSON-output flag because agents receive structured results through starcat mcp. Existing data commands such as capabilities, repo, and tags write JSON directly.
Statistics are read-only local aggregates. starcat stats shows the common Star, knowledge-base, AI token, and RAG chunk counts; stats ai supports --range, --feature, --provider, and --model; stats knowledge shows source coverage and index health.
Write operations are dry-run by default and require --apply to persist changes:
printf '%s' 'A private note' | starcat repo note set owner/repo
printf '%s' 'A private note' | starcat repo note set owner/repo --apply
starcat repo tags add owner/repo Swift macOS --apply
starcat repo status set owner/repo using --applyThe CLI checks GitHub Releases at most once every 24 hours and displays an English notice only in an interactive terminal. It never prints update notices in starcat mcp or automated pipelines.
Disable automatic checks:
export STARCAT_NO_UPDATE_CHECK=1Update a script-installed binary:
starcat updateHomebrew installations remain managed by Homebrew:
brew update
brew upgrade starcat- Plaintext HTTP is restricted to loopback addresses.
- Remote connections require TLS 1.3 and the paired SHA-256 certificate fingerprint.
- Each device receives an independent, revocable token.
- Long-lived tokens are never written to command arguments, stdout, logs, or project files.
- Downloaded update archives must match the SHA-256 release manifest.
- Starcat MCP permissions remain the final authorization boundary.
See SECURITY.md for vulnerability reporting and threat-model details.
Requires Go 1.25 or newer. The module pins the release toolchain to Go 1.26.5 or newer so published binaries include the current standard-library security fixes.
go mod verify
go test ./...
go test -race ./...
go vet ./...
go build -o bin/starcat ./cmd/starcatRelease builds inject a semantic version:
go build -ldflags "-X github.com/starcat-app/starcat-cli/internal/mcp.Version=v0.1.0" ./cmd/starcatscripts/build-all.sh v0.1.0 creates the five platform archives, installers, and checksums.txt under dist/. It does not create tags or publish a release.
See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
MIT. Binary distributions also include THIRD_PARTY_NOTICES.md.
