~/docs $ grep
~/docs $ cat agents.md

Agents

Lights Out runs any command-line agent or tool: Claude Code, Codex, Gemini CLI, OpenCode, Aider, Copilot CLI, Cursor's agent, or plain commands like npm test. Nothing is bundled and nothing is hard-coded: whatever runs in a tab is what Lights Out works with.

Installing an agent

Install agents the way their makers describe, inside Lights Out or before. In Lights Out mode on Windows, lightsout-install-agents offers the common ones. Your logins are kept: you sign in once.

How conversations continue

When you switch to or from Lights Out, each tab is handed over with its folder and the command it ran. Agents that can continue a conversation are started that way:

AgentContinues with
claudeclaude --continue
codexcodex resume --last
opencodeopencode --continue
aideraider --restore-chat-history

Any other command is typed back into its tab, without being run, so you decide. Add your own in ~/.config/lightsout/resume.conf:

ini
# program = the command that continues it
mytool = mytool --resume

States

Lights Out reads each pane's screen to tell what the program is doing, for any program:

MarkStateMeans
●needs youasks a question, waits for a yes or a password
◌workingoutput is changing
○doneit worked for a while and stopped
·idlenothing happening

lightsout explain <pane> tells you why a pane is in its state.

Control from the command line

Every pane can be driven with lightsout commands, from any terminal or from an agent. That's how an agent runs other agents.

CommandDoes
lightsout listEvery pane: id, room, tab, state, title and folder
lightsout new [--right|--down] [--cwd DIR] [-- COMMAND...]Opens a pane (a new tab unless --right/--down) and prints its id
lightsout send PANE TEXT... [--no-enter]Types into a pane, and presses Enter unless --no-enter
lightsout read PANE [--lines N]Prints what a pane shows (the last 60 lines unless --lines)
lightsout wait PANE [--until idle|done|needs-you] [--timeout S]Waits until the pane reaches that state
lightsout explain PANEWhy Lights Out thinks a pane is in its state
lightsout notify TEXT...Shows a popup
lightsout screen off|onSwitches the screen off or on
lightsout powerBattery and power draw
lightsout skillPrints a short guide for agents
lightsout uninstallRemoves Lights Out

Every program in a pane knows its own pane id from $LIGHTSOUT_PANE.

Example: one agent hands work to another

sh
id=$(lightsout new --cwd ~/web -- codex)
lightsout send "$id" "Fix the failing test in checkout.spec.ts"
lightsout wait "$id" --until done --timeout 1800
lightsout read "$id" --lines 40

Teaching your agent

sh
lightsout skill

prints a short guide written for agents. Add it to your agent's instructions (for example CLAUDE.md or AGENTS.md) and it can open panes, hand out work and switch the screen off when you're away.

Security of the control commands

The commands talk to the app over a local connection on 127.0.0.1 with a random token that only your user account can read. Nothing listens on your network.

edit this page on github