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.