kolu

Drive one coding agent from another through terminal PTY sessions using kaval-tui.

957|79|Updated May 9, 2021
One-click install
npx skills add https://github.com/srid/emanote --skill kolu
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: kolu
Source: https://github.com/srid/emanote/tree/main/.agents/skills/kolu
Command: npx skills add https://github.com/srid/emanote --skill kolu

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Coordinating multiple AI coding agents (Claude Code, Codex, opencode) requires a way for one agent to spawn, prompt, and read another agent running in a terminal. This Skill provides the create→send→snapshot loop for driving a terminal-based agent from the outside without standing up a server or MCP layer.

Core Features & Use Cases

  • Terminal Agent Control: Spawn a coding agent in a PTY with kaval-tui create, type prompts with send, submit with a separate send --key Enter, and read replies via snapshot --viewport.
  • Done-Signal Detection: Poll the screen until it settles for raw terminals, or use pulam-tui wait --until for precise agent-state detection on hooked terminals.
  • Local and Remote Reach: Autodiscover a local daemon, target a kolu-server socket, or drive a daemon on another machine over SSH with --host.
  • Use Case: Have a supervising Claude agent spawn a Codex session, assign it a refactoring task, wait for its turn to finish, read the result, and issue follow-up prompts in a loop.

Quick Start

Use the kolu skill to spawn a Claude Code session in a terminal, send it a prompt to refactor the parser, wait for its reply, and read the response from the screen.

Frequently Asked Questions about kolu

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make one AI agent prompt another agent in a terminal?▼

Spawn the inner agent with kaval-tui create, type the prompt with kaval-tui send, then submit it with a separate kaval-tui send --key Enter. Poll snapshot --viewport until the screen settles, then read the reply and loop with the next prompt.

Why is my prompt not submitting to Claude Code in the terminal?▼

The Enter key must be sent as a separate send command after the text, not combined in one call. An Enter sent with the text races the agent's bracketed-paste handling and gets silently dropped, leaving the prompt staged on the input line.

How do I know when a terminal agent has finished its turn?▼

For raw kaval-tui terminals, poll snapshot --viewport until the screen stops changing across two checks. For hooked terminals, use pulam-tui wait --until awaiting,waiting for a precise done-signal with a timeout.

Does pulam-tui wait work with terminals spawned by kaval-tui create?▼

No, agent-state detection requires hooked terminals with shell rc-hooks, which kaval-tui create does not provide. Use wait against terminals spawned by a running kolu-server, and use the screen-settle method for raw terminals.

Can I drive a terminal agent running on a remote machine?▼

Yes, kaval-tui --host <ssh> reaches a daemon on another machine provisioned with Nix, and the remote PTY survives the link. Locally, --socket targets a specific daemon such as a running kolu-server.