Skip to main content

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.

ExoBrain Demo with GPT5 API

PyPI - Version License: MIT

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:

  1. Project-level config: ./.exobrain/config.yaml (highest priority)
  2. 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

exobrain-0.1.2.tar.gz (124.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exobrain-0.1.2-py3-none-any.whl (148.9 kB view details)

Uploaded Python 3

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

Hashes for exobrain-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ad53827da2b86972366b2f63acb6fb5f2b5ba2748bbcc780fab482869c3ea4a9
MD5 1288dc6a84a50d1df8a9c2bed7ba3388
BLAKE2b-256 2098e3e98581c999a4b366a7addbe0a90c06c952d79bd8f7e5b07543cd62c07f

See more details on using hashes here.

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

Hashes for exobrain-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 96505d308de2bb70ffe52913cbebf91836afc2e8b22ee1d1eb8fbed2fa374179
MD5 7627211d29d9338485b1d40d05bece38
BLAKE2b-256 67105d116dc57f59c294d25dda7f334771a91bf694e399745a25d6f0b78cb4cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page