freeact-interaction
$
npx mdskill add gradion-ai/freeact/freeact-interactionExecute Freeact agent commands via tmux for terminal testing.
- Enables agents to run Freeact's Textual UI in detached sessions.
- Depends on tmux for pseudo-TTY creation and command execution.
- Decides actions by analyzing terminal output and user prompts.
- Delivers results by capturing pane content and sending key inputs.
SKILL.md
.github/skills/freeact-interactionView on GitHub ↗
--- name: freeact-interaction description: Interact with freeact agent via tmux for testing --- # Interacting with Freeact via tmux Freeact's terminal UI (Textual) requires a real TTY. Use tmux to provide a pseudo-TTY. ## Setup ```bash # Start detached tmux session (120x50 recommended for proper rendering) tmux new-session -d -s agent -x 120 -y 50 tmux set-option -t agent remain-on-exit on # Start freeact (do NOT redirect stderr, it breaks Textual's terminal detection) tmux send-keys -t agent 'uv run freeact' Enter ``` Wait at least 10 seconds for startup (MCP servers need to initialize). ## Capturing Output Textual renders to the terminal's alternate screen buffer. `tmux capture-pane` captures it correctly as long as stderr is not redirected. ```bash # Capture visible screen tmux capture-pane -t agent -p # Capture with scrollback tmux capture-pane -t agent -p -S -50 ``` ## Sending Input Use separate tool calls for sending keys and capturing output. Never chain `tmux send-keys` and `tmux capture-pane` in a single bash command -- the shell command text leaks into the Textual prompt. ```bash # Send literal text (use -l to avoid key interpretation) tmux send-keys -t agent -l 'your message here' ``` Then in a separate call: ```bash tmux send-keys -t agent Enter ``` Then wait and capture in another separate call. ## Approval Prompt ```bash # Approve: y, Reject: n, Always: a, Session: s tmux send-keys -t agent 'y' ``` ## Quit and Cleanup ```bash tmux send-keys -t agent C-q sleep 2 tmux kill-session -t agent ``` ## Additional guides - [Slash commands](references/slash-commands.md) - Testing `/skill-name` invocation via the skill picker - [Image attachments](references/image-attachments.md) - Testing `@path` image attachments via the file picker
More from gradion-ai/freeact
- output-parsersGenerate output parsers for mcptools with unstructured return types. Use when a tool returns raw strings or Result models with single str fields and needs structured ParseResult output. Covers testing tools, identifying parseable structures, extending modules with ParseResult models, and creating parser implementations.
- saving-codeactsSave executed Python code as reusable tools in the gentools package. Use when preserving successful code executions for later reuse. Covers creating package structure (api.py, impl.py), defining Pydantic output models, and implementing the run() interface.
- task-planningStructured task planning workflow with user feedback loops. Use when the user explicitly requests planning (e.g., "make a plan", "plan first", "create a plan"). Covers creating plans with actionable steps, iterating based on feedback, saving confirmed plans, and executing step-by-step with progress tracking.