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.0.tar.gz (402.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.2.0-py3-none-any.whl (491.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: exobrain-0.2.0.tar.gz
  • Upload date:
  • Size: 402.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.2.0.tar.gz
Algorithm Hash digest
SHA256 7330e7311d6789ee807f2630258dca0f1d7d711d2de609d0ecac3353ea885e96
MD5 0482bcbd4942797ee5fd1261a59dcb03
BLAKE2b-256 86cd2bbeb68b12e578b59d13942b3f03776d1a7d0de1aeb313692ae683b4810a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: exobrain-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 491.1 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a9548c3a68df3847ba156a45b5a185c6637e98e7cc89f54dcef91e71ad6bc96
MD5 ff8e9549ddc154d10a911ff075cd299d
BLAKE2b-256 fded1ea930d90172638243fe4f5b49ef91f49ace22d214edf3dafe6ac62c5979

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