Cline
Cline VS Code agent - including the unique TaskResume state.

Cline's hooks system runs executable scripts in a Hooks/ directory; each script gets the hook event JSON on stdin. The integration here is the simplest of all our coding-agent setups: a one-line bash script that pipes stdin into curl. No Chirp SDK, no Python, no environment variables - just a URL.
Cline is unique in the agent space for its `TaskResume` event - it can resume a paused task mid-flight and fires that hook to signal the resumption. The Chirp activity treats it like a fresh `TaskStart`, so a resumed task appears as a new card on your phone (vs. continuing the prior one).
Prerequisites
- Cline installed in VS Code (or a fork like Cursor).
- Chirp installed on your phone, signed in.
- A Chirp inspector/webhook URL - generate one at chirpapp.dev/dashboard.
Setup
- 1
Pick your hooks scope
Cline reads hooks from two places:
~/Documents/Cline/Hooks/(global, applies to every workspace) or<project>/.clinerules/hooks/(per-project, committable to the repo). Global is fine for personal use; per-project is better for teams who want consistent reporting. - 2
Drop the bash hook script
Single-line script. The shebang and exec'd curl are everything Cline needs. Different filenames map to different events - pre-tool-use.sh fires on PreToolUse, post-tool-use.sh on PostToolUse, etc. Cline auto-detects the event from the filename.
~/Documents/Cline/Hooks/post-tool-use.sh#!/usr/bin/env bash # Cline pipes the event JSON on stdin. Forward verbatim to Chirp; # the server normalizes it for the @cline activity. exec curl -sS -X POST --data-binary @- \ https://api.chirpapp.dev/v1/webhooks/cline?key=YOUR_KEY - 3
Make the script executable
Cline silently skips non-executable scripts. chmod +x is the most common gotcha here.
shellchmod +x ~/Documents/Cline/Hooks/post-tool-use.sh - 4
(Optional) Wire other lifecycle events
Same one-liner, different filenames. Chirp's @cline schema handles all four events - TaskStart starts the activity, PreToolUse appends to the recent-events timeline, PostToolUse back-fills the outcome, TaskComplete/TaskCancel ends the activity green/red.
shell# All four hooks share the same exec line - different files # trigger different events. Make sure each is +x. cp ~/Documents/Cline/Hooks/post-tool-use.sh \ ~/Documents/Cline/Hooks/task-start.sh cp ~/Documents/Cline/Hooks/post-tool-use.sh \ ~/Documents/Cline/Hooks/pre-tool-use.sh cp ~/Documents/Cline/Hooks/post-tool-use.sh \ ~/Documents/Cline/Hooks/task-complete.sh chmod +x ~/Documents/Cline/Hooks/*.sh - 5
Reload the VS Code extension
Cline picks up new hooks on extension load. Cmd+Shift+P → "Developer: Reload Window" or just restart VS Code. From the next Cline session onward, every event flows to your phone.
What you’ll see
Card header: Cline logo + "Cline · WORKING" in cline.bot blue + project name (workspaceRoots[0] basename). Action line shows the current tool call (`read_file · src/auth.tsx`, `execute_command · yarn test`). Verbose mode shows the timeline of recent tool calls. TaskComplete closes the card green with the success message; TaskCancel closes it red. TaskResume on a previously-cancelled task starts a new card with a small "resumed" badge (Chirp-specific signal that the underlying task is mid-flight, not freshly opened).
Troubleshooting
- Card never appears even though Cline is running.
- Cline silently skips non-executable hook scripts. Run
ls -la ~/Documents/Cline/Hooks/and confirm thexbit is set on each .sh file. If they're missing the bit, Cline doesn't even log a warning -chmod +xis the fix. - Card stuck in "working" state after Cline finishes.
- TaskComplete fires only on successful task end. If you closed VS Code mid-task, no terminal event fires. The card auto-expires after 4 hours; pull-to-dismiss in the Chirp app to clear it sooner.
- I want the card to track tasks across multiple VS Code windows.
- Each Cline window gets its own taskId, so each opens its own activity. To consolidate, drop the hook in
<project>/.clinerules/hooks/and use a stable workspace identifier as the activity key - see the per-project section in the script. - I'm getting 401 errors in Cline's developer console.
- The Chirp webhook URL must include a valid
?key=parameter. Get a fresh one from chirpapp.dev/dashboard → Webhook URLs. The key starts withchirp_sk_and shouldn't be URL-encoded - paste it as-is.