开箱即用的 AI 开发环境,整合三大核心组件:OpenCode + Impetus + oh-my-openagent。
4.7K
把 opencode(AI 编码 agent)与 Impetus(OpenSpec + Superpowers 双星工作流)打包成一个开箱即用的交互式开发环境镜像。
启动后你会得到一个已经初始化好的 AI 开发工作区:opencode、impetus、openspec、skills、codegraph、docker 都可用,技能与命令已就位,直接在项目目录里敲 opencode 就能开始干活——包括用 docker build / docker run 自测你自己的项目。
| 组件 | 说明 |
|---|---|
opencode | AI 编码 agent(@opencode/cli) |
impetus | Impetus 工作流 CLI(@cylx/impetus) |
openspec | OpenSpec CLI(@fission-ai/openspec) |
skills | Agent Skills CLI |
codegraph | 语义代码图谱(@colbymchenry/codegraph),已接入 opencode |
docker + compose 插件 | 使用宿主 Docker(DooD) |
git / curl / ripgrep / jq / vim / Python 3 + 编译工具链 | 基础工具,脱网也能编译 C / Python 扩展 |
| 工作区模板 | Impetus 工作区脚手架,首次启动自动铺开 |
仓库自带宿主侧启动器 bin/opencode-ultra-here.sh,一条命令搞定「启动 / 复用 / 清理」:
install -m 0755 bin/opencode-ultra-here.sh ~/.local/bin/opencode-ultra-here.sh
cd /path/to/your/project
opencode-ultra-here.sh
它会:
-v "$PWD":"$PWD" -w "$PWD"),容器内 pwd 与宿主一致;docker build / docker run 直接作用于宿主 daemon;用法:
| 命令 | 作用 |
|---|---|
opencode-ultra-here.sh | 启动 / 复用当前目录的容器,进入 bash |
opencode-ultra-here.sh opencode | 在容器内执行 opencode |
opencode-ultra-here.sh clean / rm | 删除当前目录对应的容器 |
opencode-ultra-here.sh --recreate | 删除后重建(换镜像、改参数时用) |
opencode-ultra-here.sh --no-docker | 本次不挂载宿主 socket |
opencode-ultra-here.sh --help | 完整帮助 |
opencode-ultra-here.sh -- <命令...> | -- 之后一律作为容器内命令 |
环境变量:OPENCODE_ULTRA_IMAGE(镜像名,默认 micrograils/opencode-ultra)、USER_UID / USER_GID、DOCKER_SOCK。
docker run -it \
--name opencode-ultra-$(basename "$PWD") \
-v "$PWD":"$PWD" -w "$PWD" \
-e USER_UID="$(id -u)" -e USER_GID="$(id -g)" \
-v /var/run/docker.sock:/var/run/docker.sock \
--add-host=host.docker.internal:host-gateway \
micrograils/opencode-ultra
默认进入交互式 bash,敲 opencode 开始。也可以直接执行命令:
docker run --rm -v "$PWD":"$PWD" -w "$PWD" micrograils/opencode-ultra opencode --version
习惯把项目挂到 /workspace 也一样:镜像的 WORKDIR 就是 /workspace。
容器里的 docker 命令操作的是宿主 Docker,所以 docker build / docker run 构建、运行的容器都在宿主上,正是「自测我自己项目」的预期。
-v /var/run/docker.sock:/var/run/docker.sock
--group-add;--add-host=host.docker.internal:host-gateway,容器内可用 host.docker.internal 访问宿主;--privileged;-e DOCKER_HOST=... 透传。⚠️ 安全提示:挂载宿主 docker socket ≈ 把宿主 root 交给了容器内的进程(可以起特权容器、挂载宿主文件系统)。这是「默认可用」的自觉取舍。不需要时用
opencode-ultra-here.sh --no-docker(或手动运行时去掉-v /var/run/docker.sock:...)。
容器内以你的身份(UID/GID)运行,写出的文件在宿主机上属主一致,不用事后 chown。
docker run -it -v "$PWD":"$PWD" -w "$PWD" \
-e USER_UID="$(id -u)" -e USER_GID="$(id -g)" \
micrograils/opencode-ultra
USER_UID / USER_GID(别名 PUID / PGID)可手动指定;1000:1000;--user 指定了身份时,容器内就按那个身份运行;容器不会递归修改你挂载目录的属主,宿主文件不会被改动。
首次在某个目录里启动容器时,会自动补齐 Impetus 工作区脚手架:
.git/(没有就 git init).opencode/、.agents/、.impetus/、openspec/、docs/、skills-lock.json已经存在的文件一律不动,不会覆盖你已有的工程。整个初始化不需要联网,也不需要再手动执行 impetus init。
跳过初始化:
docker run -it --rm -v "$PWD":"$PWD" -w "$PWD" -e IMPETUS_SKIP_INIT=1 micrograils/opencode-ultra
| 变量 | 说明 |
|---|---|
ANTHROPIC_API_KEY | Anthropic (Claude) API 密钥 |
OPENAI_API_KEY | OpenAI (GPT) API 密钥 |
GEMINI_API_KEY | Google (Gemini) API 密钥 |
GITHUB_TOKEN | GitHub Copilot Token |
USER_UID / USER_GID | 容器内运行身份(默认沿用宿主身份,兜底 1000) |
IMPETUS_SKIP_INIT | 设为 1 跳过工作区初始化 |
IMPETUS_CHOWN_WORKSPACE | 设为 1 才递归 chown 工作区(默认不碰宿主属主) |
DOCKER_HOST | 连接远端 daemon |
凭据绝不写入镜像。 只通过运行时环境变量(或挂载你自己的配置文件)注入。
opencode 的配置与会话默认在容器内,容器删除即丢失。用具名 volume 持久化:
docker volume create opencode-config
docker volume create opencode-data
docker run -it \
-v "$PWD":"$PWD" -w "$PWD" \
-v opencode-config:/home/dev/.config/opencode \
-v opencode-data:/home/dev/.local/share/opencode \
micrograils/opencode-ultra
首次挂载即可直接读写。
| 组件 | 说明 |
|---|---|
| OpenCode | 开源 AI 编码 agent,支持 Claude/GPT/Gemini 等 75+ 模型 |
| Impetus | OpenSpec + Superpowers 工作流,结构化开发流程(brainstorming → design → build → verify → archive) |
| OpenSpec | 规格驱动变更管理(openspec CLI,随 Impetus 工作流一起用) |
| 命令 | 说明 |
|---|---|
/impetus "想法" | 启动完整工作流 |
/impetus-open | 阶段 1:开启 |
/impetus-design | 阶段 2:深度设计 |
/impetus-build | 阶段 3:计划与构建 |
/impetus-verify | 阶段 4:验证与收尾 |
/impetus-archive | 阶段 5:归档 |
/impetus-hotfix | 快速 Bug 修复 |
/impetus-tweak | 小改动 |
node:22-bookworm-slim(Debian 12)/workspace(用启动器时按宿主真实路径挂载并切到该路径)docker 不可用。bin/opencode-ultra-here.sh 是宿主侧脚本,不包含在镜像内。维护者文档(构建 / 版本管理 / 升级 / 维护)见 MAINTENANCE.md。
Content type
Image
Digest
sha256:3af9e749b…
Size
795.9 MB
Last updated
10 days ago
docker pull micrograils/opencode-ultra