Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ codex:
--dangerously-skip-permissions: false # `false`の値はフラグ自体を出力しない
```

10種類のエージェントタイプのうち8つがspawn可能 — `claude-code`、`codex`、`grok-build`、`cursor`、`gemini`、`antigravity`、`copilot`、`opencode`。`hermes` は、初期プロンプトを事前に仕込んだインタラクティブセッションを開始する既知のCLIモードがないためspawn不可(#279)。`devin` は、同等のインタラクティブ起動方法がまだ検証されていないため、現時点ではspawnableとして扱っていない。macOSが主なターゲットで、LinuxとWindowsはベストエフォート(ターミナルが未対応の場合はissueまたはPRを歓迎)。ヘッドレス環境 — tmuxもなく使えるターミナルもない — はエージェントCLIがインタラクティブなターミナルを必要とするためエラーになる。
10種類のエージェントタイプのうち9つがspawn可能 — `claude-code`、`codex`、`grok-build`、`cursor`、`gemini`、`antigravity`、`copilot`、`opencode`、`devin`。`hermes` は不可 — そのCLIには初期プロンプトを事前に仕込んだインタラクティブセッションを開始するモードがない(#279)。macOSが主なターゲットで、LinuxとWindowsはベストエフォート(ターミナルが未対応の場合はissueまたはPRを歓迎)。ヘッドレス環境 — tmuxもなく使えるターミナルもない — はエージェントCLIがインタラクティブなターミナルを必要とするためエラーになる。

### spawnしたエージェントを終了する(`despawn`)

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ codex:
--dangerously-skip-permissions: false # a `false` value suppresses the flag entirely
```

Eight of the ten agent types are spawnable — `claude-code`, `codex`, `grok-build`, `cursor`, `gemini`, `antigravity`, `copilot`, `opencode`. `hermes` is not spawnable because its CLI has no known mode that starts an interactive session pre-seeded with an initial prompt (#279). `devin` is currently not marked spawnable because an equivalent interactive boot mode has not yet been verified. macOS is the primary target; Linux and Windows are best-effort (please open an issue/PR if your terminal isn't handled). Headless environments — no tmux **and** no usable terminal — error out, since the agent CLIs need an interactive terminal.
Nine of the ten agent types are spawnable — `claude-code`, `codex`, `grok-build`, `cursor`, `gemini`, `antigravity`, `copilot`, `opencode`, `devin`. `hermes` is not: its CLI has no mode that starts an interactive session pre-seeded with an initial prompt (#279). macOS is the primary target; Linux and Windows are best-effort (please open an issue/PR if your terminal isn't handled). Headless environments — no tmux **and** no usable terminal — error out, since the agent CLIs need an interactive terminal.

### Tear down a spawned agent (`despawn`)

Expand Down
3 changes: 3 additions & 0 deletions scripts/drivers/types/devin/type.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
name=devin
template=template.md
cli=devin
spawnable=yes
prompt_arg=--
model_arg=--model
detect_proc=devin devin-*
monitor=no
delivery_modes=off
10 changes: 10 additions & 0 deletions tests/test_spawn.bats
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,16 @@ seed_resumable() {
[ "$status" -ne 0 ]
}

@test "spawn: devin launches devin with -- (not a bare positional)" {
bash "$SCRIPTS/join.sh" myteam existing claude-code "$PROJ"
run bash "$SCRIPTS/spawn.sh" devin alice --project "$PROJ" --model claude-sonnet-4 --no-wait
[ "$status" -eq 0 ]
boot="$(cat "$CAPTURE")"
run cat "$boot"
[[ "$output" == *"devin --model claude-sonnet-4 --"* ]]
[[ "$output" == *"actas"* ]]
}

@test "spawn: prompt_arg lands after spawn-options, immediately before the prompt" {
bash "$SCRIPTS/join.sh" myteam existing claude-code "$PROJ"
local opts="$TEST_SKILL_DIR/spawn_options.yaml"
Expand Down
6 changes: 3 additions & 3 deletions tests/test_type_registry.bats
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ write_node_launcher_fixtures() {
grep -Fq 'To mint a replacement epoch instead:' "$BATS_TEST_DIRNAME/../scripts/key.sh"
}

@test "type-registry: spawnable set is exactly eight of the eleven built-ins (#277, #279)" {
# hermes and devin deliberately stay out (#279): no known CLI mode starts them
@test "type-registry: spawnable set is exactly nine of the eleven built-ins (#277, #279)" {
# hermes deliberately stays out (#279): no known CLI mode starts it
# interactive with a seeded initial prompt. agmsg-app also stays out: it's
# the desktop app itself (spawnable=no), not a spawnable agent type.
run env -i PATH="$PATH" bash -c \
Expand All @@ -181,7 +181,7 @@ write_node_launcher_fixtures() {
[ \"\$(agmsg_type_get \"\$t\" spawnable)\" = yes ] && echo \"\$t\"
done <<< \"\$(agmsg_known_types | sort -u)\" | paste -sd, -"
[ "$status" -eq 0 ]
[ "$output" = "antigravity,claude-code,codex,copilot,cursor,gemini,grok-build,opencode" ]
[ "$output" = "antigravity,claude-code,codex,copilot,cursor,devin,gemini,grok-build,opencode" ]
}

@test "type-registry: detection manifests carry the expected env / proc keys" {
Expand Down