Juliusolsson05

Claude Code Headless — Development skill for Claude Code

Development community

Programmatically drive the real Claude Code CLI in a PTY — structured semantic/screen/committed events, live token streaming, and typed transcript access.

How to install Claude Code Headless

This entry records only its repository, not the path inside it, so there is no exact command to give. Open Juliusolsson05/claude-code-headless and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Claude Code Headless does

Programmatically drive the real Claude Code CLI in a PTY — structured semantic/screen/committed events, live token streaming, and typed transcript access. No SDK shortcuts.

Alternatives in Development

  • Shortcuts Playground Plugin — Shortcuts Playground: A Claude Code and Codex plugin for building, validating, signing, and remixing macOS/iOS 1.1k ★
  • Pi Reserved Keybindings — Extensions cannot override these shortcuts — they are silently skipped by registerShortcut() 526 ★
  • Hive — Browser-native hive-mind for CLI coding agents — Claude Code, Codex, Gemini, and OpenCode collaborate as real 473 ★

README

claude-code-headless

Programmatically drive the real Claude Code CLI — structured events, live token streaming, full transcript access. No SDK shortcuts.

Stars Forks Issues License Last commit


Why this exists

Claude Code is a terminal application. If you want to build on top of it programmatically, today's options are bad:

  • The SDK gives you a reduced surface — send a message, get a message back. It throws away most of what makes Claude Code good in practice: the slash-command system, permission prompts, compaction, session resume, the full tool loop, the real streaming behaviour.
  • Screen-scraping the TUI is brittle and gives you pixels, not meaning.

`claude-code-headless` takes the opposite approach. It runs the **actual `claude` binary** inside a pseudo-terminal and exposes everything the CLI does as structured, typed events. The full command surface, the real prompts, the real flows stay intact. You get the real product, programmatically.

This is a control layer. Build an edit