Skip to main content

Podman wrapper for running Claude Code in isolated containers

Project description

Paude

Run AI coding agents in secure containers. They make commits, you pull them back.

Supported Agents

Agent Flag Status
Claude Code --agent claude (default) Supported
Cursor CLI --agent cursor Supported
Gemini CLI --agent gemini Supported

Note: Your chosen agent must be installed and working on your local machine first.

Why Paude?

  • Isolated execution: Your agent runs in a container, not on your host machine
  • Safe autonomous mode: Enable --yolo without fear — the agent can't send your code anywhere
  • Git-based workflow: The agent commits inside the container, you git pull the changes
  • Run anywhere: Locally with Podman or remotely on OpenShift

Demo

asciicast

The demo shows Claude Code, but the workflow is identical with other agents.

Quick Start

Prerequisites

Your agent: Claude Code, Cursor CLI, or Gemini CLI installed and working locally.

Podman: Install Podman (for local backend).

Google Cloud SDK: gcloud auth application-default login

Environment variables (find your project ID in Google Cloud Console):

Claude Code:

export CLAUDE_CODE_USE_VERTEX=1
export ANTHROPIC_VERTEX_PROJECT_ID=your-project-id
export GOOGLE_CLOUD_PROJECT=your-project-id

Cursor CLI:

agent login  # or set CURSOR_API_KEY=your-api-key

macOS note: On Mac hosts, CURSOR_API_KEY is the simplest authentication method. Without it, each paude session requires a separate browser-based OAuth login via agent login inside the container.

Gemini CLI:

export GOOGLE_CLOUD_PROJECT=your-project-id

Install

uv tool install paude

First run: Paude pulls container images on first use. This takes a few minutes; subsequent runs start immediately.

Your First Session

# Claude Code (default)
cd your-project
paude create --yolo --git my-project

# Cursor CLI
paude create --agent cursor --yolo --git my-project

# Gemini CLI
paude create --agent gemini --yolo --git my-project

# Connect to the running session
paude connect my-project

# Pull the agent's commits (use your branch name):
git pull paude-my-project main

You'll know it's working when: paude connect shows the agent interface, and git pull brings back commits the agent made.

Passing a Task

paude create --yolo my-project -a '-p "refactor the auth module"'

Or just start the session and type your request in the agent interface.

Something Not Working?

  • Run paude --help for all options and examples
  • Run paude list to check session status
  • Use paude create --dry-run to verify configuration
  • Use paude start -v for verbose output (shows sync progress)
  • Check that your gcloud credentials are valid: gcloud auth application-default print-access-token

Learn more:

How It Works

Your Machine                    Container
    |                              |
    |-- git push ----------------▶ |  Agent works here
    |                              |  (network-filtered)
    ◀-- git pull -----------------|
    |                              |
  • Git is the sync mechanism — your local files stay untouched until you pull
  • --yolo is safe because network filtering blocks the agent from sending data to arbitrary URLs
  • The agent can only reach its API (e.g., Vertex AI) and package registries (e.g., PyPI) by default

Install from Source

git clone https://github.com/bbrowning/paude
cd paude
uv venv --python 3.12 --seed
source .venv/bin/activate
pip install -e .

Requirements

  • Python 3.11+ (for the Python package)
  • Your chosen agent CLI installed locally (Claude Code, Cursor CLI, or Gemini CLI)
  • Podman (for local backend)
  • OpenShift CLI oc (for OpenShift backend)
  • Google Cloud SDK configured (gcloud auth application-default login)

Development

See CONTRIBUTING.md for development setup, testing, and release instructions.

License

MIT

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

paude-0.12.0.tar.gz (247.3 kB view details)

Uploaded Source

Built Distribution

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

paude-0.12.0-py3-none-any.whl (121.3 kB view details)

Uploaded Python 3

File details

Details for the file paude-0.12.0.tar.gz.

File metadata

  • Download URL: paude-0.12.0.tar.gz
  • Upload date:
  • Size: 247.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for paude-0.12.0.tar.gz
Algorithm Hash digest
SHA256 f5af0bd9004d24ff9fdf92210a5365cf206a9fc006cb4369548f1001847ecd56
MD5 eddedcf1d3b8e33df227ac27f4b6a1a1
BLAKE2b-256 8f254032b1eb94b022d78e0ecaa98189c9123745d7264d25fb52f97045d0eddc

See more details on using hashes here.

Provenance

The following attestation bundles were made for paude-0.12.0.tar.gz:

Publisher: release.yml on bbrowning/paude

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file paude-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: paude-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 121.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for paude-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62c2c433ef7a34fa68fd2fc42ac4e58321e74d7f717b1626e6b1be6f60b893cf
MD5 e321fec74069d0e8658e281cc78fd213
BLAKE2b-256 6b53b16d8f249e03473994494cb9775f51f45792d02d23b2a1e295e9b8c395b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for paude-0.12.0-py3-none-any.whl:

Publisher: release.yml on bbrowning/paude

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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