By tabtabtabai
Remote-control tabtabtab from Claude Code: create envs, add repositories, run and steer remote agents (kick/tail/send/status), manage webhooks, and build automations via the meta agent — through the official tabtabtab CLI.
A skill/plugin that teaches Claude Code and Codex to remote-control the
tabtabtab platform through the official
tabtabtab CLI: create cloud dev
environments, put repositories on them, start and steer remote agents (watch
their output live in your terminal), manage webhooks, and have the meta agent
build automations — all by just asking your local agent.
you ── Claude Code / Codex ── tabtabtab CLI ──► api.tabtabtab.ai (auth, envs, repos)
└──► <your-env>.tabtabtab.app (agents, webhooks, meta agent)
Ask your local agent things like:
- "create a tabtabtab env called demo-box and put acme/app on it"
- "kick off an agent on demo-box to fix the failing tests, and watch it"
- "what are my remote agents doing right now?"
- "set up a weekday-9am automation that reviews open PRs and posts a digest"
- "create a webhook for app that our alerting system can call"
| Piece | Path | What it does |
|---|---|---|
| Claude Code plugin | .claude-plugin/ + skills/ + commands/ | Skill + /ttt slash command |
| Codex prompt | codex/ttt.md | /ttt custom prompt for Codex CLI |
| Installer | install.sh | Installs the CLI + skill + prompt |
The CLI itself is the first-party tabtabtab package on PyPI —
this repo adds no second CLI, just the agent-facing skill around it.
Everything at once:
git clone https://github.com/tabtabtabai/tabtabtab-skill.git
cd tabtabtab-skill && ./install.sh
Claude Code, as a plugin:
/plugin marketplace add tabtabtabai/tabtabtab-skill
/plugin install tabtabtab@tabtabtab
Just the CLI: pip install tabtabtab (or uv tool install tabtabtab, or
curl -fsSL https://tabtabtab.ai/install.sh | sh).
The
agentandwebhookcommand groups need a recent CLI. Iftabtabtab agent --helperrors, upgrade:pip install --upgrade tabtabtab.
tabtabtab auth login # browser OAuth
tabtabtab env create --name demo-box --git-user-name "Ada" --git-user-email [email protected]
tabtabtab env use demo-box
tabtabtab repo add https://github.com/acme/app.git --yes
tabtabtab agent kick "Run the test suite and fix any failures" --project app --watch
# streams the remote agent's output right here until it finishes
env create / list / info / use / destroy, ssh, upload <files> --to <path>
(rsync — any file type or size), open (attach a local editor).
repo add <git-url> (registers + clones onto the env), repo list,
repo sync, repo env list/add/rm (per-repo secrets).
| Command | What it does |
|---|---|
agent kick "<prompt>" | Prompt the meta agent (the env's orchestrator) |
agent kick "<prompt>" --project app | Fresh agent session in one project |
agent kick ... --watch | Stream the run in your terminal until idle |
agent list | Recent sessions with busy/idle state |
agent tail <id> [--follow] | Read (or live-stream) a session's messages |
agent last <id> | Just the final assistant reply — script-friendly |
agent send <id> "<msg>" [--queue] | Follow up on an existing session |
agent abort <id> | Cancel a run |
agent status | Everything at a glance: runs, attention items, PRs, automations |
Session IDs accept unique prefixes. Everything supports --json.
agent kick without --project reaches the env's persistent meta agent,
which orchestrates the whole machine. Ask it in plain English to create
automations (cron-scheduled prompts — daily/weekdays/weekly/RRULE),
run durable jobs (tracked long-running work with background checks, e.g.
"keep rebasing PR #42 until CI passes and it merges"), spawn workers
across repos, or create projects and worktrees.
webhook create <name> [--project app] returns a secret URL; every JSON POST
to it starts an agent run (project targets get a fresh git worktree per call):
curl -X POST -H 'Content-Type: application/json' \
-d '{"message": "CI failed on main — investigate and open a fix PR"}' \
https://demo-box.tabtabtab.app/webhooks/<token>
webhook list (URLs masked; --reveal for the full secrets) and
webhook revoke manage them. The URL is the credential.
~/.config/gv/config.json (mode 0600).env info --reveal prints a real password; don't paste it into logs.Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub tabtabtabai/tabtabtab-skill --plugin tabtabtabHarness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.