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

For OpenAI apis, currently up to GPT-5 is supported, while GPT-5.2 is not (due to planning is not currently supported yet), but will be added in future updates. 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.4.tar.gz (139.2 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.4-py3-none-any.whl (171.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: exobrain-0.1.4.tar.gz
  • Upload date:
  • Size: 139.2 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.4.tar.gz
Algorithm Hash digest
SHA256 6b58edd1ae60a858f7476615e35d42ba37607e9f7eee134ab214dde2e2f35ae7
MD5 6458a044f6fa9d034600c6e5929d32bf
BLAKE2b-256 b403952ed3fd9747e0905f8f0530d9870bfed5eeb55821438c8237be9c9919f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: exobrain-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 171.0 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 168deab8749be5a4c5ce555042784df0d0d93a1f217992e42fe7df2198e25935
MD5 6264fcd9c2babcc702e60fb875d4cf8d
BLAKE2b-256 143cb24590bbc4158dc2ef76a487e4455d754325eac1307ed05d74a6e0bbab36

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