Observed since 21 Oct, 10:03 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Container-Based Multi-AI Development Environment
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ █████╗ ██╗ ██████╗ █████╗ ██╗ ██╗ ║
║ ██╔══██╗██║ ██╔══██╗██╔══██╗░╚██╗██╔╝ ║
║ ███████║██║ ██████╔╝██║░░██║░░╚███╔╝░ ║
║ ██╔══██║██║ ██╔══██╗██║░░██║░░██╔██╗░ ║
║ ██║░░██║██║ ██████╔╝╚█████╔╝ ██╔╝╚██╗ ║
║ ╚═╝░░╚═╝╚═╝ ╚═════╝░░╚════╝░ ╚═╝░░╚═╝ ║
║ ║
║ Container-Based Multi-AI Development Environment ║
║ ║
╚═══════════════════════════════════════════════════════════════╝
Container-Based Multi-AI Development Environment
Multi-AI development environment with Python-based tooling, comprehensive testing, and beautiful CLI.
Documentation | Configuration | Architecture | Agents Guide
--auto-delete# 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.
# Recommended: use uv
uv pip install aibox-cli
# Or use pip
pip install aibox-cli
# Verify installation
aibox --version
git clone https://github.com/fogXploit/aibox.git
cd aibox
uv pip install -e ".[dev]"
See Getting Started for detailed installation instructions.
aibox supports shell autocomplete for Bash, Zsh, Fish, and PowerShell. Once enabled, you can press TAB to 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
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).
# 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.
--slot to keep
your tools and filesystem state.--auto-delete for a
one-off session (container is removed when the CLI exits).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.Built-in profiles:
python:3.11|3.12|3.13 - Python with uv package managernodejs:20 - Node.js with npm global configuredgo:1.21|1.22|1.23 - Go with modulesrust:stable|beta|nightly|1.75|1.76|1.77 - Rust with cargo/rustfmt/clippysudo:1 - Passwordless sudo for the aibox usergit:latest - Git clientaibox/profiles/definitions/*.yml; customize or add your own as needed.
TODO: More will be added# 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
# All tests
pytest
# Unit tests only
pytest tests/unit
# With coverage
pytest --cov=aibox --cov-report=html
# Lint and format
ruff check aibox/
ruff format aibox/
# Type checking
mypy aibox/
# Run all checks
pre-commit run --all-files
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.
Contributions welcome! See CONTRIBUTING.md for guidelines.
aibox/profiles/definitions/myprofile.ymltests/unit/test_profiles.py# Install Docker Desktop
# https://docs.docker.com/get-docker/
# 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 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.
# 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
# Add user to docker group (Linux)
sudo usermod -aG docker $USER
# Log out and back in
MIT License - see LICENSE for details.
Built with ❤️ for AI-powered development
pypistats · 41 observations shown. Missing days are unknown. Source category: overall: without mirrors.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-20 – 2026-10-20 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-17 – 2026-10-17 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-15 – 2026-10-15 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-14 – 2026-10-14 | 5 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-13 – 2026-10-13 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-11 – 2026-10-11 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-10 – 2026-10-10 | 4 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-09 – 2026-10-09 | 7 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-08 – 2026-10-08 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-06 – 2026-10-06 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-02 – 2026-10-02 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-10-01 – 2026-10-01 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-30 – 2026-09-30 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-28 – 2026-09-28 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-27 – 2026-09-27 | 3 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-26 – 2026-09-26 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-25 – 2026-09-25 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-24 – 2026-09-24 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-21 – 2026-09-21 | 8 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-07 – 2026-09-07 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-06 – 2026-09-06 | 5 | 2026-10-21T13:26:57.3767375Z |
| 2026-09-01 – 2026-09-01 | 3 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-31 – 2026-08-31 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-28 – 2026-08-28 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-26 – 2026-08-26 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-25 – 2026-08-25 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-24 – 2026-08-24 | 5 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-23 – 2026-08-23 | 4 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-22 – 2026-08-22 | 3 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-21 – 2026-08-21 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-17 – 2026-08-17 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-15 – 2026-08-15 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-14 – 2026-08-14 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-12 – 2026-08-12 | 3 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-09 – 2026-08-09 | 3 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-06 – 2026-08-06 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-02 – 2026-08-02 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-08-01 – 2026-08-01 | 2 | 2026-10-21T13:26:57.3767375Z |
| 2026-07-27 – 2026-07-27 | 1 | 2026-10-21T13:26:57.3767375Z |
| 2026-07-24 – 2026-07-24 | 3 | 2026-10-21T13:26:57.3767375Z |
| 2026-07-23 – 2026-07-23 | 1 | 2026-10-21T13:26:57.3767375Z |
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.3.3 | 17 Mar 2026 | 15 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 10:03 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:29db6f7bece1e8c7895018c2a33f9198b6b7049b361199e3f356f3183176fe64