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

# Manage available skills in TUI
exobrain skills

# 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.3.tar.gz (136.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.3-py3-none-any.whl (166.7 kB view details)

Uploaded Python 3

File details

Details for the file exobrain-0.1.3.tar.gz.

File metadata

  • Download URL: exobrain-0.1.3.tar.gz
  • Upload date:
  • Size: 136.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","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.3.tar.gz
Algorithm Hash digest
SHA256 0826a0aad1c0efd3cc14ffa3ad7aa15593434bc7110c8d73f71d0e3c7d9cdf90
MD5 6bd5afab8fa0bd9f3cc8f489f1adbfc4
BLAKE2b-256 8973b86db26ed856511129f892baf2ed2ed49a082ab66a8355d9f557b32ac9a9

See more details on using hashes here.

File details

Details for the file exobrain-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: exobrain-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 166.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 61b7b659e7ead2d8f330249a08e74a45b5558506bc0bbb41cba0ecbd5cd61671
MD5 df6f237e99875ed823c5d78324e9c25d
BLAKE2b-256 d24ddaeeef7de232f6856653985e0c0f0dd992fec6fe8abc459d9585df5eb813

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