feat(agents): add Qwen Code and use OpenCode V2 as opencode

Expose llm-agents' opencode2 package under the normal opencode command and persist Qwen Code's ~/.qwen state on the ephemeral-root hosts.
This commit is contained in:
Ryan Yin committed 2026-11-04 00:15:43 +08:00
1 parent 99b0208a2a
commit 432de26764
9 files changed
+33 -7

No files matched your search

+6 -6
View File
@@ -13,12 +13,12 @@ Markdown with no Nix dependency; this module only wires it into place.
- `skills.nix`: links the global skills into `~/.agents/skills/<name>`, from pinned flake inputs and
from `agents/skills/`; the inventory is
[agents/skills/README.md](../../../../agents/skills/README.md).
- `packages.nix`: agent CLIs (`codex`, `opencode2`, `pi`) from the `llm-agents` flake input, dsh
from `nur-ryan4yin`, `pkgs.ctx7` for the `find-docs` skill, and `pkgs.mcp-grafana` for the Grafana
MCP server. dsh's Nushell-only shell is selected when the package is built, via `dsh.withPlugins`
with the plugin from the `dsh-nu` flake input, so it is a derivation choice rather than runtime
state; profile patches live in `~/.dsh/profiles/<name>/cordis.patch.yml`. See [dsh.md](./dsh.md)
for the layer order and the settings that bite.
- `packages.nix`: agent CLIs (`codex`, `opencode`, `qwen-code`, `pi`) from the `llm-agents` flake
input, dsh from `nur-ryan4yin`, `pkgs.ctx7` for the `find-docs` skill, and `pkgs.mcp-grafana` for
the Grafana MCP server. dsh's Nushell-only shell is selected when the package is built, via
`dsh.withPlugins` with the plugin from the `dsh-nu` flake input, so it is a derivation choice
rather than runtime state; profile patches live in `~/.dsh/profiles/<name>/cordis.patch.yml`. See
[dsh.md](./dsh.md) for the layer order and the settings that bite.
- `env.nix`: telemetry and auto-update opt-outs for the agents.
## Deployed rule targets
+10 -1
View File
@@ -12,12 +12,21 @@ let
inherit pkgs;
inherit (pkgs) dsh;
};
# llm-agents.nix still exposes OpenCode V2 as `opencode2` so it can coexist
# with the v1 package. Re-expose its binary under the normal command name.
opencode = pkgs.linkFarm "opencode" [
{
name = "bin/opencode";
path = "${agentPackages.opencode2}/bin/opencode2";
}
];
in
{
home.packages = [
# Agents
agentPackages.codex
agentPackages.opencode2
opencode
agentPackages.qwen-code
agentPackages.pi
# dsh from nur-packages: llm-agents.nix's dsh cannot boot on nixpkgs node
# (node-addon-require-builtin probe), this one shims it. The Nushell-only