@phnx-labs/agents-cli 0.1.0
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 +316 -0
- package/LICENSE +21 -0
- package/README.md +537 -0
- package/dist/commands/__tests__/sessions.test.d.ts +2 -0
- package/dist/commands/__tests__/sessions.test.d.ts.map +1 -0
- package/dist/commands/__tests__/sessions.test.js +636 -0
- package/dist/commands/__tests__/sessions.test.js.map +1 -0
- package/dist/commands/cloud.d.ts +3 -0
- package/dist/commands/cloud.d.ts.map +1 -0
- package/dist/commands/cloud.js +322 -0
- package/dist/commands/cloud.js.map +1 -0
- package/dist/commands/commands.d.ts +3 -0
- package/dist/commands/commands.d.ts.map +1 -0
- package/dist/commands/commands.js +628 -0
- package/dist/commands/commands.js.map +1 -0
- package/dist/commands/daemon.d.ts +3 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +110 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/drive.d.ts +3 -0
- package/dist/commands/drive.d.ts.map +1 -0
- package/dist/commands/drive.js +166 -0
- package/dist/commands/drive.js.map +1 -0
- package/dist/commands/exec.d.ts +3 -0
- package/dist/commands/exec.d.ts.map +1 -0
- package/dist/commands/exec.js +241 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/fork.d.ts +3 -0
- package/dist/commands/fork.d.ts.map +1 -0
- package/dist/commands/fork.js +139 -0
- package/dist/commands/fork.js.map +1 -0
- package/dist/commands/hooks.d.ts +3 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +689 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +127 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +581 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/models.d.ts +3 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +158 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/packages.d.ts +3 -0
- package/dist/commands/packages.d.ts.map +1 -0
- package/dist/commands/packages.js +541 -0
- package/dist/commands/packages.js.map +1 -0
- package/dist/commands/permissions.d.ts +3 -0
- package/dist/commands/permissions.d.ts.map +1 -0
- package/dist/commands/permissions.js +723 -0
- package/dist/commands/permissions.js.map +1 -0
- package/dist/commands/plugins.d.ts +3 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +382 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/profiles.d.ts +3 -0
- package/dist/commands/profiles.d.ts.map +1 -0
- package/dist/commands/profiles.js +242 -0
- package/dist/commands/profiles.js.map +1 -0
- package/dist/commands/pty.d.ts +20 -0
- package/dist/commands/pty.d.ts.map +1 -0
- package/dist/commands/pty.js +389 -0
- package/dist/commands/pty.js.map +1 -0
- package/dist/commands/pull.d.ts +3 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +448 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +3 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +180 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/refresh-memory.d.ts +9 -0
- package/dist/commands/refresh-memory.d.ts.map +1 -0
- package/dist/commands/refresh-memory.js +45 -0
- package/dist/commands/refresh-memory.js.map +1 -0
- package/dist/commands/resource-view.d.ts +31 -0
- package/dist/commands/resource-view.d.ts.map +1 -0
- package/dist/commands/resource-view.js +183 -0
- package/dist/commands/resource-view.js.map +1 -0
- package/dist/commands/routines.d.ts +3 -0
- package/dist/commands/routines.d.ts.map +1 -0
- package/dist/commands/routines.js +579 -0
- package/dist/commands/routines.js.map +1 -0
- package/dist/commands/rules.d.ts +3 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +488 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/secrets.d.ts +3 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +339 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/sessions-picker.d.ts +16 -0
- package/dist/commands/sessions-picker.d.ts.map +1 -0
- package/dist/commands/sessions-picker.js +256 -0
- package/dist/commands/sessions-picker.js.map +1 -0
- package/dist/commands/sessions.d.ts +16 -0
- package/dist/commands/sessions.d.ts.map +1 -0
- package/dist/commands/sessions.js +1077 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +716 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +19 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/subagents.d.ts +3 -0
- package/dist/commands/subagents.d.ts.map +1 -0
- package/dist/commands/subagents.js +350 -0
- package/dist/commands/subagents.js.map +1 -0
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +62 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/teams-picker.d.ts +14 -0
- package/dist/commands/teams-picker.d.ts.map +1 -0
- package/dist/commands/teams-picker.js +278 -0
- package/dist/commands/teams-picker.js.map +1 -0
- package/dist/commands/teams.d.ts +3 -0
- package/dist/commands/teams.d.ts.map +1 -0
- package/dist/commands/teams.js +917 -0
- package/dist/commands/teams.js.map +1 -0
- package/dist/commands/utils.d.ts +39 -0
- package/dist/commands/utils.d.ts.map +1 -0
- package/dist/commands/utils.js +100 -0
- package/dist/commands/utils.js.map +1 -0
- package/dist/commands/versions.d.ts +3 -0
- package/dist/commands/versions.d.ts.map +1 -0
- package/dist/commands/versions.js +700 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/commands/view.d.ts +8 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +626 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +484 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/__tests__/bugfixes.test.d.ts +2 -0
- package/dist/lib/__tests__/bugfixes.test.d.ts.map +1 -0
- package/dist/lib/__tests__/bugfixes.test.js +192 -0
- package/dist/lib/__tests__/bugfixes.test.js.map +1 -0
- package/dist/lib/__tests__/exec.test.d.ts +2 -0
- package/dist/lib/__tests__/exec.test.d.ts.map +1 -0
- package/dist/lib/__tests__/exec.test.js +446 -0
- package/dist/lib/__tests__/exec.test.js.map +1 -0
- package/dist/lib/__tests__/git-sync.test.d.ts +2 -0
- package/dist/lib/__tests__/git-sync.test.d.ts.map +1 -0
- package/dist/lib/__tests__/git-sync.test.js +138 -0
- package/dist/lib/__tests__/git-sync.test.js.map +1 -0
- 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.d.ts +2 -0
- package/dist/lib/__tests__/usage.test.d.ts.map +1 -0
- package/dist/lib/__tests__/usage.test.js +220 -0
- package/dist/lib/__tests__/usage.test.js.map +1 -0
- 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 +107 -0
- package/dist/lib/agents.d.ts.map +1 -0
- package/dist/lib/agents.js +1096 -0
- package/dist/lib/agents.js.map +1 -0
- package/dist/lib/artifact-actions.d.ts +22 -0
- package/dist/lib/artifact-actions.d.ts.map +1 -0
- package/dist/lib/artifact-actions.js +55 -0
- package/dist/lib/artifact-actions.js.map +1 -0
- package/dist/lib/cloud/codex.d.ts +19 -0
- package/dist/lib/cloud/codex.d.ts.map +1 -0
- package/dist/lib/cloud/codex.js +210 -0
- package/dist/lib/cloud/codex.js.map +1 -0
- package/dist/lib/cloud/factory.d.ts +26 -0
- package/dist/lib/cloud/factory.d.ts.map +1 -0
- package/dist/lib/cloud/factory.js +37 -0
- package/dist/lib/cloud/factory.js.map +1 -0
- package/dist/lib/cloud/registry.d.ts +6 -0
- package/dist/lib/cloud/registry.d.ts.map +1 -0
- package/dist/lib/cloud/registry.js +56 -0
- package/dist/lib/cloud/registry.js.map +1 -0
- package/dist/lib/cloud/rush.d.ts +15 -0
- package/dist/lib/cloud/rush.d.ts.map +1 -0
- package/dist/lib/cloud/rush.js +185 -0
- package/dist/lib/cloud/rush.js.map +1 -0
- package/dist/lib/cloud/store.d.ts +10 -0
- package/dist/lib/cloud/store.d.ts.map +1 -0
- package/dist/lib/cloud/store.js +96 -0
- package/dist/lib/cloud/store.js.map +1 -0
- package/dist/lib/cloud/stream.d.ts +18 -0
- package/dist/lib/cloud/stream.d.ts.map +1 -0
- package/dist/lib/cloud/stream.js +138 -0
- package/dist/lib/cloud/stream.js.map +1 -0
- package/dist/lib/cloud/types.d.ts +60 -0
- package/dist/lib/cloud/types.d.ts.map +1 -0
- package/dist/lib/cloud/types.js +2 -0
- package/dist/lib/cloud/types.js.map +1 -0
- package/dist/lib/commands.d.ts +121 -0
- package/dist/lib/commands.d.ts.map +1 -0
- package/dist/lib/commands.js +499 -0
- package/dist/lib/commands.js.map +1 -0
- package/dist/lib/convert.d.ts +11 -0
- package/dist/lib/convert.d.ts.map +1 -0
- package/dist/lib/convert.js +45 -0
- package/dist/lib/convert.js.map +1 -0
- package/dist/lib/daemon.d.ts +22 -0
- package/dist/lib/daemon.d.ts.map +1 -0
- package/dist/lib/daemon.js +311 -0
- package/dist/lib/daemon.js.map +1 -0
- package/dist/lib/drive-sync.d.ts +28 -0
- package/dist/lib/drive-sync.d.ts.map +1 -0
- package/dist/lib/drive-sync.js +193 -0
- package/dist/lib/drive-sync.js.map +1 -0
- package/dist/lib/exec.d.ts +85 -0
- package/dist/lib/exec.d.ts.map +1 -0
- package/dist/lib/exec.js +423 -0
- package/dist/lib/exec.js.map +1 -0
- package/dist/lib/factory.d.ts +57 -0
- package/dist/lib/factory.d.ts.map +1 -0
- package/dist/lib/factory.js +110 -0
- package/dist/lib/factory.js.map +1 -0
- package/dist/lib/git.d.ts +146 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +635 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/help.d.ts +3 -0
- package/dist/lib/help.d.ts.map +1 -0
- package/dist/lib/help.js +63 -0
- package/dist/lib/help.js.map +1 -0
- package/dist/lib/hooks.d.ts +116 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/hooks.js +837 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/manifest.d.ts +8 -0
- package/dist/lib/manifest.d.ts.map +1 -0
- package/dist/lib/manifest.js +36 -0
- package/dist/lib/manifest.js.map +1 -0
- package/dist/lib/markdown.d.ts +5 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +11 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/mcp.d.ts +64 -0
- package/dist/lib/mcp.d.ts.map +1 -0
- package/dist/lib/mcp.js +327 -0
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/memory-compile.d.ts +56 -0
- package/dist/lib/memory-compile.d.ts.map +1 -0
- package/dist/lib/memory-compile.js +167 -0
- package/dist/lib/memory-compile.js.map +1 -0
- package/dist/lib/memory.d.ts +56 -0
- package/dist/lib/memory.d.ts.map +1 -0
- package/dist/lib/memory.js +267 -0
- package/dist/lib/memory.js.map +1 -0
- package/dist/lib/models.d.ts +91 -0
- package/dist/lib/models.d.ts.map +1 -0
- package/dist/lib/models.js +706 -0
- package/dist/lib/models.js.map +1 -0
- package/dist/lib/permissions.d.ts +204 -0
- package/dist/lib/permissions.d.ts.map +1 -0
- package/dist/lib/permissions.js +1022 -0
- package/dist/lib/permissions.js.map +1 -0
- package/dist/lib/picker.d.ts +17 -0
- package/dist/lib/picker.d.ts.map +1 -0
- package/dist/lib/picker.js +95 -0
- package/dist/lib/picker.js.map +1 -0
- package/dist/lib/plugins.d.ts +73 -0
- package/dist/lib/plugins.d.ts.map +1 -0
- package/dist/lib/plugins.js +549 -0
- package/dist/lib/plugins.js.map +1 -0
- package/dist/lib/profiles-keychain.d.ts +3 -0
- package/dist/lib/profiles-keychain.d.ts.map +1 -0
- package/dist/lib/profiles-keychain.js +10 -0
- package/dist/lib/profiles-keychain.js.map +1 -0
- package/dist/lib/profiles-presets.d.ts +15 -0
- package/dist/lib/profiles-presets.d.ts.map +1 -0
- package/dist/lib/profiles-presets.js +95 -0
- package/dist/lib/profiles-presets.js.map +1 -0
- package/dist/lib/profiles.d.ts +35 -0
- package/dist/lib/profiles.d.ts.map +1 -0
- package/dist/lib/profiles.js +123 -0
- package/dist/lib/profiles.js.map +1 -0
- package/dist/lib/pty-client.d.ts +22 -0
- package/dist/lib/pty-client.d.ts.map +1 -0
- package/dist/lib/pty-client.js +181 -0
- package/dist/lib/pty-client.js.map +1 -0
- package/dist/lib/pty-server.d.ts +16 -0
- package/dist/lib/pty-server.d.ts.map +1 -0
- package/dist/lib/pty-server.js +422 -0
- package/dist/lib/pty-server.js.map +1 -0
- package/dist/lib/registry.d.ts +28 -0
- package/dist/lib/registry.d.ts.map +1 -0
- package/dist/lib/registry.js +203 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/resources.d.ts +50 -0
- package/dist/lib/resources.d.ts.map +1 -0
- package/dist/lib/resources.js +103 -0
- package/dist/lib/resources.js.map +1 -0
- package/dist/lib/rotate.d.ts +52 -0
- package/dist/lib/rotate.d.ts.map +1 -0
- package/dist/lib/rotate.js +87 -0
- package/dist/lib/rotate.js.map +1 -0
- package/dist/lib/routines.d.ts +70 -0
- package/dist/lib/routines.d.ts.map +1 -0
- package/dist/lib/routines.js +325 -0
- package/dist/lib/routines.js.map +1 -0
- package/dist/lib/runner.d.ts +12 -0
- package/dist/lib/runner.d.ts.map +1 -0
- package/dist/lib/runner.js +311 -0
- package/dist/lib/runner.js.map +1 -0
- package/dist/lib/sandbox.d.ts +10 -0
- package/dist/lib/sandbox.d.ts.map +1 -0
- package/dist/lib/sandbox.js +201 -0
- package/dist/lib/sandbox.js.map +1 -0
- package/dist/lib/scheduler.d.ts +18 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +69 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/secrets-bundles.d.ts +29 -0
- package/dist/lib/secrets-bundles.d.ts.map +1 -0
- package/dist/lib/secrets-bundles.js +168 -0
- package/dist/lib/secrets-bundles.js.map +1 -0
- package/dist/lib/secrets.d.ts +27 -0
- package/dist/lib/secrets.d.ts.map +1 -0
- package/dist/lib/secrets.js +127 -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.d.ts +2 -0
- package/dist/lib/session/__tests__/discover.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/discover.test.js +63 -0
- package/dist/lib/session/__tests__/discover.test.js.map +1 -0
- 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 +5 -0
- package/dist/lib/session/artifacts.d.ts.map +1 -0
- package/dist/lib/session/artifacts.js +75 -0
- package/dist/lib/session/artifacts.js.map +1 -0
- package/dist/lib/session/db.d.ts +118 -0
- package/dist/lib/session/db.d.ts.map +1 -0
- package/dist/lib/session/db.js +576 -0
- package/dist/lib/session/db.js.map +1 -0
- package/dist/lib/session/discover.d.ts +60 -0
- package/dist/lib/session/discover.d.ts.map +1 -0
- package/dist/lib/session/discover.js +1272 -0
- package/dist/lib/session/discover.js.map +1 -0
- package/dist/lib/session/parse.d.ts +23 -0
- package/dist/lib/session/parse.d.ts.map +1 -0
- package/dist/lib/session/parse.js +650 -0
- package/dist/lib/session/parse.js.map +1 -0
- package/dist/lib/session/prompt.d.ts +4 -0
- package/dist/lib/session/prompt.d.ts.map +1 -0
- package/dist/lib/session/prompt.js +64 -0
- package/dist/lib/session/prompt.js.map +1 -0
- 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 +90 -0
- package/dist/lib/session/render.d.ts.map +1 -0
- package/dist/lib/session/render.js +778 -0
- package/dist/lib/session/render.js.map +1 -0
- package/dist/lib/session/team-filter.d.ts +26 -0
- package/dist/lib/session/team-filter.d.ts.map +1 -0
- package/dist/lib/session/team-filter.js +66 -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 +69 -0
- package/dist/lib/session/types.d.ts.map +1 -0
- package/dist/lib/session/types.js +2 -0
- package/dist/lib/session/types.js.map +1 -0
- package/dist/lib/shims.d.ts +228 -0
- package/dist/lib/shims.d.ts.map +1 -0
- package/dist/lib/shims.js +1170 -0
- package/dist/lib/shims.js.map +1 -0
- package/dist/lib/skills.d.ts +134 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +783 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/state.d.ts +53 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +299 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/subagents.d.ts +75 -0
- package/dist/lib/subagents.d.ts.map +1 -0
- package/dist/lib/subagents.js +402 -0
- package/dist/lib/subagents.js.map +1 -0
- package/dist/lib/teams/agents.d.ts +146 -0
- package/dist/lib/teams/agents.d.ts.map +1 -0
- package/dist/lib/teams/agents.js +1072 -0
- package/dist/lib/teams/agents.js.map +1 -0
- package/dist/lib/teams/api.d.ts +77 -0
- package/dist/lib/teams/api.d.ts.map +1 -0
- package/dist/lib/teams/api.js +229 -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 +2 -0
- package/dist/lib/teams/debug.d.ts.map +1 -0
- package/dist/lib/teams/debug.js +6 -0
- package/dist/lib/teams/debug.js.map +1 -0
- package/dist/lib/teams/file_ops.d.ts +6 -0
- package/dist/lib/teams/file_ops.d.ts.map +1 -0
- package/dist/lib/teams/file_ops.js +59 -0
- package/dist/lib/teams/file_ops.js.map +1 -0
- package/dist/lib/teams/parsers.d.ts +5 -0
- package/dist/lib/teams/parsers.d.ts.map +1 -0
- package/dist/lib/teams/parsers.js +826 -0
- package/dist/lib/teams/parsers.js.map +1 -0
- package/dist/lib/teams/persistence.d.ts +28 -0
- package/dist/lib/teams/persistence.d.ts.map +1 -0
- package/dist/lib/teams/persistence.js +289 -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 +11 -0
- package/dist/lib/teams/registry.d.ts.map +1 -0
- package/dist/lib/teams/registry.js +56 -0
- package/dist/lib/teams/registry.js.map +1 -0
- package/dist/lib/teams/summarizer.d.ts +58 -0
- package/dist/lib/teams/summarizer.d.ts.map +1 -0
- package/dist/lib/teams/summarizer.js +766 -0
- package/dist/lib/teams/summarizer.js.map +1 -0
- package/dist/lib/template.d.ts +24 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/template.js +57 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/lib/types.d.ts +282 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +18 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/usage.d.ts +73 -0
- package/dist/lib/usage.d.ts.map +1 -0
- package/dist/lib/usage.js +623 -0
- package/dist/lib/usage.js.map +1 -0
- package/dist/lib/versions.d.ts +248 -0
- package/dist/lib/versions.d.ts.map +1 -0
- package/dist/lib/versions.js +1737 -0
- package/dist/lib/versions.js.map +1 -0
- package/package.json +82 -0
- package/scripts/postinstall.js +72 -0
- package/scripts/rebuild-sqlite.sh +46 -0
package/README.md
ADDED
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
# agents
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@phnx-labs/agents-cli)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
[](https://www.npmjs.com/package/@phnx-labs/agents-cli)
|
|
6
|
+
[](https://agents-cli.sh)
|
|
7
|
+
|
|
8
|
+
**The open client for AI coding agents.** Run Claude, Codex, Gemini, Cursor — same interface, on your machine.
|
|
9
|
+
|
|
10
|
+
Pin versions per project. Install skills, MCP servers, and slash commands once — every agent gets them. Chain agents in pipelines. Put agents on a team to work a shared task in parallel.
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
curl -fsSL agents-cli.sh | sh
|
|
14
|
+
# or
|
|
15
|
+
npm install -g @phnx-labs/agents-cli
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Also available as `ag` — all commands work with both `agents` and `ag`.
|
|
19
|
+
|
|
20
|
+
## Table of contents
|
|
21
|
+
|
|
22
|
+
- [Run any agent, same interface](#run-any-agent-same-interface)
|
|
23
|
+
- [Run open-source models through Claude Code](#run-open-source-models-through-claude-code)
|
|
24
|
+
- [Keep secrets out of plaintext env files](#keep-secrets-out-of-plaintext-env-files)
|
|
25
|
+
- [Put agents on a team](#put-agents-on-a-team)
|
|
26
|
+
- [Non-interactive usage](#non-interactive-usage)
|
|
27
|
+
- [Search sessions fast](#search-sessions-fast)
|
|
28
|
+
- [Pin agent versions per project](#pin-agent-versions-per-project)
|
|
29
|
+
- [Install skills, MCP servers, and commands once](#install-skills-mcp-servers-and-commands-once--every-agent-gets-them)
|
|
30
|
+
- [Quick reference](#quick-reference)
|
|
31
|
+
- [Skill format](#skill-format)
|
|
32
|
+
- [Compatibility](#compatibility)
|
|
33
|
+
- [FAQ](#faq)
|
|
34
|
+
- [Contributing](#contributing)
|
|
35
|
+
- [License](#license)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Run any agent, same interface
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
agents run claude "Find all auth vulnerabilities in src/"
|
|
43
|
+
agents run codex "Fix the issues Claude found"
|
|
44
|
+
agents run gemini "Write tests for the fixed code"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Each agent resolves to the project-pinned version, with the right skills, MCP servers, and permissions already synced. No setup between steps -- just run.
|
|
48
|
+
|
|
49
|
+
`agents run` also passes environment overrides to the spawned CLI. For one-off flags this looks like `--env KEY=VALUE`; for repeatable provider setups see [profiles](#run-open-source-models-through-claude-code) below.
|
|
50
|
+
|
|
51
|
+
Chain agents by strength, swap one for another, script them in CI -- the interface stays the same:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Friday night code review
|
|
55
|
+
agents run claude "Review all PRs merged this week, summarize risks" \
|
|
56
|
+
| agents run codex "Write regression tests for the top 3 risks"
|
|
57
|
+
|
|
58
|
+
# Same pipeline, different project -- different agent versions, same commands
|
|
59
|
+
cd ../other-project
|
|
60
|
+
agents run claude "Review all PRs merged this week, summarize risks"
|
|
61
|
+
# ^ resolves to claude@2.0.0 here instead of claude@2.1.89
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Supports plan (read-only) and edit modes, effort levels that map to the right model per agent, and JSON output for scripting.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Run open-source models through Claude Code
|
|
69
|
+
|
|
70
|
+
`agents profiles` saves a named bundle of (host CLI, endpoint, model, keychain-backed auth). Ship a preset, paste the API key once, then invoke any open-source model as a first-class agent — no shell function, no plaintext token, no proxy.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
agents profiles add kimi # prompts for OpenRouter key, stores in Keychain
|
|
74
|
+
agents run kimi "refactor this file" # Claude Code UI, Kimi K2.5 responses
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Built-in presets (all via OpenRouter, one shared key):
|
|
78
|
+
|
|
79
|
+
| Preset | Model | Notes |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| `kimi` | `moonshotai/kimi-k2.5` | #1 HumanEval (99%), top Kimi. Reasoning — interactive only. |
|
|
82
|
+
| `kimi-chat` | `moonshotai/kimi-k2-0905` | Non-reasoning, print-safe for `agents run`. |
|
|
83
|
+
| `minimax` | `minimax/minimax-m2.5` | #1 SWE-bench Verified (80.2%). Reasoning. |
|
|
84
|
+
| `glm` | `z-ai/glm-5` | #1 Chatbot Arena among open-weight (1451 ELO). |
|
|
85
|
+
| `qwen` | `qwen/qwen3-coder-next` | Latest coding Qwen, sparse MoE 80B/3B active. Print-safe. |
|
|
86
|
+
| `deepseek` | `deepseek/deepseek-chat-v3-0324` | Latest non-reasoning DeepSeek Chat. Print-safe. |
|
|
87
|
+
|
|
88
|
+
`agents profiles presets` lists the catalog. `agents profiles view <name>` shows the env, model, and keychain status.
|
|
89
|
+
|
|
90
|
+
**How it works:** a profile swaps the *model* while keeping Claude Code as the *agent runtime* — same UI, slash commands, skills, MCP tools, permission system. Under the hood it sets `ANTHROPIC_BASE_URL` + `ANTHROPIC_MODEL` and pulls `ANTHROPIC_AUTH_TOKEN` from Keychain at spawn time.
|
|
91
|
+
|
|
92
|
+
Profile YAML lives in `~/.agents/profiles/<name>.yml` with no secrets — safe to `agents push` to a shared repo. Keys live only in macOS Keychain; rotate with `agents profiles login <provider>`.
|
|
93
|
+
|
|
94
|
+
**Custom endpoints** — for self-hosted models (Ollama, vLLM) or other aggregators, drop a YAML file directly:
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
# ~/.agents/profiles/local-qwen.yml
|
|
98
|
+
name: local-qwen
|
|
99
|
+
host: { agent: claude }
|
|
100
|
+
env:
|
|
101
|
+
ANTHROPIC_BASE_URL: https://ollama.internal
|
|
102
|
+
ANTHROPIC_MODEL: qwen3.6:35b
|
|
103
|
+
ANTHROPIC_SMALL_FAST_MODEL: qwen3.6:35b
|
|
104
|
+
auth:
|
|
105
|
+
envVar: ANTHROPIC_AUTH_TOKEN
|
|
106
|
+
keychainItem: agents-cli.ollama.token
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Then `agents profiles login ollama` to store the token, and `agents run local-qwen "..."` works.
|
|
110
|
+
|
|
111
|
+
**Note on `--print` and reasoning models:** Claude Code's `--print` mode consolidates response text, but returns empty when the response contains `thinking` blocks. Models flagged REASONING in the preset descriptions work fine interactively (plain `claude` launch with the same env) but not with `agents run --print`. Use the non-reasoning `-chat` variant for scripting.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Keep secrets out of plaintext env files
|
|
116
|
+
|
|
117
|
+
`agents secrets` stores sensitive values (API keys, tokens, even a test credit card number) in the macOS Keychain and injects them into agents at run time. Bundle files on disk contain only references — safe to `agents push` to a shared repo.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
agents secrets add prod-stripe --description "Stripe prod + test card"
|
|
121
|
+
agents secrets set prod-stripe STRIPE_SECRET_KEY # prompts, stores in keychain
|
|
122
|
+
agents secrets set prod-stripe TEST_CARD_NUMBER # prompts, stores in keychain
|
|
123
|
+
agents secrets set prod-stripe STRIPE_API_VERSION --value "2024-06-20"
|
|
124
|
+
agents secrets set prod-stripe GITHUB_TOKEN --env GH_TOKEN # read from parent shell
|
|
125
|
+
agents secrets set prod-stripe GCP_CREDS --file ~/.config/gcloud/creds.json
|
|
126
|
+
|
|
127
|
+
agents run claude "charge a test card" --secrets prod-stripe
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
The resulting `~/.agents/secrets/prod-stripe.yml` holds only refs:
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
name: prod-stripe
|
|
134
|
+
vars:
|
|
135
|
+
STRIPE_SECRET_KEY: keychain:STRIPE_SECRET_KEY
|
|
136
|
+
TEST_CARD_NUMBER: keychain:TEST_CARD_NUMBER
|
|
137
|
+
STRIPE_API_VERSION: { value: "2024-06-20" }
|
|
138
|
+
GITHUB_TOKEN: env:GH_TOKEN
|
|
139
|
+
GCP_CREDS: file:~/.config/gcloud/creds.json
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Merge order on `agents run` is **profile env < `--secrets <bundle>` < `--env K=V`** — a profile carries provider auth, bundles carry user-defined values, `--env` is the per-invocation override. Resolution happens right before `spawn`; a missing keychain item aborts the run before the child starts.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Put agents on a team
|
|
147
|
+
|
|
148
|
+
`agents run` runs one agent synchronously. **Teams** run many agents on the same task, in the background, with coordination.
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
agents teams create auth-feature
|
|
152
|
+
|
|
153
|
+
agents teams add auth-feature claude "Research auth libraries" --name researcher
|
|
154
|
+
agents teams add auth-feature codex "Draft the migration" --name migrator --after researcher
|
|
155
|
+
agents teams add auth-feature claude "Write tests for the new code" --name tester --after migrator
|
|
156
|
+
|
|
157
|
+
agents teams start auth-feature # launches teammates whose --after deps are done
|
|
158
|
+
agents teams status auth-feature # who's working, what they've changed, what they said
|
|
159
|
+
agents teams disband auth-feature # stop everyone, clean up
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Each teammate runs detached. Close your terminal; they keep working. Check in whenever.
|
|
163
|
+
|
|
164
|
+
- `--name alice` gives a teammate a handle. Refer to them by name everywhere (`teams rm auth alice`, `teams logs alice`).
|
|
165
|
+
- `--after name1,name2` stages a teammate as pending. `teams start` fires the ones whose blockers are `completed`. Cycles rejected at add time; a failed blocker keeps its dependents pending so you decide what to do.
|
|
166
|
+
- For Claude teammates, `agent_id` IS the Claude session UUID -- `agents sessions <agent_id> --markdown` opens the full conversation.
|
|
167
|
+
- Modes match `exec`: `plan | edit | full`. `--model`, `--env KEY=VALUE`, `--cwd` all passthroughs too.
|
|
168
|
+
- `teams ls` filters: substring query, `--agent claude[@version]`, `--status working|done|failed|empty`, `--since 2h --until 30d`.
|
|
169
|
+
- Non-TTY output is valid JSON by default, with a `cursor` field in every `status` response for efficient delta polling (`--since <cursor>`).
|
|
170
|
+
|
|
171
|
+
State lives in `~/.agents/teams/`. Teammates survive terminal restarts. Synced config (commands, skills, rules, MCP servers, hooks, permissions) applies to teammates the same way it applies to `agents run` -- one config, both flows.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Non-interactive usage
|
|
176
|
+
|
|
177
|
+
Other coding agents usually run in non-TTY shells. `agents` now supports that mode directly:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
agents add codex@latest --yes
|
|
181
|
+
agents use claude@2.1.79 --yes
|
|
182
|
+
agents commands add --names review-pr,debug --agents codex@0.113.0
|
|
183
|
+
agents skills add --names agents-cli --agents claude@default
|
|
184
|
+
agents install ./team-agent-pack --agents codex@0.113.0
|
|
185
|
+
agents mcp add postgres --agents claude@2.1.79 -- npx -y @modelcontextprotocol/server-postgres
|
|
186
|
+
agents mcp register postgres
|
|
187
|
+
agents sessions <session-id> --markdown
|
|
188
|
+
agents routines view <job-name>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Rules for automation:
|
|
192
|
+
|
|
193
|
+
- Pass explicit names or IDs instead of relying on pickers.
|
|
194
|
+
- Use `--yes` when a command would otherwise ask for default sync or confirmation choices.
|
|
195
|
+
- Use `--names` with `commands`, `skills`, `hooks`, `rules`, and `permissions` to install from central storage without a checkbox prompt.
|
|
196
|
+
- Use `agent@version` or `agent@default` with `--agents` when you need an exact managed version.
|
|
197
|
+
- Long `view` commands print directly in non-interactive shells instead of opening `less`.
|
|
198
|
+
|
|
199
|
+
If a command still needs a human-only picker, it now exits with a plain-text hint that shows the matching non-interactive form.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Search sessions fast
|
|
204
|
+
|
|
205
|
+
Interactive terminals now get a live-search picker for sessions:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
agents sessions
|
|
209
|
+
agents sessions --agent codex
|
|
210
|
+
agents sessions --project agents-cli
|
|
211
|
+
agents sessions --agent gemini "session discovery"
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
What you can type into the picker:
|
|
215
|
+
|
|
216
|
+
- Session ID or short ID
|
|
217
|
+
- Prompt text / topic text
|
|
218
|
+
- Project name
|
|
219
|
+
- Account email
|
|
220
|
+
- Agent name or version
|
|
221
|
+
|
|
222
|
+
The shared `Agent` column also shows the resolved agent version when it is known, so filtered lists read like `claude@2.1.110`, `codex@0.113.0`, `gemini@0.29.5`, and `opencode@1.2.6`.
|
|
223
|
+
|
|
224
|
+
Pass `<id>` (with `--markdown`, `--json`, or filter flags like `--include`, `--exclude`, `--first`, `--last`) in non-interactive shells when you already know the session you want.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Pin agent versions per project
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
agents add claude@2.0.0 # Install specific version
|
|
232
|
+
agents use claude@2.0.0 -p # Pin to this project
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Like `.nvmrc` for Node -- different projects use different agent versions. A shim system reads a project-root `agents.yaml` and routes to the right binary automatically. No other tool does this for AI agents.
|
|
236
|
+
|
|
237
|
+
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.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Install skills, MCP servers, and commands once -- every agent gets them
|
|
242
|
+
|
|
243
|
+
### Skills
|
|
244
|
+
|
|
245
|
+
Skills are reusable knowledge packs -- rules, patterns, and expertise that make your agents better at specific tasks. Install once, available everywhere.
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
agents skills add gh:yourname/python-expert # Install from GitHub
|
|
249
|
+
agents skills add ./my-skills # Install from local path
|
|
250
|
+
agents skills list # See what's installed
|
|
251
|
+
agents skills view python-expert # View skill details and rules
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
A skill is a directory with a `SKILL.md` and optional rule files:
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
python-expert/
|
|
258
|
+
SKILL.md # Metadata + description
|
|
259
|
+
rules/
|
|
260
|
+
type-hints.md # Individual rules your agents follow
|
|
261
|
+
error-handling.md
|
|
262
|
+
testing.md
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Skills are stored centrally in `~/.agents/skills/` and distributed to each agent's native skill directory. Write once, every agent gets it.
|
|
266
|
+
|
|
267
|
+
### Install MCP servers everywhere at once
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
agents search notion # Find MCP servers
|
|
271
|
+
agents install mcp:com.notion/mcp # Install + register with ALL agents
|
|
272
|
+
agents mcp list # See what's registered
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
No more running `claude mcp add`, then `codex mcp add`, then editing Gemini's config file.
|
|
276
|
+
|
|
277
|
+
### Manage slash commands
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
agents commands add gh:yourname/commands # Install from repo
|
|
281
|
+
agents commands list # See all commands
|
|
282
|
+
agents commands view review-pr # View command content
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Commands are markdown files with a description. The CLI handles format conversion automatically -- markdown for Claude/Gemini/Cursor, TOML for Codex.
|
|
286
|
+
|
|
287
|
+
### Sync your entire setup
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
agents push # Snapshot your config to git
|
|
291
|
+
agents pull # Restore on any machine
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
`push` captures your current agent versions and MCP registrations into `~/.agents/`. `pull` does the real work — it installs agent CLIs, registers MCP servers, syncs resources (commands, skills, rules, hooks, permissions) into each agent's config directory, sets up PATH shims, and configures defaults. One command, fully configured machine.
|
|
295
|
+
|
|
296
|
+
### Interactive PTY sessions
|
|
297
|
+
|
|
298
|
+
Give your agents the ability to interact with full-screen terminal programs -- REPLs, TUIs, interactive installers, anything that needs a real terminal.
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
SID=$(agents pty start) # Start a session
|
|
302
|
+
agents pty exec $SID "python3" # Launch Python REPL
|
|
303
|
+
agents pty screen $SID # See what's on screen
|
|
304
|
+
agents pty write $SID "print('hello')\n" # Type into it
|
|
305
|
+
agents pty screen $SID # See the result
|
|
306
|
+
agents pty write $SID "exit()\n" # Quit
|
|
307
|
+
agents pty stop $SID # Clean up
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
A sidecar server holds PTY sessions alive between CLI calls. `screen` renders the terminal as clean text (no ANSI codes) using xterm-headless -- so agents see exactly what a human would see. Sessions auto-clean after 30 minutes of idle.
|
|
311
|
+
|
|
312
|
+
### Schedule agents as routines
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
agents routines add daily-digest \
|
|
316
|
+
--schedule "0 9 * * 1-5" \
|
|
317
|
+
--agent claude \
|
|
318
|
+
--prompt "Review yesterday's PRs and summarize key changes"
|
|
319
|
+
# The scheduler auto-starts on first add — no separate daemon command needed.
|
|
320
|
+
|
|
321
|
+
agents routines list # See all jobs
|
|
322
|
+
agents routines status # Check scheduler and upcoming runs
|
|
323
|
+
agents routines logs daily-digest # Check execution logs
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Jobs run sandboxed -- agents only see directories and tools you explicitly allow.
|
|
327
|
+
|
|
328
|
+
### Manage rules/instructions, hooks, and permissions
|
|
329
|
+
|
|
330
|
+
Each agent has its own instruction file format -- Claude uses `CLAUDE.md`, Codex uses `AGENTS.md`, Cursor uses `.cursorrules`. The CLI manages all of them under one command.
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
agents rules list # Show what's installed per agent
|
|
334
|
+
agents rules add gh:team/rules # Install and sync to all agents
|
|
335
|
+
agents rules view claude # View rule file content
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
Write one `AGENTS.md`, and it gets renamed and synced to each agent's native format automatically.
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
agents hooks list # Show lifecycle hooks
|
|
342
|
+
agents hooks add gh:team/hooks # Install hook scripts
|
|
343
|
+
|
|
344
|
+
agents permissions list # Show permission sets
|
|
345
|
+
agents permissions add ./perms # Install permission groups
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Hooks trigger on agent lifecycle events. Permissions are auto-converted between agent-specific formats (Claude's allow/deny, Codex's approval policies, OpenCode's patterns).
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Quick Reference
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
# Agent versions
|
|
356
|
+
agents add claude@latest # Install agent CLI
|
|
357
|
+
agents remove codex@0.5.0 # Remove specific version
|
|
358
|
+
agents use claude@2.0.0 # Set global default
|
|
359
|
+
agents use claude@2.0.0 -p # Pin to this project
|
|
360
|
+
agents list # Show all installed versions
|
|
361
|
+
agents view claude # Show version details + resources
|
|
362
|
+
|
|
363
|
+
# Skills
|
|
364
|
+
agents skills list # List installed skills
|
|
365
|
+
agents skills add <source> # Install from git/local
|
|
366
|
+
agents skills remove <name> # Remove a skill
|
|
367
|
+
agents skills view <name> # View skill details
|
|
368
|
+
|
|
369
|
+
# Commands
|
|
370
|
+
agents commands list # List slash commands
|
|
371
|
+
agents commands add <source> # Install commands
|
|
372
|
+
agents commands view <name> # View command content
|
|
373
|
+
|
|
374
|
+
# Rules / Instructions
|
|
375
|
+
agents rules list # List per-agent instruction files
|
|
376
|
+
agents rules add <source> # Install from git/local
|
|
377
|
+
agents rules remove <agent> # Remove rule file
|
|
378
|
+
agents rules view <agent> # View rule file content
|
|
379
|
+
|
|
380
|
+
# MCP servers
|
|
381
|
+
agents search <query> # Find in registry
|
|
382
|
+
agents install mcp:<name> # Install + register
|
|
383
|
+
agents mcp list # Show registered servers
|
|
384
|
+
agents mcp add <name> <cmd> # Register manually
|
|
385
|
+
|
|
386
|
+
# Secrets (keychain-backed env bundles, injected at run time)
|
|
387
|
+
agents secrets list # Show all bundles
|
|
388
|
+
agents secrets add <name> # Create an empty bundle
|
|
389
|
+
agents secrets set <bundle> <KEY> # Prompt, store in keychain, write ref
|
|
390
|
+
agents secrets set <bundle> <KEY> --value <v> # Store as YAML literal
|
|
391
|
+
agents secrets set <bundle> <KEY> --env <VAR> # Inherit from parent shell
|
|
392
|
+
agents secrets set <bundle> <KEY> --file <path> # Read from a file at run time
|
|
393
|
+
agents secrets view <name> [--reveal] # Show bundle (masked by default)
|
|
394
|
+
agents secrets import <name> --from .env # Import a dotenv file into keychain
|
|
395
|
+
agents secrets rm <name> # Delete bundle and purge keychain
|
|
396
|
+
agents run <agent> "..." --secrets <name> # Inject a bundle (repeatable)
|
|
397
|
+
|
|
398
|
+
# Sync
|
|
399
|
+
agents pull [source] # Sync from repo
|
|
400
|
+
agents push # Push changes back
|
|
401
|
+
|
|
402
|
+
# Drive
|
|
403
|
+
agents drive remote <user@host> # Set sync target
|
|
404
|
+
agents drive pull # Pull sessions from remote
|
|
405
|
+
agents drive push # Push sessions to remote
|
|
406
|
+
agents drive attach # Use drive as active agent home
|
|
407
|
+
agents drive detach # Restore to version home
|
|
408
|
+
agents drive status # Show drive state
|
|
409
|
+
|
|
410
|
+
# Execution
|
|
411
|
+
agents run <agent> <prompt> # Run agent
|
|
412
|
+
agents sessions <id> --markdown # Read a session by exact ID
|
|
413
|
+
agents sessions --agent codex # Interactive filtered session search
|
|
414
|
+
agents sessions --project agents # Interactive project-scoped session search
|
|
415
|
+
agents routines add <name> # Schedule a job (scheduler auto-starts)
|
|
416
|
+
agents routines list # Show all jobs
|
|
417
|
+
agents routines status # Check scheduler status + upcoming runs
|
|
418
|
+
|
|
419
|
+
# Teams (orchestrate multiple agents on a shared task)
|
|
420
|
+
agents teams create <team> # Start a new team
|
|
421
|
+
agents teams add <team> <agent> <task> # Add a teammate (runs immediately)
|
|
422
|
+
--name alice # give them a handle
|
|
423
|
+
--after alice,bob # stage as pending until deps complete
|
|
424
|
+
--mode plan|edit|full # permissions
|
|
425
|
+
--model <model> --env K=V # same passthroughs as exec
|
|
426
|
+
agents teams start <team> # Launch pending teammates whose deps are done
|
|
427
|
+
agents teams status <team> # Team standup (pass --since <cursor> for deltas)
|
|
428
|
+
agents teams ls # List teams (--agent, --status, --since filters)
|
|
429
|
+
agents teams remove <team> <teammate> # Let one teammate go (name or UUID prefix)
|
|
430
|
+
agents teams disband <team> # Stop everyone, remove the team
|
|
431
|
+
agents teams logs <teammate> # Read their raw log
|
|
432
|
+
agents teams doctor # Check which agents can join a team
|
|
433
|
+
|
|
434
|
+
# PTY sessions
|
|
435
|
+
agents pty start # Start a PTY session (returns ID)
|
|
436
|
+
agents pty exec <id> <command> # Run a command in the session
|
|
437
|
+
agents pty screen <id> # Render terminal as clean text
|
|
438
|
+
agents pty write <id> <input> # Send keystrokes (\n \t \e \xHH)
|
|
439
|
+
agents pty read <id> # Read raw output
|
|
440
|
+
agents pty signal <id> INT # Send signal
|
|
441
|
+
agents pty list # Show active sessions
|
|
442
|
+
agents pty stop <id> # Kill a session
|
|
443
|
+
agents pty server status # Check sidecar server
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
## Skill Format
|
|
449
|
+
|
|
450
|
+
Create a `SKILL.md` with YAML frontmatter:
|
|
451
|
+
|
|
452
|
+
```markdown
|
|
453
|
+
---
|
|
454
|
+
name: python-expert
|
|
455
|
+
description: Python code analysis, type hints, and testing patterns
|
|
456
|
+
author: Your Name
|
|
457
|
+
version: 1.0.0
|
|
458
|
+
keywords: [python, testing, types]
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
# Python Expert
|
|
462
|
+
|
|
463
|
+
High-level description of what this skill teaches your agents.
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
Add rule files in a `rules/` subdirectory -- each rule is a markdown file with specific guidance your agents follow during conversations.
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## Compatibility
|
|
471
|
+
|
|
472
|
+
| Agent | Versions | MCP | Commands | Skills | Rules | Hooks | Permissions | Routines | Teams |
|
|
473
|
+
|-------|----------|-----|----------|--------|-------|-------|-------------|----------|-------|
|
|
474
|
+
| Claude | yes | yes | yes | yes | CLAUDE.md | yes | yes | yes | yes |
|
|
475
|
+
| Codex | yes | yes | yes | yes | AGENTS.md | yes | yes | yes | yes |
|
|
476
|
+
| Gemini | yes | yes | yes | yes | GEMINI.md | yes | -- | yes | yes |
|
|
477
|
+
| Cursor | yes | yes | yes | yes | .cursorrules | -- | -- | -- | yes |
|
|
478
|
+
| OpenCode | yes | yes | yes | yes | AGENTS.md | yes | yes | -- | yes |
|
|
479
|
+
| OpenClaw | yes | yes | -- | yes | workspace/AGENTS.md | yes | -- | -- | -- |
|
|
480
|
+
|
|
481
|
+
## FAQ
|
|
482
|
+
|
|
483
|
+
### Why use `agents` instead of `claude` / `codex` / `gemini` directly?
|
|
484
|
+
|
|
485
|
+
Each agent CLI has its own config format, its own MCP setup, its own version management, its own skill system. If you use more than one, you end up maintaining 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, session discovery across all of them, and project-pinned versions like `.nvmrc`.
|
|
486
|
+
|
|
487
|
+
### Is this like `nvm` / `mise` / `asdf` but for AI agents?
|
|
488
|
+
|
|
489
|
+
For version management, yes — that's the closest analogue. `agents-cli` reads a project-root `agents.yaml`, walks up the directory tree, and routes `claude` / `codex` / `gemini` to the correct installed binary per project. But `agents` also manages agent-native resources (skills, MCP servers, slash commands, hooks, permissions) that language version managers don't touch.
|
|
490
|
+
|
|
491
|
+
### How is this different from Vercel's Open Agents?
|
|
492
|
+
|
|
493
|
+
Open Agents is a hosted cloud product. `agents-cli` is a local-first open client — your agents run on your machine against your API keys, no SaaS layer in between. Part of an open stack for AI coding agents; cloud runner coming separately.
|
|
494
|
+
|
|
495
|
+
### Does it store my API keys or send telemetry?
|
|
496
|
+
|
|
497
|
+
No. `agents-cli` reads API keys from your shell environment or each agent CLI's existing auth (it never writes a credential file, never reads one you didn't already set up). No telemetry, no phone-home. All state lives in `~/.agents/` and each agent's own config dir.
|
|
498
|
+
|
|
499
|
+
### Do I need Node.js? Bun?
|
|
500
|
+
|
|
501
|
+
Either works. The installer tries Bun first (faster), falls back to npm. Node 18+ is required at runtime. No other build tools needed.
|
|
502
|
+
|
|
503
|
+
### Which platforms are supported?
|
|
504
|
+
|
|
505
|
+
macOS and Linux today. Windows via WSL works but isn't first-class. Native Windows support is on the roadmap.
|
|
506
|
+
|
|
507
|
+
### Can I use `agents` in CI?
|
|
508
|
+
|
|
509
|
+
Yes — `agents run` is non-interactive by default with `--yes` flags for every prompt and JSON output for parsing. The [non-interactive usage](#non-interactive-usage) section covers the automation-friendly flags.
|
|
510
|
+
|
|
511
|
+
### Can I add support for a new agent CLI?
|
|
512
|
+
|
|
513
|
+
Yes. Agents are defined in [src/lib/agents.ts](src/lib/agents.ts) — each is a config object declaring commands dir, memory file format, and capabilities. Open an issue or PR.
|
|
514
|
+
|
|
515
|
+
### What's the relationship to Phoenix Labs / Rush?
|
|
516
|
+
|
|
517
|
+
`agents-cli` is an open client maintained by Phoenix Labs. Rush is a separate product that builds on top of the same runtime. You can use `agents-cli` on its own — no Rush account required, no upsell.
|
|
518
|
+
|
|
519
|
+
## Contributing
|
|
520
|
+
|
|
521
|
+
PRs and issues welcome. To develop locally:
|
|
522
|
+
|
|
523
|
+
```bash
|
|
524
|
+
git clone https://github.com/phnx-labs/agents-cli
|
|
525
|
+
cd agents-cli
|
|
526
|
+
bun install
|
|
527
|
+
bun run build
|
|
528
|
+
bun test
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
The CLI entry is [src/index.ts](src/index.ts). Commands live in [src/commands/](src/commands/); shared libraries in [src/lib/](src/lib/). Tests sit next to source as `*.test.ts` and run under `vitest` (see [CLAUDE.md](CLAUDE.md) for the full style guide).
|
|
532
|
+
|
|
533
|
+
For a full comparison with other tools in the ecosystem — Rivet, Agentloom, mise, skills.sh, cass, Microsoft APM — see [docs/04-landscape.md](docs/04-landscape.md).
|
|
534
|
+
|
|
535
|
+
## License
|
|
536
|
+
|
|
537
|
+
MIT — see [LICENSE](./LICENSE).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/sessions.test.ts"],"names":[],"mappings":""}
|