A toy AI assistant with tool calling capabilities and file system access, running in your terminal with or without TUI.
- 💻 TUI Interface - Terminal UI based on Textual
- 🤖 Multi-Model Support - OpenAI, Gemini, local models (hosted via vLLM etc)
- 🛠️ Tools - File operations, web search, shell execution
- 🎨 Skills System - Integrated Anthropic Skills
- 🔌 MCP Support - Model Context Protocol integration (currently integrated Context7)
- 🔒 Permission Control - Fine-grained permission requests and access control
- 💬 Session Management - Project-level and global session storage
- 📜 Constitutional AI - Customizable behavioral guidelines
The purpose of this project is to experiment with building a modular AI assistant that can integrate multiple models, and tools, with full control and transparency. Only use it for fun, not for production.
Install from pip:
pip install exobrainInstall from source (development):
git clone https://github.com/visualdust/exobrain.git
cd exobrain
git submodule update --init --recursive
# Install with uv
uv sync
# Or with pip
pip install -e .Run the configuration wizard:
exobrain config initThe wizard will guide you through:
- Selecting AI model providers (OpenAI, Gemini, or local models)
- Configuring API keys
- Setting up basic features and permissions
# Start interactive chat
exobrain chat
exobrain chat --no-tui # Disable TUI interface
# Ask a single question
exobrain ask "Summarize today's news"
# Use verbose mode to see tool execution details
exobrain ask "Search for latest AI news" --verbose
# Use specific model
exobrain chat --model openai/gpt-4o
# Project-level or global sessions
exobrain chat --project # Store in ./.exobrain/conversations
exobrain chat --global # Store in ~/.exobrain/data/conversations
exobrain chat --continue # Continue last sessionExoBrain uses a hierarchical configuration system:
- Project-level config:
./.exobrain/config.yaml(highest priority) - Global config:
~/.config/exobrain/config.yaml
# View current configuration
exobrain config show
# Edit configuration
exobrain config edit
# Set/get specific values
exobrain config set agent.max_iterations 500
exobrain config get models.default
# Model management
exobrain models list # List available models
exobrain models use openai/gpt-4o # Set default model# List all sessions
exobrain sessions list
# Show session details
exobrain sessions show <session-id>
# Delete sessions
exobrain sessions delete <session-id>
exobrain sessions delete --all --yes# List available skills
exobrain skills list
# Search skills
exobrain skills list --search "pdf"
# Show skill details
exobrain skills show mcp-builderConstitutions define the AI's behavior and ethical guidelines. They are managed as markdown files.
# Manage constitutions
exobrain constitution list # List all constitutions
exobrain constitution create # Create new constitution
exobrain constitution use <name> # Switch constitution
exobrain constitution edit # Edit current constitutionExoBrain requests permission for sensitive operations:
- Once - Grant for this operation only
- Session - Grant for this chat session
- Always - Add to config permanently
Example:
╭─────────────── Permission Request ───────────────╮
│ ⚠️ Permission Required │
│ │
│ Tool shell_execute │
│ Action Execute shell command │
│ Resource git status │
│ Reason Command not in allowed list │
│ │
│ Grant permission for this action? │
│ │
│ [y] Yes, once [n] No │
│ [s] Yes, session [a] Yes, always │
╰──────────────────────────────────────────────────╯
MIT License - see LICENSE file for details Note that this project integrates third-party skills that may have their own licenses.
