Skip to main content

Dev container launcher for AI coding agents

Project description

Aetherion

A containerized development environment for AI coding agents.

Ships a Debian dev container preloaded with the four major agent CLIs (Claude Code, Cursor Agent, GitHub Copilot CLI, Gemini CLI), Neovim with LSP/DAP support, podman-in-podman, and toolchains for Python, Node, Go, Rust, and Ruby. The aetherion launcher mounts the current directory at the same path inside the container and preserves per-agent login state across sessions.

Install

uv tool install aetherion

(or pipx install aetherion)

Quickstart

aetherion --build-image    # one-time: build localhost/aetherion:dev
aetherion                  # launch a shell in $PWD

What's in the container

  • Languages & runtimes: Python (system + uv), Node (via bun), Go, Rust, Ruby, C/C++ toolchain
  • Agent CLIs: Claude Code, Cursor Agent, GitHub Copilot CLI, Gemini CLI
  • Editor: Neovim with bundled LSPs (pyright, gopls, rust-analyzer, lua-language-server, typescript-language-server, vim-language-server) and DAPs (debugpy, delve, codelldb, js-debug-adapter)
  • CLI tools: git, podman, tmux, starship, ripgrep, fd, fzf, jq, yq, posting, openssh-client

State preservation

The first time you log in to a bundled agent CLI, the launcher detects the new config inside the container and copies it to ~/.aetherion/data/ on the host. Subsequent launches bind-mount the saved config so you stay logged in. ~/.aetherion/data/ is the only host directory the launcher writes to.

agent preserved paths
claude .claude/, .claude.json
cursor .cursor/, .config/cursor/
copilot .copilot/
gemini .gemini

Flags

flag purpose
--agents LIST Comma-separated subset of agents to expose (default: all). --agents '' for none.
-e, --env NAME=VALUE Set a container environment variable. Repeatable. Quote at the shell for values with spaces: --env 'NAME=has spaces'. A bare --env NAME inherits from the host environment.
--image REF Image ref to run, and to tag when building. Default: localhost/aetherion:dev.
--build-image Build the image and exit. Does not launch the container.
--build-dir PATH Build context directory. Defaults to the Dockerfile bundled with the launcher.
--extract PATH Copy the bundled Dockerfile, skeleton/, and scripts/ to PATH and exit.

AETHERION_CONTAINER_RUNTIME=docker overrides runtime auto-detection (podman is preferred when both are available).

Customizing the image

The launcher ships its own Dockerfile and skeleton tree inside the Python package. To fork them:

aetherion --extract ~/my-aetherion
$EDITOR ~/my-aetherion/Dockerfile
aetherion --build-image --build-dir ~/my-aetherion --image my:tag
aetherion --image my:tag

Development

git clone https://github.com/samintheshell/aetherion
cd aetherion
uv sync
uv run aetherion --help

Build and publish the Python package with the included Makefile:

make            # show available targets
make build      # produce sdist + wheel in dist/
make publish    # upload dist/* to PyPI (UV_PUBLISH_TOKEN required)

The container image itself has uv plus the standard CPython toolchain installed, so you can also run make publish from inside an aetherion shell if you prefer keeping credentials in the container.

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

aetherion-0.1.0.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

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

aetherion-0.1.0-py3-none-any.whl (51.1 kB view details)

Uploaded Python 3

File details

Details for the file aetherion-0.1.0.tar.gz.

File metadata

  • Download URL: aetherion-0.1.0.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.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 aetherion-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4165f3bf3a0e7c79e1b1a73b3558a1a310160af04ecacc9941061e8b4828f454
MD5 b3cff62b7abd6ef42265f13017ff3fd5
BLAKE2b-256 d519b267afe8f59fb9de3f34ee3ccacda87604b84796c6d92221081272b216b4

See more details on using hashes here.

File details

Details for the file aetherion-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aetherion-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 51.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.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 aetherion-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04c25a34ac48f79022755bf8f48c6598939e0b7aa254c1fde6224855b7977d22
MD5 af72100311cc2fdd8997460b07b2d835
BLAKE2b-256 ebc3ab6354bbcccfd24c185869b9ff10b05dbad623581194e34a0eedfb7f65cf

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