Skip to main content

AI - Tool/Agent isolation

Project description

AI-Container

Podman based container for isolating AI tooling for a individual project.

Context

In the past, I have repeatedly observed and experienced coding agents accessing or using files and content which they either weren't supposed to, or even technically "did not have access to."

On one occasion, for example, file access was explicitly restricted (e.g., the path was blocked). However, the agent exploited its ability to run bash commands, using them to traverse and scan the restricted paths instead of relying on standard read/write methods.

For this reason, I believe it is essential to implement clear restrictions or a contextual sandbox that is shared with the AI, and which it cannot as easily circumvent by simply invoking a different command.

Prerequisites

  • Podman (>= 4.0) - Container runtime. Install
  • Python (>= 3.13) - Required for the CLI. Install

Installation

Install the ai-container package:

uv tool install ai-container

Or from source:

git clone https://github.com/yourusername/ai-container.git
cd ai-container
uv tool install .

The ai command will then be available.

Usage

Basic Commands

ai pi /path/to/project              # Run PI coding agent
ai opc /path/to/project             # Run OpenCode coding agent
ai aic /path/to/project             # Run aichat
ai llm /path/to/project             # Run llm
ai shell /path/to/project           # Interactive shell in container

Pass additional arguments directly to the tool:

ai pi /path/to/project --verbose --model claude-3-sonnet

Rebuilding the Container Image

The container image is built automatically on first use. When you want to pull in the latest tool versions, you can force a rebuild in two ways:

Standalone rebuild command — rebuilds the image without running any tool:

ai rebuild-image

Inline --rebuild-image flag — rebuilds the image and then immediately runs the chosen tool:

ai pi /path/to/project --rebuild-image
ai opc /path/to/project --rebuild-image
ai aic /path/to/project --rebuild-image
ai llm /path/to/project --rebuild-image
ai shell /path/to/project --rebuild-image

Provided Tools

  • PI - Coding agent for generation, analysis, and refactoring
  • OpenCode - AI-powered coding assistant
  • aichat - Interactive AI chat interface
  • llm - Command-line tool for LLM interaction

Configuration & Persistence

First run: The container image is built (one-time, takes a few minutes).

Tools use their standard configuration methods (within the container):

  • aichat: ~/.config/aichat/config.toml
  • llm: ~/.config/llm/ + environment variables
  • PI: ~/.pi/
  • OpenCode: ~/.config/opencode/

Configuration persists automatically across all runs and containers through named Podman volumes (config, state, share, pi-config). Configure once, use everywhere:

# First run: setup credentials
ai shell /path/to/project
# Inside container: aichat, llm keys set openai <key>, etc.

# Subsequent runs: credentials available automatically
ai pi /path/to/project

Other/Previous Work

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

ai_container-0.8.1.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_container-0.8.1-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file ai_container-0.8.1.tar.gz.

File metadata

  • Download URL: ai_container-0.8.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ai_container-0.8.1.tar.gz
Algorithm Hash digest
SHA256 f811b63c3f1b74553d2d250e5a667f78cc16d63d08bcefc159ba75d13af6cb78
MD5 19b0f26a2de49d155dd8dd3183909252
BLAKE2b-256 9a9ff6ebeda1503b380e944ad20250e89fe54985096b2dfac1e17c3a600366ba

See more details on using hashes here.

File details

Details for the file ai_container-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: ai_container-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ai_container-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 13d1bebb1f495e166eda75a5ff7da17cc0dab8208beb1f3b4bdac2acf07e23f7
MD5 de919881b91085b360adce60fc0277ef
BLAKE2b-256 b8df2a5f59aa1fccc636ace1260de60d9fbe7686a93bee967dfedbe53d82d1d1

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