Repository navigation
v3.18.0
fastf 3.18.0: todo owners, the hat, fastf agent, the desk and fastf peek
Nothing about an existing project changes. Every PROJECT_INFO.md,
config.toml and template works untouched, and no command, flag or file format
was removed. A todo nobody dates or gives an owner is written as it always was.
This release is for one person keeping track of many projects at once, with
agents working inside them. A todo can now carry an owner: a name you write
for yourself to say who the todo is with, such as an agent or a client. From
that and the folders alone, fastf answers which todos are yours, which are
with an agent or a client, and which projects have gone quiet.
Todos carry their owner and their dates
A todo's line may end in @owner, added:<stamp> and done:<stamp>, each a
plain token a person or an agent can write by hand.
- [ ] colour grade @claude added:2026-10-12T14:02:11Z
- [x] shoot @sales added:2026-09-20T10:00:00Z done:2026-09-28T18:30:00Zfastf todo addwritesadded:;todo donewritesdone:and--undo
removes it;todo editkeeps the tokens;todo owner <id> <n> <name>(or
--none) changes the owner;--ownerand--mineontodo addset the
owner as the todo is written.todo listshows the owner and the day.- In the pane the owner and the day sit at the row's right, and
Oon a
todo sets its owner: an owner the list already names, the hat, nobody, or
a name you type. - A template's starter todos may end in
@owner, so a new project starts
with those owners on those todos. fastf journal --todoslists every ticked todo (and with--todos=all,
every added todo) between the notes, each row saying which it is; the JSON
rows gainkind.- Only the tokens at the end of the line count. A
@wordin the middle of
the text stays text. - A line without these tokens is a todo without an owner and without dates,
and nothing fills them in: fastf does not know when it was written.
The hat
fastf hat sales sets the hat to @sales. The hat is the owner name you
use for your own todos: the app's header shows it, the desk lists the todos
with that owner under yours, todo add --mine uses it, and FASTF_HAT sets it
for one shell without writing the config file. Nothing else reads it; the hat
never changes what a file says.
fastf agent
agent = "claude" in config.toml (or fastf config set agent claude) names
one shell line, the shape a post-create command has. fastf agent <query>
runs it with the project as its working folder and FASTF_PROJECT_PATH set,
in the terminal you are in, so you never cd. From a desktop launcher it opens
a terminal window running the agent. In the app, x opens a new window
per agent so the desk stays up, and X runs it in the same terminal: the
app steps aside until the agent exits and re-reads the pane when it comes
back. fastf keeps no list of running agents: what the agent wrote in the
folder is its status.
The desk
w in the app, and fastf desk on the command line: every project as
one line, grouped by the owner of its next open todo. The next open
todo is the first unticked todo in the file. The groups are yours (the
hat), @claude, @acme, no owner (the next todo has no @name) and
no open todos. Within a group the project nothing has written in for the
longest comes first. Each line says how long the project has been quiet,
active when a program is working in it right now (Linux, from the process
table), and ⚠ when the next todo has an owner, nothing has been
written in the folder for three days, and no program is working in it. No due
dates, no priorities, no lifecycle to set.
fshows one group alone,For Esc every group again;s/Schange the
order within a group (quiet, recent, name, id);zputs the cursor on a
project picked at random. The desk's pane is the library's pane and every
project verb works on the row under the cursor. Esc steps back to the
library;wtoo.- The records are read once each, a base at a time, and checked against the
disk every ten seconds while the desk is on screen, so a todo an agent
ticks moves its project to the right group without a keypress. - On the command line:
fastf desk --mine,--owner claude,--no-owner,
--no-open-todos,--quiet 7,--random,--order,--as <hat>,
--json. On a terminal it opens the app on the tab;--plainprints the
list. - A bare
fastfopens on the desk when it was quit there; the session
remembers the group, the order and when the desk was last open.
What is going on in a project, without opening its folder
fastf peek <query>prints one project's summary: the next open todo
and its owner, the todo counts, which programs are working in the folder (Linux),
the newest file under it, the repository's head (read from.gitas files,
nogitstarted), the last note, and how long the project has been quiet.- The pane gains a
glancesection ahead of the variables:last moved
(the newest file under the folder, from the size scan; a dot-folder such as
.gitis skipped),head, andworking(the programs whose working
folder is inside the project, checked once a second while the pane shows
it; Linux). Lgains a journal page: every dated note and every todo added or
ticked across every project, newest first, with a rule where the desk was
last open, so what happened since you last looked is above the rule.
Smaller things
- The header keeps all three tabs down to forty columns.
fastf show --jsoncarries the todos'owner,addedanddone_at.- The settings screen has
hatandagentrows besideeditor.
Full key list: docs/app.md;
the desk: docs/cli.md.
What's Changed
- packaging: bump both AUR packages to 3.17.1-1 by @cristocola in #124
- ci: bump actions/upload-artifact from 7.0.1 to 7.0.2 by @dependabot[bot] in #126
- ci: bump dtolnay/rust-toolchain from 02cb101ec7c40f2c49e1d9714d64511d8e1b74de to e2a55d2ffb04f378e9626c28d38b36d230d1e12f by @dependabot[bot] in #127
- ci: bump actions/download-artifact from 8.0.1 to 8.0.2 by @dependabot[bot] in #128
- fastf 3.18.0: todo owners, the hat, fastf agent, the desk and fastf peek by @cristocola in #129
Full Changelog: v3.17.1...v3.18.0