Commit graph

15 commits

Author SHA1 Message Date
e91b74ea38 tools: Install on first use instead of baking them into the image
Baked installs had two failure modes: anything installed into $HOME
at build time is shadowed by the container-home bind mount at runtime,
and system-wide installs are root-owned, so the tools' own update
commands (pi update, claude update, opencode upgrade) failed with an
unwritable install path. With pi releasing new versions almost daily,
the only remedy, a full image rebuild that also deleted every
container, was too heavy for that cadence.

Now each tool is installed at runtime into the persistent container
home by its official installer (no sudo), the same way the Docker
image itself is built on first use. Self-updates work inside the
container and survive image rebuilds and container recreation. The
image shrinks to a plain Arch base, and agent-container update no
longer removes containers, so sudo-installed project dependencies
survive it too.

docker exec now attaches a TTY only when stdin is one, so scripted
runs like 'pi -p' work without a terminal.
2026-09-18 08:38:23 +09:00
70699026c3 setup: Show a plan and ask for confirmation before changing anything 2026-09-12 21:40:17 +09:00
d110942710 setup: Add script to share agent state via container home symlinks 2026-09-12 21:38:39 +09:00
a3aa03e14d readme: Document sharing agent state via symlinks in container home 2026-09-12 21:36:03 +09:00
336ec1d97d readme: Document local aliases and bundled OpenCode plugin 2026-09-09 09:42:20 +09:00
6c859eb427 readme: Remove broken Claude Pro/Max bridge docs and mention local aliases 2026-09-09 09:39:47 +09:00
1b35ab0b2a aliases: Add -local variants to run tools on the host
The opencode, claude, and pi functions wrap the tools in the Docker
container. Add opencode-local, claude-local, and pi-local so the real
host binaries can be invoked directly when container isolation is not
needed. They use `command` to bypass the wrapping functions.
2026-09-09 09:35:25 +09:00
5c2f3ae83c container: Add Pi coding agent (pi.dev) as a third harness
- Install @earendil-works/pi-coding-agent globally via npm in the
  image so it survives the home directory bind mount
- Add pi subcommand forwarding PI_* and provider key prefixes
- Add pi shell wrapper alias
- Build with --network host so image builds work on hosts where the
  Docker bridge network cannot create veth pairs
2026-08-30 11:50:56 +09:00
7984b9129a container: Pull fresh base image on update and drop unused constant 2026-05-28 21:56:38 +00:00
7507534cf0 container: Sanitize project directory name for Docker container names
Docker container names only allow [a-zA-Z0-9][a-zA-Z0-9_.-], so
directories containing spaces or other characters caused container
creation to fail.
2026-05-10 09:19:54 +09:00
eef9a66d2d plugins: Add OSC 99 desktop notification plugin for OpenCode 2026-04-03 09:36:59 +00:00
a3db357b6f container: Forward env vars by prefix and source shell config from container-home
Replace hardcoded env var lists with prefix-based forwarding (OPENCODE_*,
ANTHROPIC_*, CLAUDE_*) so new env vars are picked up automatically.

Run tools through bash -l inside the container so that .bashrc, .bash_profile,
and .profile from container-home are sourced. Seed container-home with default
shell config from /etc/skel on first run if the files don't already exist.
2026-03-31 04:26:20 +00:00
d6f179ec57 container: Pass OpenCode environment variables to container
Add OPENCODE_SERVER_PASSWORD, OPENCODE_SERVER_USERNAME,
OPENCODE_CONFIG, OPENCODE_CONFIG_DIR, OPENCODE_CONFIG_CONTENT,
and OPENCODE_TUI_CONFIG to the environment passthrough list.
2026-03-29 01:45:09 +00:00
2d3d5caacb container: Improve usability of web mode, error handling, and CLI commands
Use --network host so that web interfaces (e.g. opencode web) are
accessible from the host. Suppress Python tracebacks when the tool
exits with a non-zero code. Ignore SIGTSTP to prevent Ctrl+Z from
leaving orphaned containers. Rename force-cleanup to purge.
2026-03-28 22:07:58 +00:00
61017da6ba Combine opencode-container and claude-container into a unified agent-container
Merge the two separate container projects into a single image and
management script. Both OpenCode and Claude Code are installed in the
same Arch Linux image and share one persistent $HOME directory, which
enables the opencode-claude-bridge plugin to read Claude CLI credentials
from within OpenCode.

Subcommands: opencode, claude, update, force-cleanup.
2026-03-24 09:39:25 +09:00