ftask

Your AI agent hit a wall only a human can climb.

Agents cannot pay, verify an ID or click through a cloud console. ftask is the inbox where they hand you the exact steps, with values to copy, links to open and files to download, and where they wait for your Done.

pipx install ftask

or uv tool install ftask. Version 0.2.0. Python 3.9+, Linux and macOS. Free and open source (MIT).

The agent waits; you finish the job; the agent carries on.

A throwaway demo board: the agent adds a task, a person ticks the steps and presses Mark done, and the agent is notified.

Animated demo: a terminal where an agent adds a task and waits, the ftask board where the person ticks steps and presses Mark done, and the terminal showing the agent notified

The agent stalls. You get a paragraph in chat.

There are things an agent cannot do for you, however good it is. When it hits one it writes a wall of text, loses the thread, and you scroll to find the one value you needed.

How it works

  1. The agent adds a task

    One shell command, with the exact values and links. Re-running it with the same key updates the task instead of duplicating it.

  2. You work through it in a browser

    Copy buttons for values, links that open, files to download, a box for a note back. Tick steps as you go.

  3. You press Done; the agent wakes up

    ftask wait returns in the background session, with your note, uploads and ticked steps. It carries on from there.

# agent
$ ftask add --project Website --title "Renew the domain" \
    --key website/renew-domain \
    --step "Open the registrar" --link https://registrar.example.com/domains \
    --step "Enter this coupon" --value "RENEW-2026"
created k3m9xq [website/renew-domain]
$ ftask wait website/renew-domain --for done   # in the background
... you press "Mark done" ...
done website/renew-domain
note: "paid, receipt is in the invoices folder"
cursor: 42

Built for the handoff, not just the ping

Exact values, one click

Every step can carry a value in a monospace block with a Copy button, and the exact URL to open. No hunting through chat.

Files both ways

Agents attach files for you to download, with the full path to paste into file pickers. They can ask you for a file and read it from disk when you upload.

Wakes the agent

ftask wait blocks until you act. Run it in the background and the session is notified the moment you finish.

Your reply is an instruction

Write a note on any task. The agent reads it with ftask notes and treats it as the answer.

Idempotent by key

Stable keys mean a re-run plan updates tasks in place. Done stays done. Priorities, estimates and a Waiting lane keep the list honest.

Replies find the right agent 0.2.0

ftask remembers which terminal pane or session created each task and hands it to your hooks, so a reply can be pushed straight into that agent, or queued for its next session. Example hooks for herdr, Claude Code and Codex are in the repo.

Local and boring

One SQLite file. Python standard library only. No account, no cloud, no telemetry. Binds to localhost.

Works with the agent you already use

Anything that can run a shell command. One command writes the instructions into your AGENTS.md (Codex and others) or CLAUDE.md (Claude Code).

$ pipx install ftask
$ ftask serve --open            # the board: http://localhost:4747
$ ftask snippet >> AGENTS.md    # teaches the agent to use it

Optional: ftask service install keeps the board running at login (systemd on Linux, launchd on macOS).

Where it fits

If all you need is allow or deny on a phone, other tools do that well and you should use them. ftask is for jobs with several steps outside the terminal.

NeedGood fit
Approve or deny a tool call from your phoneClaude Code notification and permission hooks, ntfy-based approvers, Pushary, Happy
A general backlog for peopleLinear, GitHub Issues
A multi-step job for a human, with values to paste, links, files each way, and a wake-up when doneftask

Honest limits today: no phone push, no hosted sync, one human per board.

Pricing

ftask

Free
  • Everything above
  • MIT licence
  • Local, no account
Under consideration

Phone notifications

Not built yet
  • Push to your phone when an agent needs you
  • Would be a small paid add-on

Tell us if you want it

Waitlist

The free tool is complete. These paid extras are only ideas so far, and I will build them only if enough people ask. Tick what you would use and leave an email; I will write when there is something to try, and not before.

I would use

Privacy. I store your email, the boxes you ticked, your note and the date, in Cloudflare storage, only to tell you about these features. No tracking, no cookies, nothing shared or sold. To have your entry deleted, email support@turbokast.com. Run by TurboKast Ltd, company number SC881077.

Questions

Does it send my data anywhere?

No. Tasks and files live in a SQLite database and a folder on your machine. There is no telemetry and no account.

Can the agent run commands via the board?

No. The board is a list for a human. Tasks are created only through the local CLI, never over HTTP. Optional notification hooks run commands you wrote yourself.

Is it safe to expose on a network?

No. There is no login, so it listens on 127.0.0.1 only and rejects foreign hosts and cross-origin writes. Keep it local.

Which agents work?

Any agent with a shell tool. Instructions for Claude Code and Codex are one command away. Background waiting works best where the agent can run a command in the background and be told when it exits, as Claude Code can.

Can it tell my agent when I reply, even if the agent is idle?

Yes, since 0.2.0, with a hook. ftask records which terminal pane, session and folder last touched each task and passes it to your hook as FTASK_OWNER. The example hook types the reply into that agent's herdr pane, or queues it so Claude Code or Codex shows it at the next prompt. It is an example you install yourself, not on by default.

Windows?

Not yet. Linux and macOS.