@swarmify/agents-cli 1.12.0 → 1.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/LICENSE +21 -0
- package/README.md +212 -232
- package/dist/commands/__tests__/sessions.test.js +90 -20
- package/dist/commands/__tests__/sessions.test.js.map +1 -1
- package/dist/commands/cloud.d.ts +11 -0
- package/dist/commands/cloud.d.ts.map +1 -0
- package/dist/commands/cloud.js +363 -0
- package/dist/commands/cloud.js.map +1 -0
- package/dist/commands/commands.d.ts +9 -0
- package/dist/commands/commands.d.ts.map +1 -1
- package/dist/commands/commands.js +330 -139
- package/dist/commands/commands.js.map +1 -1
- package/dist/commands/daemon.d.ts +8 -0
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +38 -222
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/drive.d.ts +8 -0
- package/dist/commands/drive.d.ts.map +1 -1
- package/dist/commands/drive.js +70 -7
- package/dist/commands/drive.js.map +1 -1
- package/dist/commands/exec.d.ts +9 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +198 -24
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/factory.d.ts +11 -0
- package/dist/commands/factory.d.ts.map +1 -0
- package/dist/commands/factory.js +445 -0
- package/dist/commands/factory.js.map +1 -0
- package/dist/commands/fork.d.ts +8 -0
- package/dist/commands/fork.d.ts.map +1 -1
- package/dist/commands/fork.js +38 -4
- package/dist/commands/fork.js.map +1 -1
- package/dist/commands/hooks.d.ts +9 -0
- package/dist/commands/hooks.d.ts.map +1 -1
- package/dist/commands/hooks.js +252 -18
- package/dist/commands/hooks.js.map +1 -1
- package/dist/commands/init.d.ts +15 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +137 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +250 -169
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/models.d.ts +11 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +170 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/packages.d.ts +8 -0
- package/dist/commands/packages.d.ts.map +1 -1
- package/dist/commands/packages.js +155 -14
- package/dist/commands/packages.js.map +1 -1
- package/dist/commands/permissions.d.ts +9 -0
- package/dist/commands/permissions.d.ts.map +1 -1
- package/dist/commands/permissions.js +72 -13
- package/dist/commands/permissions.js.map +1 -1
- package/dist/commands/plugins.d.ts +8 -0
- package/dist/commands/plugins.d.ts.map +1 -1
- package/dist/commands/plugins.js +265 -44
- package/dist/commands/plugins.js.map +1 -1
- package/dist/commands/profiles.d.ts +12 -0
- package/dist/commands/profiles.d.ts.map +1 -0
- package/dist/commands/profiles.js +255 -0
- package/dist/commands/profiles.js.map +1 -0
- package/dist/commands/pty.d.ts +1 -0
- package/dist/commands/pty.d.ts.map +1 -1
- package/dist/commands/pty.js +133 -22
- package/dist/commands/pty.js.map +1 -1
- package/dist/commands/pull.d.ts +8 -0
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +103 -14
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +8 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +37 -3
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/refresh-memory.d.ts +16 -0
- package/dist/commands/refresh-memory.d.ts.map +1 -0
- package/dist/commands/refresh-memory.js +52 -0
- package/dist/commands/refresh-memory.js.map +1 -0
- package/dist/commands/resource-view.d.ts +39 -0
- package/dist/commands/resource-view.d.ts.map +1 -0
- package/dist/commands/resource-view.js +197 -0
- package/dist/commands/resource-view.js.map +1 -0
- package/dist/commands/routines.d.ts +8 -0
- package/dist/commands/routines.d.ts.map +1 -1
- package/dist/commands/routines.js +163 -34
- package/dist/commands/routines.js.map +1 -1
- package/dist/commands/rules.d.ts +9 -0
- package/dist/commands/rules.d.ts.map +1 -1
- package/dist/commands/rules.js +83 -12
- package/dist/commands/rules.js.map +1 -1
- package/dist/commands/secrets.d.ts +11 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +352 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/sessions-picker.d.ts +18 -0
- package/dist/commands/sessions-picker.d.ts.map +1 -0
- package/dist/commands/sessions-picker.js +265 -0
- package/dist/commands/sessions-picker.js.map +1 -0
- package/dist/commands/sessions.d.ts +15 -0
- package/dist/commands/sessions.d.ts.map +1 -1
- package/dist/commands/sessions.js +700 -263
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/skills.d.ts +9 -0
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +355 -233
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/subagents.d.ts +8 -0
- package/dist/commands/subagents.d.ts.map +1 -1
- package/dist/commands/subagents.js +214 -74
- package/dist/commands/subagents.js.map +1 -1
- package/dist/commands/sync.d.ts +8 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +15 -7
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/teams-picker.d.ts +18 -0
- package/dist/commands/teams-picker.d.ts.map +1 -0
- package/dist/commands/teams-picker.js +290 -0
- package/dist/commands/teams-picker.js.map +1 -0
- package/dist/commands/teams.d.ts +18 -0
- package/dist/commands/teams.d.ts.map +1 -0
- package/dist/commands/teams.js +1098 -0
- package/dist/commands/teams.js.map +1 -0
- package/dist/commands/utils.d.ts +20 -0
- package/dist/commands/utils.d.ts.map +1 -1
- package/dist/commands/utils.js +34 -0
- package/dist/commands/utils.js.map +1 -1
- package/dist/commands/versions.d.ts +8 -0
- package/dist/commands/versions.d.ts.map +1 -1
- package/dist/commands/versions.js +71 -8
- package/dist/commands/versions.js.map +1 -1
- package/dist/commands/view.d.ts +36 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +375 -15
- package/dist/commands/view.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +136 -51
- package/dist/index.js.map +1 -1
- package/dist/lib/__tests__/bugfixes.test.js +3 -3
- package/dist/lib/__tests__/bugfixes.test.js.map +1 -1
- package/dist/lib/__tests__/exec.test.js +125 -19
- package/dist/lib/__tests__/exec.test.js.map +1 -1
- package/dist/lib/__tests__/hooks.test.d.ts +2 -0
- package/dist/lib/__tests__/hooks.test.d.ts.map +1 -0
- package/dist/lib/__tests__/hooks.test.js +203 -0
- package/dist/lib/__tests__/hooks.test.js.map +1 -0
- package/dist/lib/__tests__/memory-compile.test.d.ts +2 -0
- package/dist/lib/__tests__/memory-compile.test.d.ts.map +1 -0
- package/dist/lib/__tests__/memory-compile.test.js +95 -0
- package/dist/lib/__tests__/memory-compile.test.js.map +1 -0
- package/dist/lib/__tests__/models.test.d.ts +2 -0
- package/dist/lib/__tests__/models.test.d.ts.map +1 -0
- package/dist/lib/__tests__/models.test.js +239 -0
- package/dist/lib/__tests__/models.test.js.map +1 -0
- package/dist/lib/__tests__/rotate.test.d.ts +2 -0
- package/dist/lib/__tests__/rotate.test.d.ts.map +1 -0
- package/dist/lib/__tests__/rotate.test.js +80 -0
- package/dist/lib/__tests__/rotate.test.js.map +1 -0
- package/dist/lib/__tests__/secrets-bundles.test.d.ts +2 -0
- package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +1 -0
- package/dist/lib/__tests__/secrets-bundles.test.js +104 -0
- package/dist/lib/__tests__/secrets-bundles.test.js.map +1 -0
- package/dist/lib/__tests__/secrets.test.d.ts +2 -0
- package/dist/lib/__tests__/secrets.test.d.ts.map +1 -0
- package/dist/lib/__tests__/secrets.test.js +90 -0
- package/dist/lib/__tests__/secrets.test.js.map +1 -0
- package/dist/lib/__tests__/shims.test.d.ts +2 -0
- package/dist/lib/__tests__/shims.test.d.ts.map +1 -0
- package/dist/lib/__tests__/shims.test.js +39 -0
- package/dist/lib/__tests__/shims.test.js.map +1 -0
- package/dist/lib/__tests__/usage.test.js +4 -2
- package/dist/lib/__tests__/usage.test.js.map +1 -1
- package/dist/lib/__tests__/versions.test.d.ts +2 -0
- package/dist/lib/__tests__/versions.test.d.ts.map +1 -0
- package/dist/lib/__tests__/versions.test.js +63 -0
- package/dist/lib/__tests__/versions.test.js.map +1 -0
- package/dist/lib/agents.d.ts +53 -1
- package/dist/lib/agents.d.ts.map +1 -1
- package/dist/lib/agents.js +178 -37
- package/dist/lib/agents.js.map +1 -1
- package/dist/lib/artifact-actions.d.ts +8 -3
- package/dist/lib/artifact-actions.d.ts.map +1 -1
- package/dist/lib/artifact-actions.js +8 -5
- package/dist/lib/artifact-actions.js.map +1 -1
- package/dist/lib/cloud/codex.d.ts +26 -0
- package/dist/lib/cloud/codex.d.ts.map +1 -0
- package/dist/lib/cloud/codex.js +237 -0
- package/dist/lib/cloud/codex.js.map +1 -0
- package/dist/lib/cloud/factory.d.ts +32 -0
- package/dist/lib/cloud/factory.d.ts.map +1 -0
- package/dist/lib/cloud/factory.js +43 -0
- package/dist/lib/cloud/factory.js.map +1 -0
- package/dist/lib/cloud/registry.d.ts +16 -0
- package/dist/lib/cloud/registry.d.ts.map +1 -0
- package/dist/lib/cloud/registry.js +68 -0
- package/dist/lib/cloud/registry.js.map +1 -0
- package/dist/lib/cloud/rush.d.ts +37 -0
- package/dist/lib/cloud/rush.d.ts.map +1 -0
- package/dist/lib/cloud/rush.js +230 -0
- package/dist/lib/cloud/rush.js.map +1 -0
- package/dist/lib/cloud/rush.test.d.ts +2 -0
- package/dist/lib/cloud/rush.test.d.ts.map +1 -0
- package/dist/lib/cloud/rush.test.js +63 -0
- package/dist/lib/cloud/rush.test.js.map +1 -0
- package/dist/lib/cloud/store.d.ts +23 -0
- package/dist/lib/cloud/store.d.ts.map +1 -0
- package/dist/lib/cloud/store.js +116 -0
- package/dist/lib/cloud/store.js.map +1 -0
- package/dist/lib/cloud/stream.d.ts +24 -0
- package/dist/lib/cloud/stream.d.ts.map +1 -0
- package/dist/lib/cloud/stream.js +145 -0
- package/dist/lib/cloud/stream.js.map +1 -0
- package/dist/lib/cloud/types.d.ts +109 -0
- package/dist/lib/cloud/types.d.ts.map +1 -0
- package/dist/lib/cloud/types.js +33 -0
- package/dist/lib/cloud/types.js.map +1 -0
- package/dist/lib/cloud/types.test.d.ts +2 -0
- package/dist/lib/cloud/types.test.d.ts.map +1 -0
- package/dist/lib/cloud/types.test.js +41 -0
- package/dist/lib/cloud/types.test.js.map +1 -0
- package/dist/lib/commands.d.ts +67 -0
- package/dist/lib/commands.d.ts.map +1 -1
- package/dist/lib/commands.js +161 -2
- package/dist/lib/commands.js.map +1 -1
- package/dist/lib/convert.d.ts +10 -0
- package/dist/lib/convert.d.ts.map +1 -1
- package/dist/lib/convert.js +9 -0
- package/dist/lib/convert.js.map +1 -1
- package/dist/lib/daemon.d.ts +21 -0
- package/dist/lib/daemon.d.ts.map +1 -1
- package/dist/lib/daemon.js +21 -0
- package/dist/lib/daemon.js.map +1 -1
- package/dist/lib/drive-sync.d.ts +18 -0
- package/dist/lib/drive-sync.d.ts.map +1 -1
- package/dist/lib/drive-sync.js +16 -0
- package/dist/lib/drive-sync.js.map +1 -1
- package/dist/lib/exec.d.ts +64 -3
- package/dist/lib/exec.d.ts.map +1 -1
- package/dist/lib/exec.js +218 -80
- package/dist/lib/exec.js.map +1 -1
- package/dist/lib/factory/__tests__/config.test.d.ts +2 -0
- package/dist/lib/factory/__tests__/config.test.d.ts.map +1 -0
- package/dist/lib/factory/__tests__/config.test.js +128 -0
- package/dist/lib/factory/__tests__/config.test.js.map +1 -0
- package/dist/lib/factory/config.d.ts +49 -0
- package/dist/lib/factory/config.d.ts.map +1 -0
- package/dist/lib/factory/config.js +127 -0
- package/dist/lib/factory/config.js.map +1 -0
- package/dist/lib/factory.js +1 -1
- package/dist/lib/factory.js.map +1 -1
- package/dist/lib/git.d.ts +16 -1
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +33 -4
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/help.d.ts +7 -0
- package/dist/lib/help.d.ts.map +1 -1
- package/dist/lib/help.js +3 -0
- package/dist/lib/help.js.map +1 -1
- package/dist/lib/hooks.d.ts +59 -3
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +413 -33
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/ledger/__tests__/local.test.d.ts +2 -0
- package/dist/lib/ledger/__tests__/local.test.d.ts.map +1 -0
- package/dist/lib/ledger/__tests__/local.test.js +177 -0
- package/dist/lib/ledger/__tests__/local.test.js.map +1 -0
- package/dist/lib/ledger/__tests__/sync.test.d.ts +2 -0
- package/dist/lib/ledger/__tests__/sync.test.d.ts.map +1 -0
- package/dist/lib/ledger/__tests__/sync.test.js +117 -0
- package/dist/lib/ledger/__tests__/sync.test.js.map +1 -0
- package/dist/lib/ledger/index.d.ts +18 -0
- package/dist/lib/ledger/index.d.ts.map +1 -0
- package/dist/lib/ledger/index.js +32 -0
- package/dist/lib/ledger/index.js.map +1 -0
- package/dist/lib/ledger/local.d.ts +22 -0
- package/dist/lib/ledger/local.d.ts.map +1 -0
- package/dist/lib/ledger/local.js +333 -0
- package/dist/lib/ledger/local.js.map +1 -0
- package/dist/lib/ledger/r2.d.ts +41 -0
- package/dist/lib/ledger/r2.d.ts.map +1 -0
- package/dist/lib/ledger/r2.js +335 -0
- package/dist/lib/ledger/r2.js.map +1 -0
- package/dist/lib/ledger/sync.d.ts +33 -0
- package/dist/lib/ledger/sync.d.ts.map +1 -0
- package/dist/lib/ledger/sync.js +106 -0
- package/dist/lib/ledger/sync.js.map +1 -0
- package/dist/lib/ledger/types.d.ts +100 -0
- package/dist/lib/ledger/types.d.ts.map +1 -0
- package/dist/lib/ledger/types.js +21 -0
- package/dist/lib/ledger/types.js.map +1 -0
- package/dist/lib/manifest.d.ts +6 -0
- package/dist/lib/manifest.d.ts.map +1 -1
- package/dist/lib/manifest.js +12 -0
- package/dist/lib/manifest.js.map +1 -1
- package/dist/lib/markdown.d.ts.map +1 -1
- package/dist/lib/markdown.js +6 -0
- package/dist/lib/markdown.js.map +1 -1
- package/dist/lib/mcp.d.ts +0 -9
- package/dist/lib/mcp.d.ts.map +1 -1
- package/dist/lib/mcp.js +0 -20
- package/dist/lib/mcp.js.map +1 -1
- package/dist/lib/memory-compile.d.ts +65 -0
- package/dist/lib/memory-compile.d.ts.map +1 -0
- package/dist/lib/memory-compile.js +174 -0
- package/dist/lib/memory-compile.js.map +1 -0
- package/dist/lib/memory.d.ts +8 -0
- package/dist/lib/memory.d.ts.map +1 -1
- package/dist/lib/memory.js +8 -0
- package/dist/lib/memory.js.map +1 -1
- package/dist/lib/models.d.ts +98 -0
- package/dist/lib/models.d.ts.map +1 -0
- package/dist/lib/models.js +728 -0
- package/dist/lib/models.js.map +1 -0
- package/dist/lib/permissions.d.ts +24 -1
- package/dist/lib/permissions.d.ts.map +1 -1
- package/dist/lib/permissions.js +52 -3
- package/dist/lib/permissions.js.map +1 -1
- package/dist/lib/picker.d.ts +27 -0
- package/dist/lib/picker.d.ts.map +1 -0
- package/dist/lib/picker.js +110 -0
- package/dist/lib/picker.js.map +1 -0
- package/dist/lib/plugins.d.ts +22 -0
- package/dist/lib/plugins.d.ts.map +1 -1
- package/dist/lib/plugins.js +114 -0
- package/dist/lib/plugins.js.map +1 -1
- package/dist/lib/profiles-keychain.d.ts +11 -0
- package/dist/lib/profiles-keychain.d.ts.map +1 -0
- package/dist/lib/profiles-keychain.js +14 -0
- package/dist/lib/profiles-keychain.js.map +1 -0
- package/dist/lib/profiles-presets.d.ts +25 -0
- package/dist/lib/profiles-presets.d.ts.map +1 -0
- package/dist/lib/profiles-presets.js +104 -0
- package/dist/lib/profiles-presets.js.map +1 -0
- package/dist/lib/profiles.d.ts +70 -0
- package/dist/lib/profiles.d.ts.map +1 -0
- package/dist/lib/profiles.js +145 -0
- package/dist/lib/profiles.js.map +1 -0
- package/dist/lib/pty-client.d.ts +1 -0
- package/dist/lib/pty-client.d.ts.map +1 -1
- package/dist/lib/pty-client.js.map +1 -1
- package/dist/lib/pty-server.d.ts +5 -0
- package/dist/lib/pty-server.d.ts.map +1 -1
- package/dist/lib/pty-server.js +5 -0
- package/dist/lib/pty-server.js.map +1 -1
- package/dist/lib/registry.d.ts +17 -0
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/registry.js +17 -0
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/resources.d.ts +5 -0
- package/dist/lib/resources.d.ts.map +1 -1
- package/dist/lib/resources.js.map +1 -1
- package/dist/lib/rotate.d.ts +58 -0
- package/dist/lib/rotate.d.ts.map +1 -0
- package/dist/lib/rotate.js +93 -0
- package/dist/lib/rotate.js.map +1 -0
- package/dist/lib/routines.d.ts +30 -1
- package/dist/lib/routines.d.ts.map +1 -1
- package/dist/lib/routines.js +31 -4
- package/dist/lib/routines.js.map +1 -1
- package/dist/lib/runner.d.ts +14 -0
- package/dist/lib/runner.d.ts.map +1 -1
- package/dist/lib/runner.js +45 -11
- package/dist/lib/runner.js.map +1 -1
- package/dist/lib/sandbox.d.ts +16 -0
- package/dist/lib/sandbox.d.ts.map +1 -1
- package/dist/lib/sandbox.js +19 -2
- package/dist/lib/sandbox.js.map +1 -1
- package/dist/lib/scheduler.d.ts +8 -0
- package/dist/lib/scheduler.d.ts.map +1 -1
- package/dist/lib/scheduler.js +8 -0
- package/dist/lib/scheduler.js.map +1 -1
- package/dist/lib/secrets-bundles.d.ts +38 -0
- package/dist/lib/secrets-bundles.d.ts.map +1 -0
- package/dist/lib/secrets-bundles.js +176 -0
- package/dist/lib/secrets-bundles.js.map +1 -0
- package/dist/lib/secrets.d.ts +53 -0
- package/dist/lib/secrets.d.ts.map +1 -0
- package/dist/lib/secrets.js +140 -0
- package/dist/lib/secrets.js.map +1 -0
- package/dist/lib/session/__tests__/db.test.d.ts +2 -0
- package/dist/lib/session/__tests__/db.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/db.test.js +54 -0
- package/dist/lib/session/__tests__/db.test.js.map +1 -0
- package/dist/lib/session/__tests__/discover.test.js +54 -91
- package/dist/lib/session/__tests__/discover.test.js.map +1 -1
- package/dist/lib/session/__tests__/prompt.test.d.ts +2 -0
- package/dist/lib/session/__tests__/prompt.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/prompt.test.js +44 -0
- package/dist/lib/session/__tests__/prompt.test.js.map +1 -0
- package/dist/lib/session/__tests__/render.test.d.ts +2 -0
- package/dist/lib/session/__tests__/render.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/render.test.js +602 -0
- package/dist/lib/session/__tests__/render.test.js.map +1 -0
- package/dist/lib/session/artifacts.d.ts +15 -0
- package/dist/lib/session/artifacts.d.ts.map +1 -0
- package/dist/lib/session/artifacts.js +86 -0
- package/dist/lib/session/artifacts.js.map +1 -0
- package/dist/lib/session/db.d.ts +140 -0
- package/dist/lib/session/db.d.ts.map +1 -0
- package/dist/lib/session/db.js +599 -0
- package/dist/lib/session/db.js.map +1 -0
- package/dist/lib/session/discover.d.ts +44 -32
- package/dist/lib/session/discover.d.ts.map +1 -1
- package/dist/lib/session/discover.js +418 -464
- package/dist/lib/session/discover.js.map +1 -1
- package/dist/lib/session/parse.d.ts +11 -0
- package/dist/lib/session/parse.d.ts.map +1 -1
- package/dist/lib/session/parse.js +50 -0
- package/dist/lib/session/parse.js.map +1 -1
- package/dist/lib/session/prompt.d.ts +10 -0
- package/dist/lib/session/prompt.d.ts.map +1 -1
- package/dist/lib/session/prompt.js +38 -2
- package/dist/lib/session/prompt.js.map +1 -1
- package/dist/lib/session/prompt.test.d.ts +2 -0
- package/dist/lib/session/prompt.test.d.ts.map +1 -0
- package/dist/lib/session/prompt.test.js +57 -0
- package/dist/lib/session/prompt.test.js.map +1 -0
- package/dist/lib/session/render.d.ts +91 -10
- package/dist/lib/session/render.d.ts.map +1 -1
- package/dist/lib/session/render.js +708 -180
- package/dist/lib/session/render.js.map +1 -1
- package/dist/lib/session/team-filter.d.ts +35 -0
- package/dist/lib/session/team-filter.d.ts.map +1 -0
- package/dist/lib/session/team-filter.js +75 -0
- package/dist/lib/session/team-filter.js.map +1 -0
- package/dist/lib/session/team-filter.test.d.ts +2 -0
- package/dist/lib/session/team-filter.test.d.ts.map +1 -0
- package/dist/lib/session/team-filter.test.js +157 -0
- package/dist/lib/session/team-filter.test.js.map +1 -0
- package/dist/lib/session/types.d.ts +48 -6
- package/dist/lib/session/types.d.ts.map +1 -1
- package/dist/lib/session/types.js +9 -0
- package/dist/lib/session/types.js.map +1 -1
- package/dist/lib/shims.d.ts +101 -2
- package/dist/lib/shims.d.ts.map +1 -1
- package/dist/lib/shims.js +282 -25
- package/dist/lib/shims.js.map +1 -1
- package/dist/lib/skills.d.ts +68 -0
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/skills.js +267 -1
- package/dist/lib/skills.js.map +1 -1
- package/dist/lib/state.d.ts +41 -2
- package/dist/lib/state.d.ts.map +1 -1
- package/dist/lib/state.js +63 -4
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/subagents.d.ts +9 -0
- package/dist/lib/subagents.d.ts.map +1 -1
- package/dist/lib/subagents.js +9 -1
- package/dist/lib/subagents.js.map +1 -1
- package/dist/lib/teams/__tests__/oracle.test.d.ts +2 -0
- package/dist/lib/teams/__tests__/oracle.test.d.ts.map +1 -0
- package/dist/lib/teams/__tests__/oracle.test.js +89 -0
- package/dist/lib/teams/__tests__/oracle.test.js.map +1 -0
- package/dist/lib/teams/__tests__/supervisor.test.d.ts +2 -0
- package/dist/lib/teams/__tests__/supervisor.test.d.ts.map +1 -0
- package/dist/lib/teams/__tests__/supervisor.test.js +179 -0
- package/dist/lib/teams/__tests__/supervisor.test.js.map +1 -0
- package/dist/lib/teams/agents.d.ts +247 -0
- package/dist/lib/teams/agents.d.ts.map +1 -0
- package/dist/lib/teams/agents.js +1244 -0
- package/dist/lib/teams/agents.js.map +1 -0
- package/dist/lib/teams/api.d.ts +91 -0
- package/dist/lib/teams/api.d.ts.map +1 -0
- package/dist/lib/teams/api.js +239 -0
- package/dist/lib/teams/api.js.map +1 -0
- package/dist/lib/teams/cloud.d.ts +11 -0
- package/dist/lib/teams/cloud.d.ts.map +1 -0
- package/dist/lib/teams/cloud.js +169 -0
- package/dist/lib/teams/cloud.js.map +1 -0
- package/dist/lib/teams/debug.d.ts +8 -0
- package/dist/lib/teams/debug.d.ts.map +1 -0
- package/dist/lib/teams/debug.js +12 -0
- package/dist/lib/teams/debug.js.map +1 -0
- package/dist/lib/teams/file_ops.d.ts +13 -0
- package/dist/lib/teams/file_ops.d.ts.map +1 -0
- package/dist/lib/teams/file_ops.js +66 -0
- package/dist/lib/teams/file_ops.js.map +1 -0
- package/dist/lib/teams/index.d.ts +16 -0
- package/dist/lib/teams/index.d.ts.map +1 -0
- package/dist/lib/teams/index.js +15 -0
- package/dist/lib/teams/index.js.map +1 -0
- package/dist/lib/teams/oracle.d.ts +20 -0
- package/dist/lib/teams/oracle.d.ts.map +1 -0
- package/dist/lib/teams/oracle.js +59 -0
- package/dist/lib/teams/oracle.js.map +1 -0
- package/dist/lib/teams/parsers.d.ts +9 -0
- package/dist/lib/teams/parsers.d.ts.map +1 -0
- package/dist/lib/teams/parsers.js +837 -0
- package/dist/lib/teams/parsers.js.map +1 -0
- package/dist/lib/teams/persistence.d.ts +43 -0
- package/dist/lib/teams/persistence.d.ts.map +1 -0
- package/dist/lib/teams/persistence.js +299 -0
- package/dist/lib/teams/persistence.js.map +1 -0
- package/dist/lib/teams/ralph.d.ts +8 -0
- package/dist/lib/teams/ralph.d.ts.map +1 -0
- package/dist/lib/teams/ralph.js +59 -0
- package/dist/lib/teams/ralph.js.map +1 -0
- package/dist/lib/teams/registry.d.ts +18 -0
- package/dist/lib/teams/registry.d.ts.map +1 -0
- package/dist/lib/teams/registry.js +68 -0
- package/dist/lib/teams/registry.js.map +1 -0
- package/dist/lib/teams/summarizer.d.ts +73 -0
- package/dist/lib/teams/summarizer.d.ts.map +1 -0
- package/dist/lib/teams/summarizer.js +780 -0
- package/dist/lib/teams/summarizer.js.map +1 -0
- package/dist/lib/teams/supervisor.d.ts +49 -0
- package/dist/lib/teams/supervisor.d.ts.map +1 -0
- package/dist/lib/teams/supervisor.js +74 -0
- package/dist/lib/teams/supervisor.js.map +1 -0
- package/dist/lib/template.d.ts +8 -5
- package/dist/lib/template.d.ts.map +1 -1
- package/dist/lib/template.js +8 -5
- package/dist/lib/template.js.map +1 -1
- package/dist/lib/types.d.ts +58 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +16 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/usage.d.ts +48 -0
- package/dist/lib/usage.d.ts.map +1 -1
- package/dist/lib/usage.js +106 -14
- package/dist/lib/usage.js.map +1 -1
- package/dist/lib/versions.d.ts +12 -1
- package/dist/lib/versions.d.ts.map +1 -1
- package/dist/lib/versions.js +124 -41
- package/dist/lib/versions.js.map +1 -1
- package/package.json +20 -6
- package/scripts/postinstall.js +1 -1
- package/scripts/rebuild-sqlite.sh +46 -0
- package/dist/commands/sessions.test.d.ts +0 -2
- package/dist/commands/sessions.test.d.ts.map +0 -1
- package/dist/commands/sessions.test.js +0 -53
- package/dist/commands/sessions.test.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
**Scheduler merged into `routines`; top-level help simplified**
|
|
6
|
+
|
|
7
|
+
- `agents routines add` now auto-starts the background scheduler when it is not already running. First-time users no longer need a separate `daemon start` step — the common path is just `routines add`.
|
|
8
|
+
- New subcommands mirror the old daemon controls under `routines`: `agents routines start`, `stop`, `status`, `scheduler-logs`. The word "daemon" is no longer exposed in user-facing help.
|
|
9
|
+
- `agents daemon <start|stop|status|logs>` is **deprecated**. It still works but prints a migration warning and is hidden from top-level help. Will be removed in v2.0.
|
|
10
|
+
- Top-level help restructured: the old "Automation" grab-bag is gone. Commands are now grouped as **Run agents** (`run`, `teams`, `sessions`), **Schedule** (`routines`), and **Helpers** (`pty`).
|
|
11
|
+
|
|
12
|
+
**Dev: sqlite auto-rebuild on `bun run test`**
|
|
13
|
+
|
|
14
|
+
- Added `scripts/rebuild-sqlite.sh` and a `pretest` hook. The script probes `better-sqlite3` by opening an in-memory database and only rebuilds (plain `node-gyp rebuild --release`, no Electron flags) when the probe fails. Fixes the napi ABI mismatch that `bun install` sometimes leaves behind.
|
|
15
|
+
|
|
16
|
+
**Default upstream moved to `phnx-labs/.agents`**
|
|
17
|
+
|
|
18
|
+
- `DEFAULT_SYSTEM_REPO` now resolves to `gh:phnx-labs/.agents` — a curated, org-owned upstream. `agents pull` (no args) and `agents fork` target the new repo on fresh machines.
|
|
19
|
+
- Existing users whose upstream still points at `muqsitnawaz/.agents` see a one-time nudge on `agents pull --upstream` with the command to switch. Nothing else breaks; legacy remotes continue to work.
|
|
20
|
+
|
|
21
|
+
**Consolidate sessions command**
|
|
22
|
+
|
|
23
|
+
- Removed `agents sessions list` and `agents sessions view` subcommands; `agents sessions` is now a single smart command
|
|
24
|
+
- Positional query resolves to a session ID (renders directly), a path (`.`, `../`, `/path`) to filter by project, or free text for search
|
|
25
|
+
- Claude `/resume` history fallback (previously only in `view`) now fires from the top-level command too
|
|
26
|
+
- Picker shows the selected-session preview by default; space hides it
|
|
27
|
+
|
|
28
|
+
**Session view flags: filters + formats split cleanly**
|
|
29
|
+
|
|
30
|
+
- Formats: default is the activity summary; `--markdown` renders the full conversation (user + assistant + thinking + tool calls) as markdown; `--json` emits normalized events
|
|
31
|
+
- Filters compose orthogonally: `--include <roles>` / `--exclude <roles>` (values: `user`, `assistant`, `thinking`, `tools`), plus `--first N` / `--last N` to slice by turn (a turn starts at each user message)
|
|
32
|
+
- Any filter flag without `--markdown`/`--json` defaults to markdown output — summary is an aggregate view so filters would be meaningless there
|
|
33
|
+
- Mutual exclusion: `--include` vs `--exclude`, `--first` vs `--last`
|
|
34
|
+
- Removed `--transcript`, `--trace`, `--timeline`, and `--role` (replaced by the above)
|
|
35
|
+
|
|
3
36
|
## 1.12.0
|
|
4
37
|
|
|
5
38
|
**JSON output for sessions list**
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Phoenix Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,344 +1,324 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo.png" alt="agents" width="120" />
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<h1 align="center">agents</h1>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@phnx-labs/agents-cli"><img src="https://img.shields.io/npm/v/@phnx-labs/agents-cli.svg?style=flat-square" alt="npm version" /></a>
|
|
9
|
+
<a href="./LICENSE"><img src="https://img.shields.io/npm/l/@phnx-labs/agents-cli.svg?style=flat-square" alt="license" /></a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/@phnx-labs/agents-cli"><img src="https://img.shields.io/npm/dm/@phnx-labs/agents-cli.svg?style=flat-square" alt="downloads" /></a>
|
|
11
|
+
<a href="https://agents-cli.sh"><img src="https://img.shields.io/badge/homepage-agents--cli.sh-blue?style=flat-square" alt="homepage" /></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
**One CLI for all your AI coding agents.** Pin versions per project. Share config across Claude Code, Codex, Gemini CLI, and Cursor. Stop setting up the same MCP server three times.
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<video src="https://github.com/phnx-labs/agents-cli/raw/main/assets/demo.mp4" autoplay loop muted playsinline width="800"></video>
|
|
18
|
+
</p>
|
|
6
19
|
|
|
7
20
|
```bash
|
|
8
|
-
|
|
21
|
+
curl -fsSL agents-cli.sh | sh
|
|
22
|
+
# or
|
|
23
|
+
npm install -g @phnx-labs/agents-cli
|
|
9
24
|
```
|
|
10
25
|
|
|
11
26
|
Also available as `ag` -- all commands work with both `agents` and `ag`.
|
|
12
27
|
|
|
28
|
+
- [Pin versions per project](#pin-versions-per-project)
|
|
29
|
+
- [One config, every agent](#one-config-every-agent)
|
|
30
|
+
- [Run any agent](#run-any-agent)
|
|
31
|
+
- [Sessions across agents](#sessions-across-agents)
|
|
32
|
+
- [Run open models through Claude Code](#run-open-models-through-claude-code)
|
|
33
|
+
- [Teams](#teams)
|
|
34
|
+
- [Secrets](#secrets)
|
|
35
|
+
- [Routines](#routines)
|
|
36
|
+
- [PTY](#pty)
|
|
37
|
+
- [Portable setup](#portable-setup)
|
|
38
|
+
- [Compatibility](#compatibility)
|
|
39
|
+
- [FAQ](#faq)
|
|
40
|
+
|
|
13
41
|
---
|
|
14
42
|
|
|
15
|
-
##
|
|
43
|
+
## Pin versions per project
|
|
16
44
|
|
|
17
45
|
```bash
|
|
18
|
-
|
|
19
|
-
agents
|
|
20
|
-
agents exec gemini "Write tests for the fixed code"
|
|
21
|
-
```
|
|
46
|
+
# This project needs claude@2.0.65 -- newer versions changed tool calling.
|
|
47
|
+
agents use claude@2.0.65 -p
|
|
22
48
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
`agents exec` also passes through environment overrides to the spawned CLI, so Claude can target any Anthropic-compatible endpoint:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
agents exec claude "Reply with exactly: agents-qwen route ok" \
|
|
29
|
-
--mode full \
|
|
30
|
-
--model qwen3.6:35b \
|
|
31
|
-
--env ANTHROPIC_BASE_URL=https://ollama.427yosemite.com \
|
|
32
|
-
--env ANTHROPIC_AUTH_TOKEN="$(security find-generic-password -a "$USER" -s yosemite-ollama-auth-token -w)" \
|
|
33
|
-
--env ANTHROPIC_MODEL=qwen3.6:35b \
|
|
34
|
-
--env ANTHROPIC_SMALL_FAST_MODEL=qwen3.6:35b
|
|
49
|
+
# The monorepo uses codex@0.116.0 across the team.
|
|
50
|
+
agents use codex@0.116.0 -p
|
|
35
51
|
```
|
|
36
52
|
|
|
37
|
-
|
|
53
|
+
Like `.nvmrc` for Node. A shim reads `agents.yaml` from the project root and routes `claude` / `codex` / `gemini` to the right version automatically. Each version gets its own isolated home -- switching backs up config and re-syncs resources.
|
|
38
54
|
|
|
39
55
|
```bash
|
|
40
|
-
#
|
|
41
|
-
agents
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
# Same pipeline, different project -- different agent versions, same commands
|
|
45
|
-
cd ../other-project
|
|
46
|
-
agents exec claude "Review all PRs merged this week, summarize risks"
|
|
47
|
-
# ^ resolves to claude@2.0.0 here instead of claude@2.1.89
|
|
56
|
+
agents add claude@2.0.65 # Install a specific version
|
|
57
|
+
agents add codex@latest # Install latest
|
|
58
|
+
agents view # See everything installed
|
|
48
59
|
```
|
|
49
60
|
|
|
50
|
-
Supports plan (read-only) and edit modes, effort levels that map to the right model per agent, and JSON output for scripting.
|
|
51
|
-
|
|
52
61
|
---
|
|
53
62
|
|
|
54
|
-
##
|
|
55
|
-
|
|
56
|
-
Other coding agents usually run in non-TTY shells. `agents` now supports that mode directly:
|
|
63
|
+
## One config, every agent
|
|
57
64
|
|
|
58
65
|
```bash
|
|
59
|
-
|
|
60
|
-
agents
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
agents
|
|
64
|
-
agents mcp add postgres --agents claude@2.1.79 -- npx -y @modelcontextprotocol/server-postgres
|
|
65
|
-
agents mcp register postgres
|
|
66
|
-
agents sessions view <session-id>
|
|
67
|
-
agents routines view <job-name>
|
|
66
|
+
# Set up the Notion MCP server once.
|
|
67
|
+
agents install mcp:com.notion/mcp
|
|
68
|
+
|
|
69
|
+
# It's now registered with Claude Code, Codex, Gemini CLI, and Cursor.
|
|
70
|
+
agents mcp list
|
|
68
71
|
```
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
Skills, slash commands, rules, hooks, and permissions work the same way -- install once in `~/.agents/`, synced to every agent's native format automatically.
|
|
71
74
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
```bash
|
|
76
|
+
agents skills add gh:yourteam/python-expert # Knowledge pack -> all agents
|
|
77
|
+
agents commands add gh:yourteam/commands # Slash commands -> all agents
|
|
78
|
+
agents rules add gh:team/rules # AGENTS.md -> CLAUDE.md, GEMINI.md, .cursorrules
|
|
79
|
+
agents permissions add ./perms # Permissions -> auto-converted per agent
|
|
80
|
+
```
|
|
77
81
|
|
|
78
|
-
|
|
82
|
+
Write one `AGENTS.md`. It becomes `CLAUDE.md` for Claude Code, `GEMINI.md` for Gemini CLI, `.cursorrules` for Cursor.
|
|
79
83
|
|
|
80
84
|
---
|
|
81
85
|
|
|
82
|
-
##
|
|
83
|
-
|
|
84
|
-
Interactive terminals now get a live-search picker for sessions:
|
|
86
|
+
## Run any agent
|
|
85
87
|
|
|
86
88
|
```bash
|
|
87
|
-
agents
|
|
88
|
-
agents
|
|
89
|
-
agents
|
|
90
|
-
agents sessions view --agent gemini "session discovery"
|
|
89
|
+
agents run claude "Find all auth vulnerabilities in src/"
|
|
90
|
+
agents run codex "Fix the issues Claude found"
|
|
91
|
+
agents run gemini "Write tests for the fixed code"
|
|
91
92
|
```
|
|
92
93
|
|
|
93
|
-
|
|
94
|
+
Each resolves to the project-pinned version with skills, MCP servers, and permissions already synced.
|
|
94
95
|
|
|
95
|
-
-
|
|
96
|
-
- Prompt text / topic text
|
|
97
|
-
- Project name
|
|
98
|
-
- Account email
|
|
99
|
-
- Agent name or version
|
|
96
|
+
### Rate-limited? Keep working.
|
|
100
97
|
|
|
101
|
-
|
|
98
|
+
```bash
|
|
99
|
+
# Claude Code hits a rate limit -> Codex picks up automatically. Same project, same config.
|
|
100
|
+
agents run claude "refactor auth module" --mode edit --fallback codex,gemini
|
|
101
|
+
```
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
### Multiple accounts? Spread the load.
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
```bash
|
|
106
|
+
# Picks the signed-in account you haven't used recently.
|
|
107
|
+
agents run claude "summarize recent commits" --rotate
|
|
108
|
+
```
|
|
106
109
|
|
|
107
|
-
|
|
110
|
+
`--rotate` cycles across installed versions of the same agent -- useful when you have multiple accounts and want to spread usage instead of burning through one.
|
|
111
|
+
|
|
112
|
+
### Chain agents
|
|
108
113
|
|
|
109
114
|
```bash
|
|
110
|
-
agents
|
|
111
|
-
agents
|
|
115
|
+
agents run claude "Review PRs merged this week, summarize risks" \
|
|
116
|
+
| agents run codex "Write regression tests for the top 3 risks"
|
|
112
117
|
```
|
|
113
118
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
When you switch versions, configs are backed up and resources are re-synced. Each version gets its own isolated home directory with the right skills, commands, and permissions already in place.
|
|
119
|
+
Supports plan (read-only) and edit modes, effort levels, JSON output for scripting, and timeout limits.
|
|
117
120
|
|
|
118
121
|
---
|
|
119
122
|
|
|
120
|
-
##
|
|
123
|
+
## Sessions across agents
|
|
121
124
|
|
|
122
|
-
|
|
125
|
+
```bash
|
|
126
|
+
# Where was that auth conversation? Search Claude Code, Codex, Gemini CLI, OpenCode at once.
|
|
127
|
+
agents sessions "auth middleware"
|
|
123
128
|
|
|
124
|
-
|
|
129
|
+
# Filter by agent, project, or time window
|
|
130
|
+
agents sessions --agent codex --since 7d
|
|
131
|
+
agents sessions --project my-app
|
|
125
132
|
|
|
126
|
-
|
|
127
|
-
agents
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
agents
|
|
133
|
+
# Read a full conversation
|
|
134
|
+
agents sessions a1b2c3d4 --markdown
|
|
135
|
+
|
|
136
|
+
# Just the last 3 turns, user messages only
|
|
137
|
+
agents sessions a1b2c3d4 --last 3 --include user
|
|
131
138
|
```
|
|
132
139
|
|
|
133
|
-
|
|
140
|
+
Interactive picker when you're in a terminal. Structured output (`--json`, `--markdown`, filtered by role or turn count) when piped.
|
|
134
141
|
|
|
135
|
-
|
|
136
|
-
python-expert/
|
|
137
|
-
SKILL.md # Metadata + description
|
|
138
|
-
rules/
|
|
139
|
-
type-hints.md # Individual rules your agents follow
|
|
140
|
-
error-handling.md
|
|
141
|
-
testing.md
|
|
142
|
-
```
|
|
142
|
+
Backed by a SQLite + FTS5 index at `~/.agents/sessions/sessions.db` with incremental scanning -- warm reads in ~100ms. External tools can consume `--json` output as a programmatic observability layer; see [docs/05-sessions.md](docs/05-sessions.md) for the schema and [docs/06-observability.md](docs/06-observability.md) for the consumption patterns.
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
---
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
## Run open models through Claude Code
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
agents
|
|
149
|
+
# Kimi K2.5 responding inside Claude Code's UI, tools, and skills.
|
|
150
|
+
# No proxy server. No LiteLLM. One OpenRouter key, stored in Keychain.
|
|
151
|
+
agents profiles add kimi
|
|
152
|
+
agents run kimi "refactor this file"
|
|
152
153
|
```
|
|
153
154
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
155
|
+
Built-in presets (all via OpenRouter, one shared key):
|
|
156
|
+
|
|
157
|
+
| Preset | Model | Notes |
|
|
158
|
+
|---|---|---|
|
|
159
|
+
| `kimi` | Kimi K2.5 | #1 HumanEval. Reasoning -- interactive only. |
|
|
160
|
+
| `minimax` | MiniMax M2.5 | #1 SWE-bench Verified. Reasoning. |
|
|
161
|
+
| `glm` | GLM 5 | #1 Chatbot Arena (open-weight). |
|
|
162
|
+
| `qwen` | Qwen3 Coder Next | Latest coding Qwen. Print-safe. |
|
|
163
|
+
| `deepseek` | DeepSeek Chat V3 | Latest non-reasoning. Print-safe. |
|
|
164
|
+
|
|
165
|
+
A profile swaps the model while keeping Claude Code as the agent runtime -- same UI, slash commands, skills, MCP tools. Under the hood: `ANTHROPIC_BASE_URL` + `ANTHROPIC_MODEL`, auth from Keychain at spawn time.
|
|
166
|
+
|
|
167
|
+
Custom endpoints (Ollama, vLLM) work too -- drop a YAML in `~/.agents/profiles/`:
|
|
168
|
+
|
|
169
|
+
```yaml
|
|
170
|
+
name: local-qwen
|
|
171
|
+
host: { agent: claude }
|
|
172
|
+
env:
|
|
173
|
+
ANTHROPIC_BASE_URL: https://ollama.internal
|
|
174
|
+
ANTHROPIC_MODEL: qwen3.6:35b
|
|
175
|
+
auth:
|
|
176
|
+
envVar: ANTHROPIC_AUTH_TOKEN
|
|
177
|
+
keychainItem: agents-cli.ollama.token
|
|
162
178
|
```
|
|
163
179
|
|
|
164
|
-
|
|
180
|
+
Profile YAML has no secrets -- safe to `agents push` to a shared repo. `agents profiles presets` lists the full catalog.
|
|
181
|
+
|
|
182
|
+
---
|
|
165
183
|
|
|
166
|
-
|
|
184
|
+
## Teams
|
|
167
185
|
|
|
168
186
|
```bash
|
|
169
|
-
agents
|
|
170
|
-
agents pull # Restore on any machine
|
|
171
|
-
```
|
|
187
|
+
agents teams create auth-feature
|
|
172
188
|
|
|
173
|
-
|
|
189
|
+
# Research first, then implement, then test.
|
|
190
|
+
agents teams add auth-feature claude "Research auth libraries" --name researcher
|
|
191
|
+
agents teams add auth-feature codex "Draft the migration" --name migrator --after researcher
|
|
192
|
+
agents teams add auth-feature claude "Write tests for the new code" --name tester --after migrator
|
|
174
193
|
|
|
175
|
-
|
|
176
|
-
agents
|
|
177
|
-
agents pull --upstream # Merge updates from upstream
|
|
194
|
+
agents teams start auth-feature # Fires teammates whose deps are done
|
|
195
|
+
agents teams status auth-feature # Who's working, what they changed, what they said
|
|
178
196
|
```
|
|
179
197
|
|
|
180
|
-
|
|
198
|
+
Teammates run detached -- close your terminal, they keep working. Check in with `teams status`, read full output with `teams logs <name>`, clean up with `teams disband`.
|
|
199
|
+
|
|
200
|
+
Team state is observable via `agents teams list --json` / `agents teams status --json`. External tools join it with `sessions --json` (teammates get `isTeamOrigin: true`) and `cloud list --json` (for `--cloud` teammates) to build a unified fleet view. See [docs/06-observability.md](docs/06-observability.md).
|
|
201
|
+
|
|
202
|
+
---
|
|
181
203
|
|
|
182
|
-
|
|
204
|
+
## Secrets
|
|
183
205
|
|
|
184
206
|
```bash
|
|
185
|
-
|
|
186
|
-
agents
|
|
187
|
-
agents
|
|
188
|
-
agents
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
agents
|
|
207
|
+
# API keys in Keychain, not in .env files.
|
|
208
|
+
agents secrets add prod-stripe
|
|
209
|
+
agents secrets set prod-stripe STRIPE_SECRET_KEY # Prompts, stores in Keychain
|
|
210
|
+
agents secrets set prod-stripe TEST_CARD --value "4242..."
|
|
211
|
+
|
|
212
|
+
# Injected at run time. The YAML on disk has only refs.
|
|
213
|
+
agents run claude "charge a test card" --secrets prod-stripe
|
|
192
214
|
```
|
|
193
215
|
|
|
194
|
-
|
|
216
|
+
Merge order: profile env < `--secrets` < `--env K=V`. A missing keychain item aborts before the child starts.
|
|
217
|
+
|
|
218
|
+
---
|
|
195
219
|
|
|
196
|
-
|
|
220
|
+
## Routines
|
|
197
221
|
|
|
198
222
|
```bash
|
|
223
|
+
# Claude Code reviews PRs every weekday at 9 AM. Scheduler auto-starts.
|
|
199
224
|
agents routines add daily-digest \
|
|
200
225
|
--schedule "0 9 * * 1-5" \
|
|
201
226
|
--agent claude \
|
|
202
227
|
--prompt "Review yesterday's PRs and summarize key changes"
|
|
203
228
|
|
|
204
|
-
agents
|
|
205
|
-
agents routines
|
|
206
|
-
agents routines logs daily-digest # Check execution
|
|
229
|
+
agents routines list # All jobs + next run times
|
|
230
|
+
agents routines run daily-digest # Test it now, ignore the schedule
|
|
231
|
+
agents routines logs daily-digest # Check last execution
|
|
207
232
|
```
|
|
208
233
|
|
|
209
234
|
Jobs run sandboxed -- agents only see directories and tools you explicitly allow.
|
|
210
235
|
|
|
211
|
-
|
|
236
|
+
---
|
|
212
237
|
|
|
213
|
-
|
|
238
|
+
## PTY
|
|
214
239
|
|
|
215
240
|
```bash
|
|
216
|
-
agents
|
|
217
|
-
agents
|
|
218
|
-
agents
|
|
241
|
+
# Give agents a real terminal for REPLs, TUIs, interactive programs.
|
|
242
|
+
SID=$(agents pty start)
|
|
243
|
+
agents pty exec $SID "python3"
|
|
244
|
+
agents pty screen $SID # Clean text, no ANSI -- what a human sees
|
|
245
|
+
agents pty write $SID "print('hello')\n"
|
|
246
|
+
agents pty stop $SID
|
|
219
247
|
```
|
|
220
248
|
|
|
221
|
-
|
|
249
|
+
A sidecar server holds sessions alive between CLI calls. `screen` renders via xterm-headless. Sessions auto-clean after 30 minutes idle.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Portable setup
|
|
222
254
|
|
|
223
255
|
```bash
|
|
224
|
-
|
|
225
|
-
agents
|
|
256
|
+
# New machine? One command.
|
|
257
|
+
agents pull
|
|
226
258
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
```
|
|
259
|
+
# Installs CLIs, registers MCP servers, syncs skills/commands/rules/hooks,
|
|
260
|
+
# sets up shims, configures defaults. Done.
|
|
230
261
|
|
|
231
|
-
|
|
262
|
+
agents push # Snapshot your config to git
|
|
263
|
+
```
|
|
232
264
|
|
|
233
265
|
---
|
|
234
266
|
|
|
235
|
-
##
|
|
267
|
+
## Compatibility
|
|
236
268
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
# Skills
|
|
247
|
-
agents skills list # List installed skills
|
|
248
|
-
agents skills add <source> # Install from git/local
|
|
249
|
-
agents skills remove <name> # Remove a skill
|
|
250
|
-
agents skills view <name> # View skill details
|
|
251
|
-
|
|
252
|
-
# Commands
|
|
253
|
-
agents commands list # List slash commands
|
|
254
|
-
agents commands add <source> # Install commands
|
|
255
|
-
agents commands view <name> # View command content
|
|
256
|
-
|
|
257
|
-
# Rules / Instructions
|
|
258
|
-
agents rules list # List per-agent instruction files
|
|
259
|
-
agents rules add <source> # Install from git/local
|
|
260
|
-
agents rules remove <agent> # Remove rule file
|
|
261
|
-
agents rules view <agent> # View rule file content
|
|
262
|
-
|
|
263
|
-
# MCP servers
|
|
264
|
-
agents search <query> # Find in registry
|
|
265
|
-
agents install mcp:<name> # Install + register
|
|
266
|
-
agents mcp list # Show registered servers
|
|
267
|
-
agents mcp add <name> <cmd> # Register manually
|
|
268
|
-
|
|
269
|
-
# Sync
|
|
270
|
-
agents pull [source] # Sync from repo
|
|
271
|
-
agents push # Push changes back
|
|
272
|
-
agents fork # Fork to your GitHub
|
|
273
|
-
|
|
274
|
-
# Drive
|
|
275
|
-
agents drive remote <user@host> # Set sync target
|
|
276
|
-
agents drive pull # Pull sessions from remote
|
|
277
|
-
agents drive push # Push sessions to remote
|
|
278
|
-
agents drive attach # Use drive as active agent home
|
|
279
|
-
agents drive detach # Restore to version home
|
|
280
|
-
agents drive status # Show drive state
|
|
281
|
-
|
|
282
|
-
# Execution
|
|
283
|
-
agents exec <agent> <prompt> # Run agent
|
|
284
|
-
agents sessions view <id> # Read a session by exact ID
|
|
285
|
-
agents sessions --agent codex # Interactive filtered session search
|
|
286
|
-
agents sessions --project agents # Interactive project-scoped session search
|
|
287
|
-
agents routines add <name> # Schedule a job
|
|
288
|
-
agents routines list # Show all jobs
|
|
289
|
-
agents daemon start # Start scheduler
|
|
290
|
-
|
|
291
|
-
# PTY sessions
|
|
292
|
-
agents pty start # Start a PTY session (returns ID)
|
|
293
|
-
agents pty exec <id> <command> # Run a command in the session
|
|
294
|
-
agents pty screen <id> # Render terminal as clean text
|
|
295
|
-
agents pty write <id> <input> # Send keystrokes (\n \t \e \xHH)
|
|
296
|
-
agents pty read <id> # Read raw output
|
|
297
|
-
agents pty signal <id> INT # Send signal
|
|
298
|
-
agents pty list # Show active sessions
|
|
299
|
-
agents pty stop <id> # Kill a session
|
|
300
|
-
agents pty server status # Check sidecar server
|
|
301
|
-
```
|
|
269
|
+
| Agent | Versions | MCP | Commands | Skills | Rules | Hooks | Permissions | Routines | Teams |
|
|
270
|
+
|-------|----------|-----|----------|--------|-------|-------|-------------|----------|-------|
|
|
271
|
+
| Claude Code | yes | yes | yes | yes | CLAUDE.md | yes | yes | yes | yes |
|
|
272
|
+
| Codex CLI | yes | yes | yes | yes | AGENTS.md | yes | yes | yes | yes |
|
|
273
|
+
| Gemini CLI | yes | yes | yes | yes | GEMINI.md | yes | -- | yes | yes |
|
|
274
|
+
| Cursor | yes | yes | yes | yes | .cursorrules | -- | -- | -- | yes |
|
|
275
|
+
| OpenCode | yes | yes | yes | yes | AGENTS.md | yes | yes | -- | yes |
|
|
276
|
+
| OpenClaw | yes | yes | -- | yes | workspace/AGENTS.md | yes | -- | -- | -- |
|
|
302
277
|
|
|
303
|
-
|
|
278
|
+
## FAQ
|
|
304
279
|
|
|
305
|
-
|
|
280
|
+
### Why use `agents` instead of `claude` / `codex` / `gemini` directly?
|
|
306
281
|
|
|
307
|
-
|
|
282
|
+
Claude Code, Codex CLI, and Gemini CLI each have their own config format, MCP setup, version management, and skill system. If you use more than one, you maintain N copies of everything. `agents` gives you one interface, one config source, and one place to pin versions -- plus features the individual CLIs don't ship: cross-agent pipelines, shared teams, unified session search, and project-pinned versions like `.nvmrc`.
|
|
308
283
|
|
|
309
|
-
|
|
310
|
-
---
|
|
311
|
-
name: python-expert
|
|
312
|
-
description: Python code analysis, type hints, and testing patterns
|
|
313
|
-
author: Your Name
|
|
314
|
-
version: 1.0.0
|
|
315
|
-
keywords: [python, testing, types]
|
|
316
|
-
---
|
|
284
|
+
### Is this like `nvm` / `mise` / `asdf` for AI agents?
|
|
317
285
|
|
|
318
|
-
|
|
286
|
+
For version management, yes. `agents-cli` reads `agents.yaml` from the project root, walks up the directory tree, and routes to the correct binary per project. But it also manages agent-native resources (skills, MCP servers, commands, hooks, permissions) that language version managers don't touch.
|
|
319
287
|
|
|
320
|
-
|
|
321
|
-
```
|
|
288
|
+
### Does it store my API keys or send telemetry?
|
|
322
289
|
|
|
323
|
-
|
|
290
|
+
No. API keys come from your shell environment or each agent CLI's existing auth. No telemetry, no phone-home. All state lives in `~/.agents/`.
|
|
324
291
|
|
|
325
|
-
|
|
292
|
+
### Which platforms?
|
|
326
293
|
|
|
327
|
-
|
|
294
|
+
macOS and Linux. Windows via WSL works but isn't first-class yet.
|
|
295
|
+
|
|
296
|
+
### Do I need Node.js?
|
|
297
|
+
|
|
298
|
+
The installer tries Bun first (faster), falls back to npm. Node 18+ required at runtime.
|
|
328
299
|
|
|
329
|
-
|
|
330
|
-
|-------|----------|-----|----------|--------|-------|-------|-------------|----------|
|
|
331
|
-
| Claude | yes | yes | yes | yes | CLAUDE.md | yes | yes | yes |
|
|
332
|
-
| Codex | yes | yes | yes | yes | AGENTS.md | yes | yes | yes |
|
|
333
|
-
| Gemini | yes | yes | yes | yes | GEMINI.md | yes | -- | yes |
|
|
334
|
-
| Cursor | yes | yes | yes | yes | .cursorrules | -- | -- | -- |
|
|
335
|
-
| OpenCode | yes | yes | yes | yes | AGENTS.md | yes | yes | -- |
|
|
336
|
-
| OpenClaw | yes | yes | -- | yes | workspace/AGENTS.md | yes | -- | -- |
|
|
300
|
+
### Can I use it in CI?
|
|
337
301
|
|
|
338
|
-
|
|
302
|
+
Yes -- `agents run` is non-interactive by default. `--yes` auto-accepts prompts, `--json` for structured output. Pass explicit names and IDs instead of relying on interactive pickers.
|
|
303
|
+
|
|
304
|
+
### Can I add support for a new agent?
|
|
305
|
+
|
|
306
|
+
Agents are defined in [src/lib/agents.ts](src/lib/agents.ts) -- each is a config object declaring commands dir, memory file, and capabilities. PRs welcome.
|
|
307
|
+
|
|
308
|
+
### What's the relationship to Phoenix Labs / Rush?
|
|
309
|
+
|
|
310
|
+
`agents-cli` is an open client maintained by Phoenix Labs. Rush is a separate product. No Rush account required, no upsell.
|
|
311
|
+
|
|
312
|
+
## Contributing
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
git clone https://github.com/phnx-labs/agents-cli
|
|
316
|
+
cd agents-cli
|
|
317
|
+
bun install && bun run build && bun test
|
|
318
|
+
```
|
|
339
319
|
|
|
340
|
-
|
|
320
|
+
Commands in [src/commands/](src/commands/), libraries in [src/lib/](src/lib/), tests as `*.test.ts` under vitest. [CLAUDE.md](CLAUDE.md) has the full style guide. [docs/04-landscape.md](docs/04-landscape.md) covers the competitive landscape.
|
|
341
321
|
|
|
342
322
|
## License
|
|
343
323
|
|
|
344
|
-
MIT
|
|
324
|
+
MIT -- see [LICENSE](./LICENSE).
|