بنقرة واحدة
tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Search and install agent skills from ClawHub, the public skill registry.
Schedule reminders and recurring tasks.
End-to-end data preprocessing pipeline to transform raw files (CSV, Excel, Parquet) into AI-Ready assets. Use this skill when the user requests to clean data, handle missing values, fix data types, remove duplicates, standardize formats, or prepare datasets for model training. Includes automatic profiling and dataset card generation.
Convert structured data (CSV/Parquet/Excel) into semantic, readable text documents or experimental reports for LLM fine-tuning. Use when the user wants to transform tabular data into natural language narratives, generate training corpus, or create AI-Ready text documents from datasets. Output is Markdown format ready for further processing.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Generate images for existing SFT datasets (JSON/JSONL) to build multimodal fine-tuning data; use when you need to add image prompts, descriptions, and saved image files for each QA pair or conversation, via SubAgents + image_generate tool.
استنادا إلى تصنيف SOC المهني
| name | tmux |
| description | Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output. |
| metadata | {"nanodata":{"emoji":"🧵","os":["darwin","linux"],"requires":{"bins":["tmux"]}}} |
Use tmux only when you need an interactive TTY. Prefer exec background mode for long-running, non-interactive tasks.
SOCKET_DIR="${NANODATA_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/nanodata-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/nanodata.sock"
SESSION=nanodata-python
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'PYTHON_BASIC_REPL=1 python3 -q' Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
After starting a session, always print monitor commands:
To monitor:
tmux -S "$SOCKET" attach -t "$SESSION"
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
NANODATA_TMUX_SOCKET_DIR environment variable."$NANODATA_TMUX_SOCKET_DIR/nanodata.sock".session:window.pane (defaults to :0.0).tmux -S "$SOCKET" list-sessions, tmux -S "$SOCKET" list-panes -a.{baseDir}/scripts/find-sessions.sh -S "$SOCKET".{baseDir}/scripts/find-sessions.sh --all (uses NANODATA_TMUX_SOCKET_DIR).tmux -S "$SOCKET" send-keys -t target -l -- "$cmd".tmux -S "$SOCKET" send-keys -t target C-c.tmux -S "$SOCKET" capture-pane -p -J -t target -S -200.{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern'.Ctrl+b d.PYTHON_BASIC_REPL=1 (non-basic REPL breaks send-keys flows).darwin/linux and requires tmux on PATH.tmux excels at running multiple coding agents in parallel:
SOCKET="${TMPDIR:-/tmp}/codex-army.sock"
# Create multiple sessions
for i in 1 2 3 4 5; do
tmux -S "$SOCKET" new-session -d -s "agent-$i"
done
# Launch agents in different workdirs
tmux -S "$SOCKET" send-keys -t agent-1 "cd /tmp/project1 && codex --yolo 'Fix bug X'" Enter
tmux -S "$SOCKET" send-keys -t agent-2 "cd /tmp/project2 && codex --yolo 'Fix bug Y'" Enter
# Poll for completion (check if prompt returned)
for sess in agent-1 agent-2; do
if tmux -S "$SOCKET" capture-pane -p -t "$sess" -S -3 | grep -q "❯"; then
echo "$sess: DONE"
else
echo "$sess: Running..."
fi
done
# Get full output from completed session
tmux -S "$SOCKET" capture-pane -p -t agent-1 -S -500
Tips:
pnpm install first before running codex in fresh clones❯ or $) to detect completion--yolo or --full-auto for non-interactive fixestmux -S "$SOCKET" kill-session -t "$SESSION".tmux -S "$SOCKET" list-sessions -F '#{session_name}' | xargs -r -n1 tmux -S "$SOCKET" kill-session -t.tmux -S "$SOCKET" kill-server.{baseDir}/scripts/wait-for-text.sh polls a pane for a regex (or fixed string) with a timeout.
{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]
-t/--target pane target (required)-p/--pattern regex to match (required); add -F for fixed string-T timeout seconds (integer, default 15)-i poll interval seconds (default 0.5)-l history lines to search (integer, default 1000)