A toy AI assistant with agent capabilities and file system access
Project description
ExoBrain
A toy AI assistant with tool calling capabilities and file system access, running in your terminal with or without TUI.
Features
- ๐ป 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.
Quick Start
Installation
Install from pip:
pip install exobrain
Install 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 .
Setup
Run the configuration wizard:
exobrain config init
The wizard will guide you through:
- Selecting AI model providers (OpenAI, Gemini, or local models)
- Configuring API keys
- Setting up basic features and permissions
Usage
# 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 session
Configuration
ExoBrain uses a hierarchical configuration system:
- Project-level config:
./.exobrain/config.yaml(highest priority) - Global config:
~/.config/exobrain/config.yaml
Configuration Management
# 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
Session Management
# 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
Skills System
# List available skills
exobrain skills list
# Search skills
exobrain skills list --search "pdf"
# Show skill details
exobrain skills show mcp-builder
Constitution (Behavioral Guidelines)
Constitutions 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 constitution
Permission System
ExoBrain 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 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
License
MIT License - see LICENSE file for details Note that this project integrates third-party skills that may have their own licenses.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exobrain-0.1.2.tar.gz.
File metadata
- Download URL: exobrain-0.1.2.tar.gz
- Upload date:
- Size: 124.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad53827da2b86972366b2f63acb6fb5f2b5ba2748bbcc780fab482869c3ea4a9
|
|
| MD5 |
1288dc6a84a50d1df8a9c2bed7ba3388
|
|
| BLAKE2b-256 |
2098e3e98581c999a4b366a7addbe0a90c06c952d79bd8f7e5b07543cd62c07f
|
File details
Details for the file exobrain-0.1.2-py3-none-any.whl.
File metadata
- Download URL: exobrain-0.1.2-py3-none-any.whl
- Upload date:
- Size: 148.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96505d308de2bb70ffe52913cbebf91836afc2e8b22ee1d1eb8fbed2fa374179
|
|
| MD5 |
7627211d29d9338485b1d40d05bece38
|
|
| BLAKE2b-256 |
67105d116dc57f59c294d25dda7f334771a91bf694e399745a25d6f0b78cb4cc
|