SE

session-execution

Utility for handling shell state, command execution, and streaming process outputs in AI coding environments.

Install

mkdir -p .claude/skills/session-execution && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1690" && unzip -o skill.zip -d .claude/skills/session-execution && rm skill.zip

Installs to .claude/skills/session-execution

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when working on or reviewing session execution, command handling, shell state, FIFO-based streaming, or stdout/stderr separation. Relevant for session.ts, command handlers, exec/execStream, or anything involving shell process management. (project)
251 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Manage shell state and command execution
  • Separate stdout and stderr streams using binary prefixes
  • Execute commands in foreground or background modes
  • Handle atomic exit code writing
  • Coordinate FIFO-based streaming for background processes

How it works

The skill manages terminal sessions by using a mutex for serialization and specific binary prefixes to reconstruct output streams from foreground temp files or background FIFOs.

Inputs & outputs

You give it
Shell command and execution mode
You get back
Captured stdout/stderr streams and exit code

When to use session-execution

  • Debug issues with shell command execution
  • Optimize stdout/stderr streaming in agent tasks
  • Review session state handling

About this skill

Session Execution

Read docs/SESSION_EXECUTION.md before working in this area. It explains the architecture for reliable command execution with stdout/stderr separation.

Key Concepts

Two execution modes:

  • Foreground (exec): Runs in main shell, state persists. Uses temp files for output capture.
  • Background (execStream/startProcess): Runs in subshell via FIFOs. Labelers prefix output in background.

Binary prefix contract:

  • Stdout: \x01\x01\x01 prefix per line
  • Stderr: \x02\x02\x02 prefix per line
  • Log parser reconstructs streams from these prefixes

Completion signaling:

  • Exit code written to <id>.exit file via atomic tmp + mv
  • Hybrid fs.watch + polling detects completion (robust on tmpfs/overlayfs)
  • Background mode uses labelers.done marker to ensure output is fully captured

When Developing

  • Understand why foreground uses temp files (bash waits for redirects to complete)
  • Understand why background uses FIFOs (concurrent streaming without blocking shell)
  • Test silent commands (cd, variable assignment) - these historically caused hangs
  • Test large output - buffering issues can cause incomplete logs

When Reviewing

Correctness checks:

  • Verify exit code handling is atomic (write to .tmp then mv)
  • Check FIFO cleanup in error paths
  • Ensure labelers.done is awaited before reading final output (background mode)

Race condition analysis:

Session execution has a mutex that serializes command execution per session. Before flagging race conditions:

  1. Check if operations happen within the same session (mutex protects)
  2. Check if operations are per-session vs cross-session (cross-session races are real)
  3. Refer to docs/CONCURRENCY.md for the full concurrency model

Common false positives:

  • "Concurrent reads/writes to session state" - mutex serializes these
  • "FIFO operations might race" - labelers are per-command, not shared

Actual concerns to watch for:

  • Cross-session operations without proper isolation
  • Cleanup operations that might affect still-running commands
  • File operations outside the mutex-protected section

Key Files

  • packages/sandbox-container/src/session.ts - Session class with exec/execStream
  • packages/sandbox-container/src/managers/SessionManager.ts - Mutex and lifecycle
  • packages/sandbox/src/clients/CommandClient.ts - SDK interface to session commands

When not to use it

  • Operations requiring cross-session isolation without proper handling
  • File operations outside the mutex-protected section

Prerequisites

Read docs/SESSION_EXECUTION.mdRead docs/CONCURRENCY.md

Limitations

  • Requires adherence to the mutex-protected execution model
  • Buffering issues may occur with large output
  • Requires labelers.done to be awaited in background mode

How it compares

This method provides a structured architecture for reliable stream separation and process management compared to standard shell execution.

Compared to similar skills

session-execution side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
session-execution (this skill)33moNo flagsAdvanced
applescript288moReviewAdvanced
bazel-build-optimization142moNo flagsAdvanced
home-assistant-manager98moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry