Package Exports
- vmcode-cli
- vmcode-cli/src/ui/main.py
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vmcode-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
vmCode
A CLI-based AI coding assistant capable of codebase search, file editing, computer use, and web search.
Features
- Multiple LLM Provider Support: vmCode, OpenAI, Anthropic, OpenRouter, GLM, Gemini, Kimi, MiniMax, and local models
- Tool-Based Interaction: Code search (
rg), file editing, directory operations, and web search - Multiple Modes: Edit (full access), Plan (read-only), and Learn (documentation style)
- Parallel Execution: Run multiple tools concurrently for efficiency
- Conversation History: Markdown logging with context compaction
- Approval Workflows: Safety checks for dangerous commands
Installation
Option 1: npm install (Recommended)
# Install globally (requires Python 3.9+)
npm install -g vmcode-cli
# Run vmcode
vmcodeOr use npx without installing:
npx vmcode-cliWhat Gets Installed
The npm package automatically:
- Checks for Python 3.9+ on your system
- Installs Python dependencies via pip
- Creates
config.yamlfromconfig.yaml.exampleif missing - Sets up the
vmcodecommand globally
Requirements:
- Node.js 14+ (for npm)
- Python 3.9+ (for the application)
- pip (to install Python dependencies)
If Python is not found, the installer will guide you through installing it.
Option 2: Git Clone
# Clone the repository
git clone https://github.com/vincentm65/vmCode-CLI.git
cd vmCode-CLI
# Install Python dependencies
pip install -r requirements.txt
# Run vmcode
python src/ui/main.pyRequirements:
- Python 3.9+
- pip (to install Python dependencies)
Configuration
Setting API Keys
You have three options to set your API keys:
Option 1: Interactive Commands (Recommended)
Run the app and use the built-in commands:
> /key sk-your-api-key-here
> /provider openaiOption 2: Edit config.yaml Directly
Edit config.yaml in the project root and add your keys:
# OpenAI
OPENAI_API_KEY: "sk-your-key-here"
OPENAI_MODEL: gpt-4o-mini
# Anthropic (Claude)
ANTHROPIC_API_KEY: "sk-ant-your-key-here"
ANTHROPIC_MODEL: claude-3-5-sonnet-20241022
# Or any other supported provider...Note: config.yaml is automatically created from config.yaml.example on first run and is in .gitignore to protect your secrets.
Option 3: Environment Variables
Set environment variables (they take precedence over config.yaml):
export OPENAI_API_KEY="sk-your-key-here"
export ANTHROPIC_API_KEY="sk-ant-your-key-here"
vmcodeAvailable Environment Variables
ANTHROPIC_API_KEY- Anthropic (Claude) API keyOPENAI_API_KEY- OpenAI API keyGLM_API_KEY- GLM (Zhipu AI) API keyGEMINI_API_KEY- Google Gemini API keyOPENROUTER_API_KEY- OpenRouter API keyKIMI_API_KEY- Kimi (Moonshot AI) API keyMINIMAX_API_KEY- MiniMax API keyVMCODE_API_KEY- vmCode API key (auto-set via/signup)VMCODE_API_BASE- vmCode API base URL (default:https://api.vmcode.dev)
Commands
/provider <name>- Switch LLM provider/model <name>- Set model for current provider/key <api_key>- Set API key for current provider/mode <edit|plan|learn>- Switch interaction mode/config- Show all configuration settings/signup <email>- Create a vmCode account/account- View your vmCode account and plan details/plan- View available vmCode plans/upgrade- Upgrade your vmCode subscription/help- Display all available commands
/help Menu:
Project Structure
vmCode-CLI/
├── bin/
│ ├── npm-wrapper.js # npm entry point
│ ├── rg # ripgrep binary (Linux/macOS)
│ └── rg.exe # ripgrep binary (Windows)
├── config.yaml # Your API keys and settings (not in git)
├── config.yaml.example # Configuration template
├── requirements.txt # Python dependencies
├── package.json # npm package definition
├── .npmignore # npm package exclusions
├── .gitignore # git exclusions
├── src/
│ ├── core/ # Core orchestration and state management
│ ├── llm/ # LLM client and provider configurations
│ ├── ui/ # CLI interface and commands
│ └── utils/ # Utilities (file ops, search, validation)
└── tests/ # Test suite (for development)vmCode Plan
vmCode offers a built-in proxy provider for a seamless setup experience. Create an account and start coding without configuring third-party API keys.
> /signup you@example.comAvailable plans: Free, Lite, and Pro. Use /plan to see details and /upgrade to change plans.
Paid plans coming soon.
Security
config.yamlis excluded from git via.gitignore- Never commit API keys or sensitive configuration
- Use environment variables for CI/CD or shared environments
Development
vmCode is currently in active development. Production readiness is in progress with focus on:
- Comprehensive test coverage
- Documentation
- Error handling improvements
- Performance optimizations