IN

interactive-shell

Runs interactive terminal programs like dev servers and TUIs. Use for direct user-controlled CLI processes.

Install

mkdir -p .claude/skills/interactive-shell && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18772" && unzip -o skill.zip -d .claude/skills/interactive-shell && rm skill.zip

Installs to .claude/skills/interactive-shell

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.

dev server, TUI, REPL, DB shell, 로그처럼 사용자 제어나 장시간 실행이 필요한 터미널 작업에 사용한다. AI 작업 위임에는 subagent를 사용한다.
98 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Start development servers (e.g., `pnpm dev`, `npm run dev`)
  • Display Terminal User Interfaces (TUIs) like `lazygit` or `htop`
  • Run Read-Eval-Print Loops (REPLs) or database shells (e.g., `python`, `psql`)
  • Tail application logs (`tail -f ...`)
  • Manage the lifecycle of long-running processes
  • Send input to interactive processes

How it works

The skill executes interactive terminal commands, providing modes for direct user interaction, hands-free monitoring of long-running processes, or background dispatch. It captures and renders terminal output.

Inputs & outputs

You give it
command for an interactive or long-running terminal process
You get back
rendered terminal output or managed process state

When to use interactive-shell

  • Start local development servers
  • Run interactive CLI tools like lazygit
  • Open a database REPL like psql
  • Tail application logs

About this skill

Interactive Shell (Project-local Skill)

Last verified: 2026-04-03

Local note: this project vendors the extension under extensions/interactive-shell/. Treat it as a repo-local skill/extension, not a separately installed package.

What this skill is for

In this project, interactive_shell is mainly for:

  • 개발 서버 실행 (pnpm dev, npm run dev, vite, next dev, etc.)
  • TUI 보여주기 (lazygit, htop, DB shell, interactive CLI menus)
  • REPL / 콘솔 / 로그 tail 보기
  • 일반 bash로 돌리면 불편하거나 깨지는 인터랙티브 프로그램 실행

What this skill is NOT for

Do not frame interactive_shell as a subagent/delegation tool in this repo.

If the goal is:

  • another coding agent doing a task,
  • structured delegation,
  • hidden/background AI worker execution,

use the subagent tool instead.

interactive_shell here is for terminal UX and process supervision, not subagent orchestration.

Preferred mode by use case

1) Interactive — for TUI / direct user interaction

Use when the user should directly see and possibly control the program.

Good for:

  • lazygit
  • htop
  • python
  • node
  • psql
  • sqlite3
  • git rebase -i
  • any curses/full-screen TUI
interactive_shell({ command: 'lazygit' })
interactive_shell({ command: 'psql -d mydb' })
interactive_shell({ command: 'python' })

This is the default mode.


2) Hands-Free — for dev servers you want to watch

Use when starting a long-running process and then checking its output later.

Good for:

  • pnpm dev
  • npm run dev
  • vite
  • next dev
  • docker compose up
  • tail -f ...
interactive_shell({
  command: 'pnpm dev',
  mode: 'hands-free',
  reason: 'Run local dev server'
})

Then later:

interactive_shell({ sessionId: 'calm-reef' })
interactive_shell({ sessionId: 'calm-reef', outputLines: 50 })
interactive_shell({ sessionId: 'calm-reef', kill: true })

Use this as the default for dev servers when you want the overlay visible and the process queryable.


3) Dispatch / background — only for process lifecycle, not delegation

This can still be useful for headless long-running processes, but do not describe it as subagent delegation.

Good for:

  • starting a server without keeping the overlay open
  • launching a log tail or watcher in background
  • starting a process and getting notified when it exits
interactive_shell({
  command: 'pnpm dev',
  mode: 'dispatch',
  background: true,
  reason: 'Run local dev server headlessly'
})

Use this for process management, not “ask another agent to do work”.

Common workflows

A. Start a dev server and inspect logs

interactive_shell({
  command: 'pnpm dev',
  mode: 'hands-free',
  reason: 'Frontend dev server'
})

Check output later:

interactive_shell({ sessionId: 'calm-reef' })
interactive_shell({ sessionId: 'calm-reef', outputLines: 100, outputMaxChars: 30000 })

Stop it:

interactive_shell({ sessionId: 'calm-reef', kill: true })

B. Open a TUI for the user to inspect

interactive_shell({ command: 'lazygit' })
interactive_shell({ command: 'htop' })
interactive_shell({ command: 'git rebase -i HEAD~3' })

Use interactive mode here so the user can watch and take over naturally.


C. Open a database shell / REPL

interactive_shell({ command: 'psql -d app' })
interactive_shell({ command: 'sqlite3 dev.db' })
interactive_shell({ command: 'node' })
interactive_shell({ command: 'python' })

Again, prefer interactive mode unless there is a strong reason to poll from the agent side.


D. Reattach to a backgrounded process

interactive_shell({ listBackground: true })
interactive_shell({ attach: 'calm-reef' })
interactive_shell({ dismissBackground: 'calm-reef' })

Querying output

Status queries return rendered terminal output (what is actually on screen), not raw PTY bytes.

Defaults:

  • outputLines: 20
  • outputMaxChars: 5KB

Useful patterns:

interactive_shell({ sessionId: 'calm-reef' })
interactive_shell({ sessionId: 'calm-reef', outputLines: 50 })
interactive_shell({ sessionId: 'calm-reef', outputLines: 100, outputMaxChars: 30000 })
interactive_shell({ sessionId: 'calm-reef', incremental: true, outputLines: 50 })

Use incremental: true when reading long scrollback progressively.

Sending input

interactive_shell({ sessionId: 'calm-reef', input: '/help\n' })
interactive_shell({ sessionId: 'calm-reef', inputKeys: ['ctrl+c'] })
interactive_shell({ sessionId: 'calm-reef', inputPaste: 'line1\nline2\nline3' })
interactive_shell({ sessionId: 'calm-reef', input: 'y', inputKeys: ['enter'] })

Common named keys

  • up, down, left, right
  • enter
  • escape
  • tab, shift+tab
  • backspace
  • ctrl+c, ctrl+d, ctrl+z

Background session management

interactive_shell({ sessionId: 'calm-reef', background: true })
interactive_shell({ listBackground: true })
interactive_shell({ attach: 'calm-reef' })
interactive_shell({ attach: 'calm-reef', mode: 'hands-free' })
interactive_shell({ attach: 'calm-reef', mode: 'dispatch' })
interactive_shell({ dismissBackground: true })
interactive_shell({ dismissBackground: 'calm-reef' })

Safe TUI capture

Never use plain bash for a truly interactive/TUI app when you actually need terminal behavior.

If you only need a quick capture from a TUI-ish command that does not exit cleanly, use interactive_shell with a timeout:

interactive_shell({
  command: 'pi --help',
  mode: 'hands-free',
  timeout: 5000
})

Good for:

  • --help output from TUI apps
  • commands that animate or do terminal detection
  • short-lived inspection of otherwise interactive commands

Practical guidance for this repo

Prefer interactive_shell when:

  • you need to show a terminal UI
  • you need to start/monitor a dev server
  • you need to interact with a REPL or shell
  • you want attach/background/reattach behavior

Prefer bash when:

  • command is simple and non-interactive
  • you only need stdout/stderr once
  • no overlay / no PTY semantics are needed

Prefer subagent when:

  • the task is really delegation to another coding agent
  • you want structured worker/reviewer flows
  • you want hidden/background AI execution rather than terminal supervision

Recommended defaults

Dev server

interactive_shell({
  command: 'pnpm dev',
  mode: 'hands-free',
  reason: 'Run dev server'
})

TUI tool

interactive_shell({ command: 'lazygit' })

Background server

interactive_shell({
  command: 'pnpm dev',
  mode: 'dispatch',
  background: true,
  reason: 'Run dev server in background'
})

Stop a running session

interactive_shell({ sessionId: 'calm-reef', kill: true })

When not to use it

  • When the task is delegation to another coding agent
  • When structured delegation or background AI worker execution is needed
  • When the command is simple and non-interactive, and only stdout/stderr is needed once

Limitations

  • Not for subagent orchestration or delegation to another coding agent
  • Does not provide structured delegation or hidden/background AI worker execution
  • Status queries return rendered terminal output, not raw PTY bytes

How it compares

This skill is designed for interactive terminal UX and process supervision, allowing direct user control and monitoring of long-running processes, unlike simple `bash` execution or subagent delegation.

Compared to similar skills

interactive-shell side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
interactive-shell (this skill)015dNo flagsIntermediate
makefile-dev-workflow05moReviewBeginner
senior-backend147moReviewAdvanced
pagination15moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

makefile-dev-workflow

raphaelmansuy

Unified development workflow for EdgeQuake using Makefile commands. Use when starting services, running tests, or managing the full development stack (database, backend, frontend). Provides simplified alternatives to raw cargo/npm commands.

00

senior-backend

davila7

Comprehensive backend development skill for building scalable backend systems using NodeJS, Express, Go, Python, Postgres, GraphQL, REST APIs. Includes API scaffolding, database optimization, security implementation, and performance tuning. Use when designing APIs, optimizing database queries, implementing business logic, handling authentication/authorization, or reviewing backend code.

1446

pagination

dadbodgeoff

Implement cursor-based and offset pagination for APIs. Covers efficient database queries, stable sorting, and pagination metadata.

13

moai-domain-backend

modu-ai

Backend development specialist covering API design, database integration, microservices architecture, and modern backend patterns.

10

databricks-expert-agent

databricks-solutions

Transforms the assistant into a Senior Databricks Solutions Architect Agent that designs, implements, and reviews production-grade Databricks solutions following official best practices. Enforces Unity Catalog governance, Delta Medallion architecture, DLT expectations, Predictive Optimization, autom

00

environment-setup

studentdotai

Complete setup for uv, GDAL 3.10.3, PostGIS, and all project dependencies. Use when setting up development environment, installing GDAL, or configuring PostGIS backend.

00

Search skills

Search the agent skills registry