vtcode
Semantic AI coding agent with multi-provider LLM support
TLDR
SYNOPSIS
vtcode [global-flags] [subcommand] [args]
DESCRIPTION
vtcode is an open-source semantic coding agent written in Rust. It connects to one or more LLM providers and exposes a tool-using assistant that can read, edit, and execute code inside a workspace. A Tree-sitter-based parser gives the agent structural understanding of source files in many languages, enabling targeted edits rather than blind text rewrites.Tool execution is gated by a configurable policy: each tool can be set to allow, deny, or prompt, and shell commands are statically validated with tree-sitter-bash before being run. Sandboxing keeps file operations within the configured workspace boundary.Multi-provider support — OpenAI, Anthropic, DeepSeek, Gemini, Z.AI, Moonshot, OpenRouter, MiniMax, Ollama, LM Studio — is wired through a single configuration file with automatic failover, prompt caching, and context-window-aware truncation.
PARAMETERS
ask prompt
Send a single prompt to the configured model and print the response.exec command
Run command through the agent's policy-aware shell runner with tree-sitter-bash validation.config [show|edit|path]
Inspect or edit the vtcode.toml configuration.--provider name
Override the default LLM provider (e.g. openai, anthropic, deepseek, gemini, ollama, lmstudio).--model id
Override the default model id for the selected provider.--workspace path
Set the working directory the agent operates in (defaults to $PWD).--config file
Use file instead of the default vtcode.toml.--no-tools
Disable tool execution; the agent only emits text.--yes
Auto-approve tool calls instead of prompting per action.-v, --verbose
Increase log verbosity.--version
Print the version and exit.-h, --help
Show usage information.
CONFIGURATION
User configuration lives in vtcode.toml (project-level) or ~/.config/vtcode/vtcode.toml (global). Common keys:
[providers.<name>] — API base URL and credential source for each provider.
[oauth] — OAuth client settings; tokens are stored in the OS keychain.
[tools] — per-tool allow/deny/prompt policies.
[workspace] — root path and ignore globs.
[security] — shell sandbox, command allow/deny lists, max output size.
[context] — context window budget and truncation strategy.
[hooks] — shell commands to run on lifecycle events (session start, tool call, etc.).Secrets are typically read from environment variables (e.g. OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY) or from the OS-native credential store.
SLASH COMMANDS
/login
Run an OAuth flow to authenticate with the active provider./agent
Inspect delegated subagents in the current session./agents active
List currently running subagents./subprocesses
Open the local agents drawer (also bound to Alt+S).
KEYBOARD SHORTCUTS
Alt+S Open Local Agents drawer
Ctrl+C Cancel current request
CAVEATS
vtcode is pre-1.0 — flags, configuration keys, and slash commands change between releases. LLM providers may charge per token; review [security] policies before enabling auto-approve (--yes) on a real codebase. Some features (Zed editor integration, A2A protocol, sandbox isolation) require additional setup beyond the default install.
HISTORY
vtcode is developed by Vinh Nguyen (vinhnx) and published at github.com/vinhnx/vtcode. It is distributed via Cargo (cargo install vtcode), Homebrew (brew install vtcode), and an install script. Releases are published under an open-source license on GitHub.
