Use Taskhold with Goose
By Jake Marsh, who builds Taskhold. Updated 2026-10-26. Facts about other tools checked 2026-10-26. 3 min read.
Goose is an open source agent that runs in a terminal or its desktop app and loads tools as extensions. Taskhold plugs in as a remote extension: a task list you fill in the browser, that Goose plans into steps and reports on while you watch the live board.
Goose reads AGENTS.md first, the same file Codex and OpenCode read, so one copy of the workflow serves all of them.
What you get with Goose and Taskhold
- Goose claims tasks as "Goose in <repo>" and works through them in priority order.
- Steps, percent done and its current step on the live board, plus questions you answer from there.
- Summaries on finished tasks, visible from your phone.
Connect Goose to Taskhold
- Start the 7-day trial, open Settings > API keys and create a key for this machine. It starts with atd_sk_. One key per tool and machine lets you revoke each one on its own.
- Export it in your shell profile: export TASKHOLD_API_KEY=atd_sk_...
- Add the extension to ~/.config/goose/config.yaml, then start a new Goose session.
extensions:
taskhold:
type: streamable_http
name: taskhold
enabled: true
uri: https://taskhold.com/api/mcp
headers:
Authorization: "Bearer ${TASKHOLD_API_KEY}"
env_keys:
- TASKHOLD_API_KEY
timeout: 300Tell Goose how to use the list
Goose looks for AGENTS.md, then .goosehints, in the directory you start it from. Add the workflow to AGENTS.md:
## Tasks (Taskhold)
The person and I share a task list through the taskhold MCP tools. They watch a live board while I work.
- Session start: taskhold_get_current, then taskhold_updates for replies. Nothing in progress? taskhold_list status:todo and take the highest priority.
- taskhold_start before working on a task (agent: "Goose in <repo>").
- More than a couple of steps: taskhold_plan, then taskhold_start and taskhold_complete each step.
- taskhold_progress at milestones (N of M, or a percent) with a short message. Every few minutes at most.
- Need a decision: taskhold_block with one specific question, then check taskhold_updates.
- Done: taskhold_complete with what changed and how I checked it.
- A TODO or bug I'm not fixing now: taskhold_create (or taskhold_create_from_todo with file and line).One limit to know
Goose's docs describe ${VAR} expansion for OAuth settings but not for headers; header expansion is in its source code (crates/goose/src/agents/extension.rs) and works only when the variable is listed in env_keys. Leave env_keys out and Goose sends the literal text ${TASKHOLD_API_KEY}, which Taskhold rejects with 401.
What leaves your machine, and how to disconnect
Taskhold receives task titles, steps, progress messages, questions and summaries, whatever the agent or script sends. Taskhold never sends code or commands to your machine, and it doesn't read your repository.
To cut a tool off, open Settings > API keys and revoke its key. The next call fails with 401. Then remove the Taskhold entry from the tool's config so it stops trying.
See how far along your coding agents are.
$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.
Sources
- Goose docs: config files, checked 2026-10-26
- Goose docs: using extensions, checked 2026-10-26
- Goose docs: using goosehints and AGENTS.md, checked 2026-10-26
Related
Updated 2026-10-26. Something wrong or out of date? Email hello@greatwork.company.