Catalog PyPI
PACKAGE EXPLORERView in registry

aibox-cli

PyPI

Container-Based Multi-AI Development Environment

aiclaudecontainersdevelopmentdockergeminiopenai
Versions collected1
Direct dependencies15From release 0.3.3
Last observed21 Oct, 10:03 UTC

README

Version 0.3.3 documentation

aiBox

╔═══════════════════════════════════════════════════════════════╗
║                                                               ║
║             █████╗ ██╗  ██████╗  █████╗  ██╗  ██╗             ║
║            ██╔══██╗██║  ██╔══██╗██╔══██╗░╚██╗██╔╝             ║
║            ███████║██║  ██████╔╝██║░░██║░░╚███╔╝░             ║
║            ██╔══██║██║  ██╔══██╗██║░░██║░░██╔██╗░             ║
║            ██║░░██║██║  ██████╔╝╚█████╔╝ ██╔╝╚██╗             ║
║            ╚═╝░░╚═╝╚═╝  ╚═════╝░░╚════╝░ ╚═╝░░╚═╝             ║
║                                                               ║
║       Container-Based Multi-AI Development Environment        ║
║                                                               ║
╚═══════════════════════════════════════════════════════════════╝

Container-Based Multi-AI Development Environment

Tests Python 3.11+ License: MIT

Multi-AI development environment with Python-based tooling, comprehensive testing, and beautiful CLI.

Documentation | Configuration | Architecture | Agents Guide


Features

  • 🤖 Multi-AI Support - Claude, Gemini, and OpenAI Codex
  • 🐳 Docker-Based - Isolated, reproducible development environments
  • 🔧 Profiles - Python, Node.js, Rust, Go, plus utility profiles (sudo, git)
  • 🚀 Beautiful CLI - Rich terminal output with progress indicators and tables
  • 🔌 Parallel Slots - Run multiple AI containers simultaneously
  • ♻️ Shared Base Images - Reuse profile layers across providers; only provider CLIs rebuild
  • 📦 Profile System - Declarative YAML-based language/tool configurations
  • ⚙️ Type-Safe Config - Pydantic validation with helpful error messages
  • 🔄 Session Continuation - Reuse the same slot container by default; optional one-off mode with --auto-delete

Quick Start

# Install aibox
pip install aibox-cli
# or with uv (recommended)
uv pip install aibox-cli

# Navigate to your project
cd my-project

# Initialize the project (select profiles and versions)
aibox init

# Start AI development environment (interactive slot/provider wizard)
aibox start

New to aibox? See the Getting Started Guide for detailed instructions.


Installation

Prerequisites

  • Docker - Running and accessible (Install Docker)
  • Python 3.11+ - For the CLI tool (Download Python)
  • Authentication:
    • Claude: OAuth authentication (authenticates in browser on first use)
    • Gemini & OpenAi: aibox launches a short-lived login container during slot creation to capture an OAuth session

Install via pip

# Recommended: use uv
uv pip install aibox-cli

# Or use pip
pip install aibox-cli

# Verify installation
aibox --version

Install from Source

git clone https://github.com/fogXploit/aibox.git
cd aibox
uv pip install -e ".[dev]"

See Getting Started for detailed installation instructions.


Shell Autocomplete

aibox supports shell autocomplete for Bash, Zsh, Fish, and PowerShell. Once enabled, you can press TAB to autocomplete.

Install Autocomplete

# Install completion for your shell
aibox --install-completion

# Restart your terminal
# Then try it out:
aibox profile info <TAB>        # Shows: go nodejs python rust python:3.11 ...
aibox start --slot <TAB>         # Shows configured slot numbers

Supported Shells

  • Bash - Automatically detected and configured
  • Zsh - Automatically detected and configured
  • Fish - Automatically detected and configured
  • PowerShell - Automatically detected and configured

Note: If autocomplete doesn't work after installation, ensure you've restarted your terminal or sourced your shell configuration file (e.g., source ~/.bashrc or source ~/.zshrc).


Usage

Essential Commands

# Initialize project and select profiles
aibox init

# Start AI environment (interactive provider + slot wizard)
aibox start

# Reuse a specific slot (preserves container state)
aibox start --slot 2

# One-off session (stop and remove container on exit)
aibox start --auto-delete

# Slots
aibox slot list
aibox slot add          # pick slot + provider by number
aibox slot cleanup      # remove stopped slot containers and slot configs

# Profiles
aibox profile list
aibox profile info python

# Config
aibox config show
aibox config validate
aibox config edit

# Status
aibox status

See Getting Started for workflow examples.

Session Continuation & Reuse

  • aibox reuses the same container for a slot by default. Start again with the same --slot to keep your tools and filesystem state.
  • When you exit the AI CLI, the container is stopped but preserved. Use --auto-delete for a one-off session (container is removed when the CLI exits).
  • Provider notes:
    • Claude and Gemini persist auth/state via their mounted config directories (!TODO)
    • OpenAI Codex: container reuse preserves CLI config. To continue a Codex conversation, start with aibox start --slot <n> --resume to launch codex resume (slot must already have a Codex session); omit --resume to start a fresh Codex session in that slot.

Profiles

Built-in profiles:

  • python:3.11|3.12|3.13 - Python with uv package manager
  • nodejs:20 - Node.js with npm global configured
  • go:1.21|1.22|1.23 - Go with modules
  • rust:stable|beta|nightly|1.75|1.76|1.77 - Rust with cargo/rustfmt/clippy
  • sudo:1 - Passwordless sudo for the aibox user
  • git:latest - Git client

Profile definitions live in aibox/profiles/definitions/*.yml; customize or add your own as needed. TODO: More will be added

Documentation


Development

Setup

# Clone repository
git clone https://github.com/fogXploit/aibox.git
cd aibox

# Install with dev dependencies
uv pip install -e ".[dev]"

# Install pre-commit hooks
pre-commit install

Running Tests

# All tests
pytest

# Unit tests only
pytest tests/unit

# With coverage
pytest --cov=aibox --cov-report=html

Code Quality

# Lint and format
ruff check aibox/
ruff format aibox/

# Type checking
mypy aibox/

# Run all checks
pre-commit run --all-files

Architecture

aibox/
├── cli/              # CLI commands (Typer)
├── providers/        # AI provider implementations
├── containers/       # Docker management (Docker SDK)
├── profiles/         # Profile system (YAML-based)
├── config/           # Configuration (Pydantic models)
└── utils/            # Utilities (logging, errors)

See ARCHITECTURE.md for details.


Roadmap

v0.1

  • ✅ Claude CLI support
  • ✅ Gemini CLI support
  • ✅ OpenAI CLI support
  • ✅ 4+ language profiles
  • ✅ Slot system (parallel containers)
  • ✅ YAML configuration
  • ✅ Beautiful CLI with Rich

v0.2

  • ✅ Additional profiles
  • ✅ AI provider integrations enhanced
  • ✅ user friendly login workflow for Gemini
  • ✅ status overview added

v0.3 (Current)

  • ✅ persistence & one-time container support
  • ✅ cleanup workflows
  • ✅ login helper for codex
  • ✅ codex-cli resume support

v0.4+

  • TODO

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Adding a New Profile

  1. Create aibox/profiles/definitions/myprofile.yml
  2. Add tests in tests/unit/test_profiles.py
  3. Update documentation
  4. Submit PR

Troubleshooting

Docker Not Found

# Install Docker Desktop
# https://docs.docker.com/get-docker/

Gemini Login Helper

# Gemini uses OAuth. When you add a Gemini slot, aibox runs a short-lived
# host-network container to execute `gemini login` so the random callback port works.
# Follow the printed URL in your browser; the session is stored under the slot's .gemini/ directory.

OpenAI Login Helper

# OpenAI Codex also uses OAuth. aibox now runs a short-lived host-network container
# to execute `codex login` when a slot needs authentication, so the main container
# doesn't keep a lingering 1455 port binding. The session is stored under the slot's
# .codex/ directory.

Authentication Issues (Claude/OpenAI)

# Claude and OpenAI use OAuth - no API keys needed
# If authentication fails:
# 1. Ensure Docker ports are accessible (54545 for Claude, 1455 for Codex)
# 2. Check your browser isn't blocking popups
# 3. Try running the CLI inside the container again - it will re-prompt

Permission Denied

# Add user to docker group (Linux)
sudo usermod -aG docker $USER
# Log out and back in

License

MIT License - see LICENSE for details.


Acknowledgments



Built with ❤️ for AI-powered development

Downloads & popularity

1downloads
1-day window · source-reported counts20 Oct 2026
840
2026-07-23: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-07-23–2026-07-232026-07-24: 3 · observed 2026-10-21T13:26:57.3767375Z · period 2026-07-24–2026-07-242026-07-27: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-07-27–2026-07-272026-08-01: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-01–2026-08-012026-08-02: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-02–2026-08-022026-08-06: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-06–2026-08-062026-08-09: 3 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-09–2026-08-092026-08-12: 3 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-12–2026-08-122026-08-14: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-14–2026-08-142026-08-15: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-15–2026-08-152026-08-17: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-17–2026-08-172026-08-21: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-21–2026-08-212026-08-22: 3 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-22–2026-08-222026-08-23: 4 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-23–2026-08-232026-08-24: 5 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-24–2026-08-242026-08-25: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-25–2026-08-252026-08-26: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-26–2026-08-262026-08-28: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-28–2026-08-282026-08-31: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-08-31–2026-08-312026-09-01: 3 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-01–2026-09-012026-09-06: 5 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-06–2026-09-062026-09-07: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-07–2026-09-072026-09-21: 8 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-21–2026-09-212026-09-24: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-24–2026-09-242026-09-25: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-25–2026-09-252026-09-26: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-26–2026-09-262026-09-27: 3 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-27–2026-09-272026-09-28: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-28–2026-09-282026-09-30: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-09-30–2026-09-302026-10-01: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-01–2026-10-012026-10-02: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-02–2026-10-022026-10-06: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-06–2026-10-062026-10-08: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-08–2026-10-082026-10-09: 7 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-09–2026-10-092026-10-10: 4 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-10–2026-10-102026-10-11: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-11–2026-10-112026-10-13: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-13–2026-10-132026-10-14: 5 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-14–2026-10-142026-10-15: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-15–2026-10-152026-10-17: 2 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-17–2026-10-172026-10-20: 1 · observed 2026-10-21T13:26:57.3767375Z · period 2026-10-20–2026-10-20
23 Jul20 Oct

pypistats · 41 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-20 – 2026-10-2012026-10-21T13:26:57.3767375Z
2026-10-17 – 2026-10-1722026-10-21T13:26:57.3767375Z
2026-10-15 – 2026-10-1512026-10-21T13:26:57.3767375Z
2026-10-14 – 2026-10-1452026-10-21T13:26:57.3767375Z
2026-10-13 – 2026-10-1312026-10-21T13:26:57.3767375Z
2026-10-11 – 2026-10-1112026-10-21T13:26:57.3767375Z
2026-10-10 – 2026-10-1042026-10-21T13:26:57.3767375Z
2026-10-09 – 2026-10-0972026-10-21T13:26:57.3767375Z
2026-10-08 – 2026-10-0812026-10-21T13:26:57.3767375Z
2026-10-06 – 2026-10-0612026-10-21T13:26:57.3767375Z
2026-10-02 – 2026-10-0222026-10-21T13:26:57.3767375Z
2026-10-01 – 2026-10-0112026-10-21T13:26:57.3767375Z
2026-09-30 – 2026-09-3022026-10-21T13:26:57.3767375Z
2026-09-28 – 2026-09-2822026-10-21T13:26:57.3767375Z
2026-09-27 – 2026-09-2732026-10-21T13:26:57.3767375Z
2026-09-26 – 2026-09-2612026-10-21T13:26:57.3767375Z
2026-09-25 – 2026-09-2512026-10-21T13:26:57.3767375Z
2026-09-24 – 2026-09-2412026-10-21T13:26:57.3767375Z
2026-09-21 – 2026-09-2182026-10-21T13:26:57.3767375Z
2026-09-07 – 2026-09-0722026-10-21T13:26:57.3767375Z
2026-09-06 – 2026-09-0652026-10-21T13:26:57.3767375Z
2026-09-01 – 2026-09-0132026-10-21T13:26:57.3767375Z
2026-08-31 – 2026-08-3112026-10-21T13:26:57.3767375Z
2026-08-28 – 2026-08-2812026-10-21T13:26:57.3767375Z
2026-08-26 – 2026-08-2612026-10-21T13:26:57.3767375Z
2026-08-25 – 2026-08-2512026-10-21T13:26:57.3767375Z
2026-08-24 – 2026-08-2452026-10-21T13:26:57.3767375Z
2026-08-23 – 2026-08-2342026-10-21T13:26:57.3767375Z
2026-08-22 – 2026-08-2232026-10-21T13:26:57.3767375Z
2026-08-21 – 2026-08-2112026-10-21T13:26:57.3767375Z
2026-08-17 – 2026-08-1722026-10-21T13:26:57.3767375Z
2026-08-15 – 2026-08-1522026-10-21T13:26:57.3767375Z
2026-08-14 – 2026-08-1422026-10-21T13:26:57.3767375Z
2026-08-12 – 2026-08-1232026-10-21T13:26:57.3767375Z
2026-08-09 – 2026-08-0932026-10-21T13:26:57.3767375Z
2026-08-06 – 2026-08-0612026-10-21T13:26:57.3767375Z
2026-08-02 – 2026-08-0212026-10-21T13:26:57.3767375Z
2026-08-01 – 2026-08-0122026-10-21T13:26:57.3767375Z
2026-07-27 – 2026-07-2712026-10-21T13:26:57.3767375Z
2026-07-24 – 2026-07-2432026-10-21T13:26:57.3767375Z
2026-07-23 – 2026-07-2312026-10-21T13:26:57.3767375Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.3.317 Mar 202615

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
fogxploit/aibox

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:03 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:29db6f7bece1e8c7895018c2a33f9198b6b7049b361199e3f356f3183176fe64