by LichAmnesia
OpenSeek - 广度求索: open-source TUI coding agent with multi-provider routing, MCP, LSP, and Plan/Agent/YOLO modes.
# Add to your Claude Code skills
git clone https://github.com/LichAmnesia/openseekLast scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T15:41:14.253Z",
"npmAuditRan": false,
"pipAuditRan": true
}openseek is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by LichAmnesia. OpenSeek - 广度求索: open-source TUI coding agent with multi-provider routing, MCP, LSP, and Plan/Agent/YOLO modes. It has 222 GitHub stars.
Yes. openseek passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/LichAmnesia/openseek" and add it to your Claude Code skills directory (see the Installation section above).
openseek is primarily written in TypeScript. It is open-source under LichAmnesia on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh openseek against similar tools.
No comments yet. Be the first to share your thoughts!
English | 中文
Want to appear here? Open an issue.
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.
tsserver, rust-analyzer, pyright, gopls, … inline diagnostics during editsopenseek serve --http for IDE bridges & CI$/Mtok pricing, real-time spend tracking, cache-hit accountingBun.spawn / Bun.serve / Bun.file; node alone cannot run it. Even if you install via npm i -g, the openseek command shells out to bun at startup and will fail with env: bun: No such file or directory if bun is not on your PATH.curl -fsSL https://bun.sh/install | bash # any Unix
brew install oven-sh/bun/bun # macOS (Homebrew)
Verify: bun --version should print ≥ 1.3.0.
Pick one. All three put openseek on your PATH.
# A. npm
npm install -g openseek
# 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/LichAmnesia/openseek.git
cd openseek
bun install
bun run build
ln -sf "$PWD/bin/openseek" ~/.local/bin/openseek
openseek # 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 :7117
The 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 needed
bun run lint # biome
bun run typecheck # tsc --noEmit
bun run test # bun test
bun run verify # all three
openseek/
├── 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.