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 and Skills System - File operations, web search, shell execution. Integrated Anthropic Skills and allow user self defined 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
  • ๐ŸŽฏ Background Tasks - Create, track, and manage background tasks.
  • ๐Ÿ“œ 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

Quick Start

exobrain chat # Start interactive chat
exobrain chat --model openai/gpt-5 # Use specific model
exobrain chat --continue # Resume last session
exobrain chat --help # see other chat options

# Manage sessions
exobrain sessions list
exobrain sessions show <session-id>
exobrain sessions --help # see other session commands

# Manage skills
exobrain skills # manage skills in tui
exobrain skills --help # see other skill commands

# Background tasks
exobrain tasks submit "read file ./data/report.pdf and summarize" # Submit a background task
exobrain tasks list # List background tasks and status
exobrain tasks show <task-id> # Show task details
exobrain tasks --help # see other task commands

# Manage constitution
exobrain constitution list # List all constitutions
exobrain constitution use <name> # Switch constitution
exobrain constitution --help # see other constitution commands

# Make current folder a project folder
exobrain init

Documentation

Docs are comming soon!


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. See the skills directory for details.

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.2.1.tar.gz (403.4 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.2.1-py3-none-any.whl (492.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: exobrain-0.2.1.tar.gz
  • Upload date:
  • Size: 403.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","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.2.1.tar.gz
Algorithm Hash digest
SHA256 8dc98a3cd43b45a1256ca7cef673e388e9cefc98204aaa43728686d5207d5a8f
MD5 a3ec506e171e8b40d4d4fcb52c8a79c0
BLAKE2b-256 91b113ce874e03f8c7868cfe32482ac2dd02ef493b957f27f4247cb8eb13c6cb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: exobrain-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 492.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a05c1fcc17c94c8bcd98025766aaf8f728ed0e925e47b133f10ea7385cec36f5
MD5 882b1a540af24c6f848caebe771541f7
BLAKE2b-256 b677484a4b9a9a91acc452673466616bc16c66e3a0faced43a6d68cd19a3e0c9

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