Rust - 以 Claude 代码为灵感的第一个本地代理 CLI 重新实现。
Viden is a local-first coding-agent cockpit for developers who want one terminal surface to chat with a model, approve real workspace changes, supervise delegated agents, and keep enough evidence to resume work later.
Chinese version: README.zh-CN.md
Most coding agents are good at a single conversation. Viden is built around a slightly different job: coordinating programming work. It keeps the active conversation, tool effects, approvals, tests, tasks, memory, provider health, and external agent lanes visible in one operator cockpit.
These are real macOS Terminal screenshots captured from Viden 0.1.30
release-preview states with deepseek / deepseek-v4-flash. They cover the
welcome composer, live-turn cockpit, resize/CJK redraw behavior,
provider/model setup, delegated-lane operation, and side-screen evidence.
Deterministic SVG previews remain under docs/previews/generated/ for
regression review.
Recommended on macOS and Linux:
brew install wikieden/tap/videnVerify the install:
viden --helpDownload a release archive from Viden v0.1.30.
Available release targets:
aarch64-apple-darwin for Apple Silicon macOSx86_64-apple-darwin for Intel macOSx86_64-unknown-linux-gnu for Linux x64x86_64-pc-windows-msvc for Windows x64Install on macOS or Linux:
VERSION=0.1.30
TARGET=aarch64-apple-darwin
curl -L -O "https://github.com/wikieden/viden/releases/download/v${VERSION}/viden-v${VERSION}-${TARGET}.tar.gz"
tar -xzf "viden-v${VERSION}-${TARGET}.tar.gz"
sudo install -m 755 "viden-v${VERSION}-${TARGET}/viden" /usr/local/bin/viden
viden --helpInstall on Windows PowerShell:
$Version = "0.1.30"
$Target = "x86_64-pc-windows-msvc"
Invoke-WebRequest "https://github.com/wikieden/viden/releases/download/v$Version/viden-v$Version-$Target.tar.gz" -OutFile "viden-v$Version-$Target.tar.gz"
tar -xzf "viden-v$Version-$Target.tar.gz"
New-Item -ItemType Directory -Force "$env:USERPROFILE\bin"
Copy-Item "viden-v$Version-$Target\viden.exe" "$env:USERPROFILE\bin\viden.exe"
$env:PATH += ";$env:USERPROFILE\bin"
viden.exe --helpRun Viden. Clean installs use DeepSeek as the default online provider and open the cockpit TUI by default:
videnOn a clean session the TUI starts on a focused welcome composer instead of
opening setup automatically. It stays on that welcome surface while you run
setup commands; the full cockpit appears after the first normal task prompt.
Use Ctrl-P for commands, or submit one of these entries when you want
provider/model setup:
/setup
/setup provider
/connect
/modelsSet a DeepSeek key for live turns:
export DEEPSEEK_API_KEY="sk-..."
videnIf the selected model fails or is unavailable, Viden shows a switch-model
prompt with concrete /model ..., /provider ..., and /provider doctor ...
actions.
Run an explicit offline smoke session when you do not want a live provider:
viden --provider fallback --model test-localUse the legacy line REPL only when you explicitly need it:
viden --no-tui --provider fallback --model test-localStart from source during development:
cargo run -p viden-cli -- --provider fallback --model test-local/test to execute a test through the same permission path and
keep failure evidence visible in /status and the TUI./git diff, /diff, and /git status to review what changed before
committing./brief or /spec ;
use /brief steering init when project conventions should guide lanes./task add, /tasks, /task resume-context, and
/memory./screen side-1 and /screen side-2 when you want a
second terminal to watch agent lanes or ops evidence./lane codex, /lane claude,
/lane run, /lane tmux, or /agent run codex.Enter submits the composer; Ctrl-J is the explicit send action.Ctrl-K clears the composer, Ctrl-R reloads the latest user prompt, and
Ctrl-N starts /task add ....? opens the in-TUI help surface when the composer is empty.Esc or Ctrl-C exits; /quit and /exit also close the TUI.Ctrl-C requests cancellation when the runtime can
observe it, but an in-flight provider request may still finish.Approve; press y to approve, n to deny,
d to focus diff, or use Tab / arrow keys to move between actions./ to open command suggestions. Provider and model commands stay in
the compact completion surface while you are typing; they do not open a large
modal until the command is submitted. Common entries include /help,
/settings, /setup, /connect, /provider, /models, /status, /config, /permissions,
/test, /sessions, /resume, /task, /brief, /spec, /memory,
/lane, /agent, /screen, /lsp, /git, /web, /extensions,
/mcp, and /skills.
Long suggestion lists keep the selected row visible and support mouse
completion on visible rows.Viden loads config from the platform config path and then from
.viden/config.toml, with CLI flags taking precedence.
Inside the TUI, /connect, /provider, /setup provider, and
/settings provider open an opencode-style provider picker. Select a supplier
inside the panel, enter an API key there when required, and then use the
provider config panel to change the key, clear the current session key, run
doctor, or choose that provider's default model. Choosing that provider-scoped
model saves the provider/model, runs provider doctor, and writes readiness
evidence back into the transcript. /models, /model, /setup model, and
/settings model open a provider-grouped model picker that only includes
configured providers. For configured providers, the picker includes active,
favorite, default, and known models; selecting a row applies the provider/model
switch immediately. API keys are masked in the panel and
Viden saves the env var name, not the raw key. Direct commands such as
/settings provider ..., /models , and
/model remain available for scripts and advanced users.
Live provider smoke evidence can be collected without opening the TUI:
scripts/provider-live-smoke.sh --provider deepseek --model deepseek-v4-flash
scripts/provider-live-smoke.sh --provider dashscope-coding-plan --model qwen3.6-plus
scripts/deepseek-dev-scenario-smoke.sh --model deepseek-v4-flashscripts/deepseek-dev-scenario-smoke.sh is the billable development smoke:
it asks DeepSeek to create a tiny Python module, generate and run its test, and
then writes usage.json plus a Markdown summary with input/output/total tokens
and an estimated CNY cost.
provider = "deepseek"
model = "deepseek-v4-flash"
permission_mode = "acceptEdits"
request_timeout_secs = 120
max_retries = 2
[providers.deepseek]
api_base = "https://api.deepseek.com"
api_key_env = "DEEPSEEK_API_KEY"
default_model = "deepseek-v4-flash"
models = ["deepseek-v4-flash", "deepseek-v4-pro"]
favorite_models = ["deepseek-v4-pro"]Useful startup flags:
viden --config .viden/config.toml
viden --no-tui --resume latest
viden --permissions plan
viden --tui-theme aurora
viden --provider fallback --model test-local --tui-startup-checkThe V3 TUI always enters through the unified CoreClient cockpit. Legacy
--tui-screen side-1|side-2 values are accepted for transition compatibility,
but they no longer start a frontend-owned lane/process monitor. Available
skins are aurora, ice, mono, amber, and phosphor; locale, color mode,
density, and motion come from the Core-owned UI preference snapshot.
/mcp, /skills, and /extensions, but
MCP-backed tools are not yet wired into the mutation permission path.README stays focused on product usage. Full usage and implementation detail live in the docs:
Build a local archive:
scripts/package-release.shRun the release
暂无开放 Issues,或尚未同步最近议题。