shellmates 0.1.3 → 0.1.5
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/bin/shellmates.js +27 -10
- package/lib/commands/update.js +0 -1
- package/lib/utils/agents.js +0 -1
- package/package.json +1 -1
package/bin/shellmates.js
CHANGED
|
@@ -25,17 +25,17 @@ if (isWelcome) {
|
|
|
25
25
|
` ${chalk.bold(name.padEnd(16))}${chalk.dim(desc)}`
|
|
26
26
|
|
|
27
27
|
console.log(chalk.dim(' COMMANDS'))
|
|
28
|
+
console.log(cmd('spawn', 'Start a session — Claude asks what you want to work on'))
|
|
28
29
|
console.log(cmd('init', 'First-time setup — create config and directories'))
|
|
29
30
|
console.log(cmd('config', 'Configure agents, orchestrator, and permission mode'))
|
|
30
|
-
console.log(cmd('spawn', 'Dispatch a task to a worker agent in a new tmux session'))
|
|
31
31
|
console.log(cmd('status', 'Show active sessions and inbox results'))
|
|
32
32
|
console.log(cmd('install-hook', 'Wire up native Claude Code AGENT_PING notifications'))
|
|
33
33
|
console.log(cmd('teardown', 'Kill shellmates tmux sessions'))
|
|
34
34
|
console.log(cmd('update', 'Update shellmates to the latest version'))
|
|
35
35
|
console.log('')
|
|
36
36
|
console.log(chalk.dim(' EXAMPLES'))
|
|
37
|
-
console.log(` ${chalk.dim('shellmates spawn
|
|
38
|
-
console.log(` ${chalk.dim('shellmates spawn --task
|
|
37
|
+
console.log(` ${chalk.dim('shellmates spawn')} ${chalk.dim('# natural-language intake with Claude')}`)
|
|
38
|
+
console.log(` ${chalk.dim('shellmates spawn --task "Add dark mode"')} ${chalk.dim('# direct dispatch to default agent')}`)
|
|
39
39
|
console.log(` ${chalk.dim('shellmates status')}`)
|
|
40
40
|
console.log('')
|
|
41
41
|
console.log(' ' + chalk.dim('shellmates <command> --help') + chalk.dim(' for command details.'))
|
|
@@ -86,15 +86,21 @@ program
|
|
|
86
86
|
// ── shellmates spawn ─────────────────────────────────────────────────────────
|
|
87
87
|
program
|
|
88
88
|
.command('spawn')
|
|
89
|
-
.description('
|
|
90
|
-
.option('-t, --task <text>', '
|
|
91
|
-
.option('-f, --task-file <path>', 'Path to a file
|
|
92
|
-
.option('-a, --agent <name>', 'Override agent for
|
|
93
|
-
.option('-s, --session <name>', 'tmux session name
|
|
94
|
-
.option('-p, --project <path>', 'Project directory
|
|
95
|
-
.option('-w, --watch', 'Wait and print result when
|
|
89
|
+
.description('Start a session — Claude interviews you and dispatches agents, or pass --task for direct dispatch')
|
|
90
|
+
.option('-t, --task <text>', 'Direct task text (skips intake, dispatches immediately)')
|
|
91
|
+
.option('-f, --task-file <path>', 'Path to a task file (skips intake, dispatches immediately)')
|
|
92
|
+
.option('-a, --agent <name>', 'Override agent for direct dispatch (gemini|codex)')
|
|
93
|
+
.option('-s, --session <name>', 'tmux session name')
|
|
94
|
+
.option('-p, --project <path>', 'Project directory (default: cwd)')
|
|
95
|
+
.option('-w, --watch', 'Wait and print result when agent finishes')
|
|
96
96
|
.option('--no-ping', 'Skip background inbox watcher')
|
|
97
97
|
.action(async (opts) => {
|
|
98
|
+
// No task provided → open the orchestrator intake (pond mode)
|
|
99
|
+
if (!opts.task && !opts.taskFile) {
|
|
100
|
+
const { pond } = await import('../lib/commands/pond.js')
|
|
101
|
+
await pond({ session: opts.session, project: opts.project })
|
|
102
|
+
return
|
|
103
|
+
}
|
|
98
104
|
const { spawn } = await import('../lib/commands/spawn.js')
|
|
99
105
|
await spawn({
|
|
100
106
|
task: opts.task,
|
|
@@ -107,6 +113,17 @@ program
|
|
|
107
113
|
})
|
|
108
114
|
})
|
|
109
115
|
|
|
116
|
+
// ── shellmates pond (alias for spawn with no task) ───────────────────────────
|
|
117
|
+
program
|
|
118
|
+
.command('pond')
|
|
119
|
+
.description('Start an orchestrator session — Claude asks what you want to work on')
|
|
120
|
+
.option('-s, --session <name>', 'tmux session name')
|
|
121
|
+
.option('-p, --project <path>', 'Project directory (default: cwd)')
|
|
122
|
+
.action(async (opts) => {
|
|
123
|
+
const { pond } = await import('../lib/commands/pond.js')
|
|
124
|
+
await pond({ session: opts.session, project: opts.project })
|
|
125
|
+
})
|
|
126
|
+
|
|
110
127
|
// ── shellmates status ────────────────────────────────────────────────────────
|
|
111
128
|
program
|
|
112
129
|
.command('status')
|
package/lib/commands/update.js
CHANGED
package/lib/utils/agents.js
CHANGED
|
@@ -77,7 +77,6 @@ export async function checkAndInstallAgents() {
|
|
|
77
77
|
console.log(chalk.dim(` Installing ${a.label}...`))
|
|
78
78
|
const result = spawnSync('npm', ['install', '-g', `${a.pkg}@latest`], {
|
|
79
79
|
stdio: 'inherit',
|
|
80
|
-
shell: true,
|
|
81
80
|
})
|
|
82
81
|
if (result.status === 0) {
|
|
83
82
|
console.log(chalk.green(' ✓') + ` ${a.label} installed`)
|