1password
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app…
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
$ npx -y skills add bitterbot-ai/bitterbot-desktop --skill coding-agent --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/coding-agentContext preview
The summary Claude sees to decide when to auto-load this skill.
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
name: coding-agent
description: Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
metadata:
{
"bitterbot":
{ "emoji": "🧩", "requires": { "anyBins": ["claude", "codex", "opencode", "pi"] } },
}Use **bash** (with optional background mode) for all coding agent work. Simple and effective.
Coding agents (Codex, Claude Code, Pi) are **interactive terminal applications** that need a pseudo-terminal (PTY) to work correctly. Without PTY, you'll get broken output, missing colors, or the agent may hang.
**Always use `pty:true`** when running coding agents:
# ✅ Correct - with PTY bash pty:true command:"codex exec 'Your prompt'" # ❌ Wrong - no PTY, agent may break bash command:"codex exec 'Your prompt'"
| Parameter | Type | Description | | ------------ | ------- | --------------------------------------------------------------------------- | | `command` | string | The shell command to run | | `pty` | boolean | **Use for coding agents!** Allocates a pseudo-terminal for interactive CLIs | | `workdir` | string | Working directory (agent sees only this folder's context) | | `background` | boolean | Run in background, returns sessionId for monitoring | | `timeout` | number | Timeout in seconds (kills process on expiry) | | `elevated` | boolean | Run on host instead of sandbox (if allowed) |
| Action | Description | | ----------- | ---------------------------------------------------- | | `list` | List all running/recent sessions | | `poll` | Check if session is still running | | `log` | Get session output (with optional offset/limit) | | `write` | Send raw data to stdin | | `submit` | Send data + newline (like typing and pressing Enter) | | `send-keys` | Send key tokens or hex bytes | | `paste` | Paste text (with optional bracketed mode) | | `kill` | Terminate the session |
---
For quick prompts/chats, create a temp git repo and run:
# Quick chat (Codex needs a git repo!) SCRATCH=$(mktemp -d) && cd $SCRATCH && git init && codex exec "Your prompt here" # Or in a real project - with PTY! bash pty:true workdir:~/Projects/myproject command:"codex exec 'Add error handling to the API calls'"
**Why git init?** Codex refuses to run outside a trusted git directory. Creating a temp repo solves this for scratch work.
---
For longer tasks, use background mode with PTY:
# Start agent in target directory (with PTY!) bash pty:true workdir:~/project background:true command:"codex exec --full-auto 'Build a snake game'" # Returns sessionId for tracking # Monitor progress process action:log sessionId:XXX # Check if done process action:poll sessionId:XXX # Send input (if agent asks a question) process action:write sessionId:XXX data:"y" # Submit with Enter (like typing "yes" and pressing Enter) process action:submit sessionId:XXX data:"yes" # Kill if needed process action:kill sessionId:XXX
**Why workdir matters:** Agent wakes up in a focused directory, doesn't wander off reading unrelated files (like your soul.md 😅).
---
**Model:** `gpt-5.2-codex` is the default (set in ~/.codex/config.toml)
| Flag | Effect | | --------------- | -------------------------------------------------- | | `exec "prompt"` | One-shot execution, exits when done | | `--full-auto` | Sandboxed but auto-approves in workspace | | `--yolo` | NO sandbox, NO approvals (fastest, most dangerous) |
# Quick one-shot (auto-approves) - remember PTY! bash pty:true workdir:~/project command:"codex exec --full-auto 'Build a dark mode toggle'" # Background for longer work bash pty:true workdir:~/project background:true command:"codex --yolo 'Refactor the auth module'"
**⚠️ CRITICAL: Never review PRs in Bitterbot's own project folder!** Clone to temp folder or use git worktree.
# Clone to temp for safe review REVIEW_DIR=$(mktemp -d) git clone https://github.com/user/repo.git $REVIEW_DIR cd $REVIEW_DIR && gh pr checkout 130 bash pty:true workdir:$REVIEW_DIR command:"codex review --base origin/main" # Clean up after: trash $REVIEW_DIR # Or use git worktree (keeps main intact) git worktree add /tmp/pr-130-review pr-130-branch bash pty:true workdir:/tmp/pr-130-review command:"codex review --base main"
# Fetch all PR refs first git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*' # Deploy the army - one Codex per PR (all with PTY!) bash pty:true workdir:~/project background:true command:"codex exec 'Review PR #86. git diff origin/main...origin/pr/86'" bash pty:true workdir:~/project background:true command:"codex exec 'Review PR #87. git diff origin/main...origin/pr/87'" # Monitor all process action:list # Post results to GitHub gh pr comment <PR#> --body "<review content>"
---
# With PTY for proper terminal output bash pty:true workdir:~/project command:"claude 'Your task'" # Background bash pty:true workdir:~/project background:true command:"claude 'Your task'"
---
bash pty:true workdir:~/project command:"opencode run 'Your task'"
---
# Instal
Bitterbot - a mesh of agents that turns shared experience into collective capability.
Repo: bitterbot-ai/bitterbot-desktop
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app…
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and…
Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete).…
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.