Sandbox
@aerovato/container

Persistent Linux workspaces for coding agents

`container` gives each project its own Docker or Podman environment with tools and harnesses already installed. The workspace persists between sessions, so your agent keeps the same packages, configuration, and mounted project state instead of starting over each time.

347 stars33 forksTypeScriptUpdated 15d ago
Who it's for

Builders who want their agent to work inside a persistent Linux workspace instead of a fresh shell every session.

What it delivers

You can keep project-specific tools, settings, and agent context in one reusable workspace across sessions.

What it does

Project-scoped workspaces

Creates a separate container for each project and mounts the project at `/root/<project-name>`.

Persistent environment

Keeps installed packages and configuration between sessions so work does not reset every time.

Docker or Podman support

Runs on either Docker or Podman and works on Windows, macOS, and Linux.

Guided onboarding

`container init` walks you through harnesses, tools, runtime, and mounts before the first image build.

Workspace management commands

Provides commands like `container run`, `container list`, `container stop`, `container remove`, and `container settings`.

Agent skill

Includes a portable skill in `skills/container/SKILL.md` so an agent can help configure Container from the host.

How to get it

  1. 1macOS and Linux
    curl -fsSL https://container.aerovato.com/install.sh | sh
  2. 2Windows PowerShell
    irm https://container.aerovato.com/install.ps1 | iex
  3. 3Alternatively, install through npm
    npm install -g @aerovato/container
  4. 4Run the guided onboarding flow
    container init
  5. 5Navigate to a project and start its workspace
    cd /path/to/project
    container
  6. 6Start your preferred coding agent and work normally
    opencode
    npm install <package>

README

Container by Aerovato Research

Built with Operator Memory

container

Persistent Linux workspaces for software development.

container gives each project its own Docker or Podman environment, with coding harnesses and development tools already installed. Workspaces persist across sessions, including packages and configuration. Agents are isolated to that project with no access to the rest of your system.

The same Linux environment runs on Windows, macOS, and Linux. Your container is local and open source, does not require an account, and is yours to customize.

Website · Agent Skill · 中文

Quickstart

Requirements

  • Windows, macOS, or Linux
  • Docker or Podman

Install

macOS and Linux:

curl -fsSL https://container.aerovato.com/install.sh | sh

Windows PowerShell:

irm https://container.aerovato.com/install.ps1 | iex

Alternatively, install through npm:

npm install -g @aerovato/container

Configure

Run the guided onboarding flow:

container init

Choose your coding harnesses, development tools, runtime, and mounts, then accept the initial image build.

Run

Navigate to a project and start its workspace:

cd /path/to/project
container

Your project is mounted at /root/<project-name>. The container and anything installed inside it persist between sessions.

Start your preferred coding agent and work normally:

opencode
npm install <package>

Multiple terminals can enter the same container.

Customization

container is infinitely customizable. Add packages and setup commands to the user layer:

~/.code-container/Dockerfile.User

Then rebuild it:

container build user

Common settings like tools and harnesses can be configured via container settings. More complex options, including runtime flags, mounts, and even base-image settings can be configured through ~/.code-container/settings.json.

See Configuration for settings details and Permissions for hands-off harness permissions.

Common Commands

container                           # Open the current project's workspace
container run /path/to/project      # Open a specific project
container run /path -- -p 8080:80   # Pass runtime flags
container list                      # List managed containers
container stop                      # Stop the current workspace
container remove                    # Remove the current workspace
container settings                  # Change common settings
container init                      # Re-run onboarding

Rebuild the shared image when updating tools or customizations:

container build
container build tools
container build harness
container build user

Agent Skill

Want an agent to configure Container for you? Install the portable Container skill on the host, then ask your agent to set up packages, harnesses, tools, mounts, permissions, or migrations.

npx skills add aerovato/container --skill container
npx skills add aerovato/container --skill container --global  # All projects

The skill is host-side because agents inside managed containers cannot access Container's host configuration.

Security

container limits what an agent can access, but it does not make the agent trusted.

The current project is mounted read-write and can be changed or deleted. Enabled configurations and optional credentials may also be available inside the container. Containers retain network access, and container does not protect against prompt injection or agent misalignment.

Keep important work under version control and only mount resources the agent needs.

Built with Operator

This repository is maintained with Operator Memory — durable, agent-maintained documentation that lets AI agents work on the project with full context across sessions. The published brain lives in .operator-shared/.

To work on Container with the same context, we recommend installing Operator Memory.

License

BSD 3-Clause

Files in the repo

Repository payload26 top-level entries
  • __mocks__
  • .github
  • .husky
  • .operator-shared
  • resources
  • scripts
  • skills
  • src
  • tests
  • website
  • .gitignore
  • .ignore
  • .prettierignore
  • .prettierrc
  • AGENTS.md
  • Changelog.md
  • CLAUDE.md
  • eslint.config.mjs
  • LICENSE.md
  • package-lock.json
  • package.json
  • README.cn.md
  • README.md
  • tsconfig.json
  • tsconfig.test.json
  • vitest.config.ts

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k