使用说明
开放代码设置
一 开源代码 配置持久内存、多代理编排、调度代理和并行代码审查。在每天使用约25天的基础上构建 超能力 技能框架。
分享它是因为在野外很少有大量定制的OpenCode配置的例子。作为可能的起点或参考很有用。
回购中有什么
.
├── AGENTS.md # Global agent instructions (loaded every session)
├── opencode.json # Base config: MCP servers, compaction, permissions
├── setup.sh # New-machine bootstrap script
├── agents/ # 18+ agent definitions
├── commands/ # 139+ slash commands
├── plugins/ # 12 plugins (memory, compliance, context, token monitoring)
├── skills/ # 143+ skill directories
├── scripts/ # Utility scripts (token analytics, session analysis, SLURM launcher)
├── notes/ # Cross-project knowledge base
├── mcp/opencode-memory/ # Custom MCP server for persistent memory (Python/SQLite)
├── symphony/ # Multi-agent PR review orchestrator
├── hands/ # Scheduled headless agents (macOS launchd)
└── docs/ # Setup guides (Ollama local models, etc.)
设置
先决条件
| 工具 | 安装 |
|---|---|
| 开源代码 | curl -fsSL https://opencode.ai/install | bash |
| 紫外线 | curl -LsSf https://astral.sh/uv/install.sh | sh |
| 版本控制系统 | xcode-select --install (macOS)或 sudo apt install git (Linux) |
1.单机(macOS/Linux)
对于个人工作站、笔记本电脑或任何具有本地文件系统的机器:
# If ~/.config/opencode/ doesn't exist yet:
git clone https://github.com/kiryteo/opencode-setup.git ~/.config/opencode
~/.config/opencode/setup.sh
如果已经安装并创建了OpenCode ~/.config/opencode/:
mv ~/.config/opencode ~/.config/opencode-old
git clone https://github.com/kiryteo/opencode-setup.git ~/.config/opencode
cp ~/.config/opencode-old/settings.json ~/.config/opencode/ 2>/dev/null # keep local settings
rm -rf ~/.config/opencode-old
~/.config/opencode/setup.sh
什么 setup.sh 做:
- 检查一下
opencode,uv,以及git已安装 - 扩展
$HOME占位符在opencode.json到您的实际主目录 - 安装内存MCP服务器(
uv sync在mcp/opencode-memory/) - 创建运行时目录(
memory/,research/,session-states/等等) - 标记路径更改
opencode.json随着当地的变化(不会污染git status)
设置后,只需运行 opencode 像往常一样。
2.SLURM集群后面的远程机器
在具有共享NFS主目录和SLURM作业调度的HPC集群上,SQLite的WAL模式会导致跨计算节点的锁定问题。此设置通过 oc() 将数据库复制到节点本地的包装器 /tmp 每次跑步时,将它们同步回来。
问题
- 主目录位于NFS上;SQLite WAL使用共享内存文件(
.shm)不适用于NFS - 每
salloc可以将您放置在不同的计算节点上 - SLURM可以SIGKILL您的进程(作业超时),使数据库处于不一致的状态
安装
# Same clone step as standalone:
mv ~/.config/opencode ~/.config/opencode-old 2>/dev/null # if it exists
git clone https://github.com/kiryteo/opencode-setup.git ~/.config/opencode
cp ~/.config/opencode-old/settings.json ~/.config/opencode/ 2>/dev/null
rm -rf ~/.config/opencode-old
# Run setup with --slurm flag:
~/.config/opencode/setup.sh --slurm
这 --slurm 标志以交互方式提示:
| 提示 | 描述 | 示例 |
|---|---|---|
| NFS数据目录 | OpenCode运行时数据的持久共享存储(集 XDG_DATA_HOME).留空以供使用 $HOME/.local/share. |
/shared/users/$USER/.local/share |
| CPU分区 | CPU分配的SLURM分区名称 | cpu |
| GPU分区 | GPU分配的SLURM分区名称 | gpu |
它在本地生成一台机器 scripts/bashrc-opencode-local.sh (gitignored)与您的值并添加 source 线到 ~/.bashrc.
source ~/.bashrc # apply changes
在SLURM上的使用
总是使用 oc 而不是 opencode 在计算节点上。 这 oc 包装器处理数据库安全。
# 1. Allocate a compute node:
oc-simple # 8 CPU, 16GB, 4h
oc-cpu # 16 CPU, 64GB, 4h
oc-gpu # 2 GPU, 16 CPU, 64GB, 8h
# 2. Run OpenCode on the compute node:
oc
如何 oc() 作品
Start:
1. Copy opencode.db + memory.db from NFS → node-local /tmp/
2. Symlink non-DB items (auth.json, plans/, storage/) from NFS
3. Start background sync (every 2 min) to protect against SIGKILL
4. Run opencode with XDG_DATA_HOME pointing to /tmp/
Exit (normal):
5. Stop background sync
6. Merge local opencode.db → NFS primary (INSERT OR REPLACE)
7. Backup local memory.db → NFS primary (.backup)
Crash recovery (SIGKILL / job timeout):
- Background sync already wrote recent state to NFS
- Next oc() start detects stale local DB, offers to merge it
- Cross-node lock detection warns if another node is still running
自定义启动器
编辑 scripts/bashrc-opencode-local.sh (gignored,机器本地)更改:
OPENCODE_BIN_DIR="$HOME/.opencode/bin" # opencode binary location
NFS_DATA_DIR="/your/nfs/path/.local/share" # persistent NFS storage
SLURM_PARTITIONS=(
"your_cpu_partition"
"your_gpu_partition"
)
模板位于 scripts/bashrc-opencode.sh (用git跟踪)。
运作原理
记忆
我遇到的最大的痛点是每次训练都是从头开始。对过去的对话、学到的模式或纠正的错误没有记忆。大部分配置都是为了解决这个问题而存在的。
-
会话记忆技能 -一个协议,用于在每个任务后将学习和gotchas写入markdown文件。项目注释转到
.opencode/notes/,跨项目模式进入共享知识库。 -
MCP内存服务器 (
mcp/opencode-memory/)-一个SQLite支持的MCP服务器,用于存储笔记、任务、计划、检查点和交互日志。支持通过FTS5跨过去会话进行全文搜索。尊重XDG_DATA_HOME用于群集上的NFS安全操作。 -
代理商.md -全局指令加载每个会话。包含决策原则、委托规则和在每项任务后坚持学习的要求。这是把记忆碎片粘在一起的胶水。
代理
18+代理定义 agents/,每个都针对特定的工作进行了调整:
- 研究人员 -通过Context7、gh_grep、Sentry MCP服务器获取外部知识
- 探索 -不同彻底性级别的快速代码库导航
- 代码审查员, 安全审查员, 绩效审查员, 架构评审员 -不同镜片的审查试剂
- 分析师 -用bash/Python进行数据分析
- 极小极大优化器/推理机-a/推理机-b/判断 -多智能体对抗推理(两个智能体辩论,盲法官选择更好的答案)
- 多名研究员claude/gpt/ggemini -跨模型验证(对3个模型进行相同查询,综合一致性/不一致性)
- 学术评论家, 学术作家 -结构化论文复习与写作
- 各种个人生产力代理(职业、财务、健身等)
技能
143+技能提供结构化的工作流程。我认为最有用的是:
- 超能力 (
skills/superpowers/)-元技能,如brainstorming,systematic-debugging,test-driven-development,quality-gate,writing-plans,dispatching-parallel-agents - 领域的技能 -
frontend-design,system-design,testing-strategy,documentation等等。 - 研究技能 -
deep-research,literature-review,paper-reading,implement-paper等等。
技能按需加载。这 using-superpowers 技能负载在会话开始时加载,并在行动前督促代理检查相关技能。
插件
12个在后台运行的插件:
| 插件 | 它的作用 |
|---|---|
anchor-pruning |
在上下文压缩过程中删除过时的工具输出 |
compliance-enforcer |
当超过阈值时,使用Nudges质量门和代码简化器 |
local-context |
在会话开始时自动发现项目类型、结构、git上下文 |
loop-detector |
当每个文件的编辑计数达到5/8/12阈值时发出警告 |
memory-snapshot |
将冻结的笔记注入系统提示符,以实现跨会话连续性 |
research-monitor |
在压实过程中保持深入的研究状态 |
superpowers |
在每节课中注入技能检查提醒 |
| 还有更多。.. | 代币监控、Ollama自动发现等。 |
手(预定代理人)
Hands是无头代理,通过macOS launchd按照类似cron的时间表运行。他们与一位坚持不懈的人交谈 opencode serve 守护进程。
hands/
├── HANDS.md # Docs and creation guide
├── infrastructure/
│ ├── run-hand.sh # Generic runner (reads profile.toml, builds prompt)
│ └── serve.sh # Daemon wrapper for opencode serve
├── memory-gardener/ # Periodic memory cleanup and consolidation
├── bookmark-digest/ # Summarize and categorize bookmarks
└── opportunity-scout/ # Research opportunities in configured domains
每只手都有一个 profile.toml 和一个 HAND.md 提示模板。对于macOS设置,请创建 .plist 基于中模板的文件 hands/HANDS.md.
Symphony(多代理公关评论)
一个独立的编排器,它调度并行审查代理(代码质量、安全性、性能、架构),并将其结果综合到一个报告中。通过以下方式与GitHub PR集成 gh。包括测试套件。
命令
139+常用操作斜线命令: /review, /research, /learn, /map-codebase, /consolidate, /draft-paper, /lit-review, /peer-review,以及更多。
定制什么
- 代理商.md -决策原则和授权规则;对自己的惯例进行编码
- opencode.json -MCP服务器连接、模型首选项、权限
- 注释/跨项目模式.md -用户偏好和特定项目的陷阱
- notes/code-constitution.md -您的代码质量标准
- 技能/超能力/ -调整哪些技能是强制性的,哪些是可选的
追踪与个人
| 跟踪(通过git共享) | 个人(gitignored,保持本地) |
|---|---|
| 代理提示、技能、命令、插件 | memory/ --交互日志、笔记、检查点 |
| MCP服务器源代码 | research/ --研究成果和数据 |
| 设置脚本、配置模板 | plans/ --项目计划 |
| 通用OpenCode模式注释 | token-usage/ --使用指标 |
| 政策、文件、测试、交响乐 | hands/*/output/ --计划代理输出 |
*.plist --macOS launchd(硬编码路径) |
|
settings.json --本地OpenCode设置 |
许可证
麻省理工学院
