Skip to content
Conduit

mcp server

veni-ai

Veni AI — A terminal-native AI orchestrator built for engineers. Multi-model integration with local (Ollama) and cloud providers. Automate development workflows with project indexing, surgical file ed

A0x0k/veni-aicommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "veni-ai": {
      "command": "uvx",
      "args": [
        "veni-ai"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 26, 2026

✨ Features

🎯 Core

🖥️ Shell ExecutionRun commands with approval gates, output limits, and risk-tiered safety
📝 File EditingWrite, patch, and diff — preview before applying
🔎 Repo SearchRead and index project files for context-aware answers
🧭 Session ControlSave, load, export, resume — never lose a thread

🧩 Intelligence Layer

🧠 Skills System21 skills auto-activate by context — debugging, data analysis, security, more
🎭 PersonasSwitch AI behavior: Expert, Teacher, Critic, Coach, Creative...
💬 Response ModesDetailed, Concise, Socratic, Step-by-Step, Academic...
🔍 Cross-ReferenceSymbol search, import graph, impact analysis before changes

🔌 Extensibility

🧩 Plugin SystemDrop a .py file in plugins/ — instant new commands
🔌 MCP SupportModel Context Protocol — connect any MCP tool server
📦 12 ProvidersOllama (local), OpenAI, Gemini, Anthropic, Groq, free, and more
📱 Telegram GatewayChat with Veni from your phone

🛡️ Safety

🛡️ Approval GatesRisk-tiered — blocks rm -rf, fork bombs, dangerous ops
📁 Workspace IsolationAll file ops constrained to your project
🔒 PII RedactionAPI keys, tokens, emails auto-masked in exports

⚠️ Security Notice: The approval gate is best-effort. For strong isolation, run in a container or VM.


🚀 Quick Start

# Install
pip install veni-ai

# Initialize (interactive wizard)
veni init

# Launch
veni chat --provider ollama --model llama3.2

Try it now — no API key needed

# Free tier (no setup)
veni chat --provider duckduckgo
veni chat --provider free

# Or use Ollama (local)
ollama pull llama3.2
veni chat --provider ollama --model llama3.2

One-shot / pipe mode

veni pipe "explain this error: TypeError: ..."
echo "review this code" | veni pipe
veni pipe "fix bugs in main.py" --provider openai

🧠 Provider Support

ProviderPrivacyTool UseCostQuick Start
🦙 Ollama🔒 100% Local✅🆓 Freeollama pull llama3.2
🧠 OpenAI☁️ Cloud⚡ Native💸 Paidset OPENAI_API_KEY
💎 Gemini☁️ Cloud⚡ Native💸 Tieredset GEMINI_API_KEY
🤖 Anthropic☁️ Cloud⚡ Native💸 Paidset ANTHROPIC_API_KEY
⚡ Groq☁️ Cloud✅🆓 Freeset GROQ_API_KEY
🆓 Free☁️ Cloud⚠️ Limited🆓 Freeno key needed
🌐 DuckDuckGo☁️ Cloud❌🆓 Freeno key needed
🔷 DeepSeek☁️ Cloud✅💸 Paidset DEEPSEEK_API_KEY
🏔️ Mistral☁️ Cloud✅💸 Paidset MISTRAL_API_KEY
🔀 OpenRouter☁️ Cloud✅💸 Paidset OPENROUTER_API_KEY
🐪 Qwen☁️ Cloud✅💸 Paidset QWEN_API_KEY
🔮 Perplexity☁️ Cloud❌💸 Paidset PERPLEXITY_API_KEY

🎮 Command Reference

CommandAction
/newStart a new conversation
/save [name]Save current session
/load <name>Load a saved session
/historyList saved sessions
/export <md|txt|json>Export session
/quit / /exit / /qExit Veni
CommandAction
/modelSwitch provider and model
/systemShow system info
/temperature [value]Set generation temperature
/top_p [value]Set nucleus sampling
/max_tokens [value]Set response length limit
/templateSet prompt template
/statusShow session stats
/plan [on|off|status]Toggle autonomous planning mode
CommandAction
/persona [name|list|current|auto]Switch AI persona (12 built-in)
/mode [name|list|current]Switch response style (11 modes)
CommandAction
/skill listList all skills with active status
/skill search <query>Find skills by keyword
/skill enable <name>Enable a skill
/skill disable <name>Disable a skill
/skill statusShow active skills
/skill auto <query>Auto-detect skills for a query
CommandAction
/pwdShow working directory
/lsList files
/cd <path>Change directory
/read <file>Read file into context
/edit <file>Ask AI to edit a file
/treeShow project structure
/xref <symbol>Find symbol cross-references
CommandAction
/diffShow syntax-highlighted git diff
/commitAI generates commit message
/commit --reviewAI reviews changes before commit
/logShow recent commit history
CommandAction
/approveToggle approval gate
/debugAnalyze error output
/search <query>Web search
/scrape <url>Scrape web page content
/pdf <url>Extract text from PDF URL
CommandAction
/copyCopy last response to clipboard
/pin / /unpin / /pinsPin/unpin responses
/retryRe-generate last response
/summarySummarize conversation
/aliasCreate command alias
/clearClear screen
/themeSwitch theme
/bannerToggle compact header mode
/voiceToggle voice mode
/image <path>Attach image
/statsShow usage statistics
/helpFull help

🔌 MCP Integration

Veni supports the Model Context Protocol for tool extensibility.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
    }
  }
}

MCP tools auto-register on startup alongside native tools.


🧩 Plugin System

Drop a Python file into plugins/:

# plugins/my_plugin.py
PLUGIN_COMMANDS = {
    "/greet": lambda args: f"Hello, {args[0] if args else 'World'}!",
}
PLUGIN_HELP = {
    "/greet": "Say hello to someone.",
}

📊 vs Alternatives

FeatureVeni AIClaude CodeAiderOpen Interpreter
Shell Execution✅✅✅✅
Multi-File Editing✅✅✅✅
Local Models✅❌✅✅
Free Tier✅❌❌✅
MCP Support✅✅❌❌
Plugin System✅✅❌❌
Skills System✅❌❌❌
Personas & Modes✅❌❌❌
Voice ModeOptional❌❌❌
Pipe/CI Mode✅❌❌❌
Approval Gates✅✅❌❌
Web DashboardOptional❌❌❌
12 AI Providers✅❌❌❌
Semantic MemoryOptional❌❌❌

🏗️ Architecture

veni/
├── core.py              # Bot orchestration
├── session.py           # Main run loop
├── chat_engine.py       # Streaming, retry, tool calls
├── cli.py               # Typer CLI entry point
├── config.py            # YAML config management
├── approval.py          # Safety approval gate
├── providers/           # 12 AI provider implementations
├── commands/            # 45+ slash commands
├── tools/               # 12 AI-accessible tools
├── skills/builtins/     # 21 SKILL.md definitions
├── personas/builtins/   # 12 persona YAML files
├── modes/builtins/      # 11 mode YAML files
├── memory.py            # Vector semantic memory
├── indexer.py           # Codebase indexer (10+ langs)
├── mcp.py               # MCP client adapter
├── server.py            # FastAPI dashboard
├── scheduler.py         # Background tasks
├── gateways/            # Telegram bridge
├── plugins/             # Drop-in plugin directory
└── tests/               # 286+ tests

🛠 Development

git clone https://github.com/neoastra303/Veni-AI.git && cd Veni-AI
pip install -e ".[dev]"
pre-commit install

# Full quality check
make check

# Or individual steps
make format       # black
make lint         # ruff
make typecheck    # mypy
make test         # pytest with coverage
make security     # bandit scan

286+ tests · 70%+ coverage · CI/CD · CodeQL · Dependabot


🤝 Contributing

🐛 Report Bug💡 Request Feature
🔧 Open PR⭐ Star the Repo
📖 Contributing Guide🏗️ Architecture

🤝 Contributors

↑↓ navigate openesc close