Tasks and ideas
Space Command finds tasks and ideas in the Markdown and text files you already keep. They're tags in your own files, so they sync, diff, and travel with everything else. This page covers the tags, the Tasks tab, and what happens to your files when you change an item.
Where tasks come from
A tagged section
A ### heading with a tag makes every checkbox under it a task:
### Launch prep #todo
- [ ] Write the release notes
- [ ] Fix the crash on open #p0
- [ ] A dark icon, maybe #idea
- [x] ~~Book the domain~~
The heading shows as a label over its tasks. It has no box of its own: it's done when all its tasks are. A priority on the heading counts for every task under it.
A tagged line
A tag on any line makes that line an item:
Some notes about the week.
Oh, I randomly had an #idea
~~Call the printer #todo~~
A struck-through line reads as done.
Well-known task files
PLAN.md, TODO.md, BUGS.md, IDEAS.md, and TESTING.md need no tags, nor do their other names: TODOS.md, ISSUES.md, TESTS.md, and TEST.md. Space Command reads their checkboxes and reports as they are. In a project's own scope, PLAN.md shows each phase with its progress, and the current phase's tasks listed under it. Click any phase to list its tasks, and again to fold it. An open phase shows a + when you point at it, which adds a task to that phase. Finished phases fold into one line at the top, such as "✓ 10 phases done"; click it to list them. Test files have boxes of their own; see Test rounds.
To stop reading one of them by name:
- Open Settings › Tasks › Task files.
- Under Well-known files, turn off its switch.
Each switch shows how the file is read and how many such files your folders hold. A switch applies to every folder and is kept in the app, never written to your files. Turned off, the file is read like any other note, so only its tagged lines count.
Changelogs (CHANGELOG.md, CHANGES.md, and HISTORY.md) aren't read for tasks, since they mention tags in passing.
To read a project's changelog for tasks:
- Open the project's scope.
- Click the ⓘ on its health card.
- Turn on Read CHANGELOG.md for tasks.
Your own task files
A folder can name its own task files, such as notes/*.txt or every ROADMAP.md. These formats are kept in the folder's .spacecommand.toml, so they travel with it. Settings › Tasks › Task files › Your formats lists the chosen folder's formats, each with how it's read and how many files it matches. They're tried in that order, before the well-known files. A folder without a .spacecommand.toml gets one when you add its first format.
To add a format:
- Open Settings › Tasks › Task files.
- Under Your formats, choose the folder.
- Click +.
- In Files, type a pattern, such as
**/ROADMAP.md. The count under it shows how many files it matches as you type. - Pick how it's read in Read as: Checkbox list, Header report, Tagged lines, or Plan.
- Pick what its items are in Items are: Tasks, Ideas, Principles, or Bugs.
- Click Add Format.
To remove one, select it and click −.
A format that can't be read shows why, and its line in the file, in terracotta. Use its Read as… menu to fix it in place. A format with its own regular expression has Edit in File…, which opens the file at that format.
Changes keep the file's comments and layout. Press ⌘Z in Settings to take one back.
Tags inside fenced code blocks or inline backticks are never items, so you can write about a tag without making one. Neither are tags in an image's alt text or in a link's address; a link's text still counts.
Tags
The tags look in these pages as they do in the panel.
| Tag | Meaning | Also read as |
|---|---|---|
| #todo | An open task | #todos |
| #todone | A completed task | #todones |
| #idea | A captured idea | #ideas, #ideation |
| #focus | The top priority, first in every view | |
| #p0 #p1 #p2 #p3 #p4 | Priority tiers, #p0 highest | |
| #snooze | Hidden until you want it, with no dates | #future, #snoozed |
Any other tag names a project or a category. A line tagged with a project's name, such as #starter-timer, belongs to that project, wherever the line lives:
- In that project, it's an ordinary row you can tick off.
- Where the line lives, it shows read-only, and a click takes you to it.
- In the project's own scope, it's listed under "Tagged #starter-timer", with its file.
A tag no project claims gets a group of its own.
When a tag matches two projects, it links to neither until you choose. Today and All tasks show a card: "#app matches 2 projects. Which does it mean?"
To link the tag:
- Find the card in Today or All tasks.
- Click the project it means, or Not Now.
People
An @handle on a task names who it's assigned to or waiting on, and shows as a chip:
- [ ] Send the cover proofs @sam #todo
There's no team list to keep: the people come from your tasks. Email addresses, dates like @2026-10-17, and @today, @tomorrow, and @yesterday aren't handles.
The Tasks tab
The title at the top of the panel is the scope menu. Click it to choose what the tab shows:
| Scope | Shows |
|---|---|
| Today | Your focus, a card of every open #p0, every #p0 and #p1 in its group, tasks added or changed today or yesterday, and ideas first seen in the last two days |
| All tasks | Everything open, grouped by project |
| All projects | The projects board (see Projects and health) |
| A project | Just that project, with its health and plan above its tasks |
A project inside another project is indented under it in the menu.
Today goes by each task's own line, not its file. Editing one line of a busy PLAN.md brings in that task only, not every open one in the file. Tasks already in a file when Space Command first read it count as old.
Today keeps to a budget, so a busy day still reads at a glance. Your focus, the #p0 card, every #p1, and ideas always show. The other rows fill up to 3 per project and 12 in all: finished rows first, then lines changed today, then yesterday, newest first.
| You see | Click it to |
|---|---|
| N more, at the end of a project | Show the rest of that project's rows. Fewer folds them again. They stay open until you leave Today. |
| N more in K projects, at the end of Today, with their names under it | List the projects that had no room. |
Finished rows keep their place until you choose Squash Done. The rows that take their place arrive with a Sage tint that fades.
In Today and All tasks, click a project's name on its group's line to go to that project's scope. In a project's scope, click the ‹ before the title to go back to the list you came from, Today or All tasks.
The scope menu's Show submenu picks All, Tasks, or Ideas. Clicking the Tasks tab while it's open steps through those three. With one kind hidden, the title says so, as in "Today · Ideas".
Below a line, Show also narrows the list to one kind of file, tasks and ideas alike:
- Plan: items from
PLAN.md, with its phases. - Tests: items from
TESTING.md,TESTS.md, orTEST.md. Tests show only under All and Tests, on every scope, and the progress line doesn't count them. - Bugs: items from
BUGS.mdorISSUES.md.
The title names the file choice, as in "starter-timer · Bugs", and search looks only in those files. A choice the scope has no file for is greyed out. Clicking the Tasks tab goes back to All. The focus card still shows whatever you pick.
The scope follows you between tabs. In a project, the Posts tab opens on that project's site, and the Clipboard tab on its copies. From an All scope, or a project the other tab has nothing for, it opens on that tab's All. Coming back, Tasks returns to whichever of Today, All tasks, or All projects you had last.
While you search, only the focus card and the results show. The project's health and other cards come back when you clear the search.
Items group by project. Folders that aren't projects group under their folder's name, and an Obsidian vault gets its own group. In each group, tasks come first and ideas follow. Within a section, rows go by priority, then in the file's order. Today lists its rows the same way.
Snoozed items stay out of every list. ⌘F search still finds them, dimmed, with Unsnooze to bring them back.
Changing an item
To complete a task, click its box. Click it again to reopen it.
To change a task:
- Click the task. Its actions open under it.
- Click one:
-
p0top4set its priority. Clicking the current one clears it. - Snooze sets it aside. On a snoozed item, found by search, it reads Unsnooze. - Focus makes it the focus. On the focus itself, it reads Remove Focus.
A task that takes its focus from its heading, with no #focus of its own, is put aside with Snooze instead, where Remove Focus would be. F does the same as S. Snooze writes #snooze on the task's own line, so the heading's next task takes the focus, and Unsnooze (or ⌘Z) brings it back. The heading is never changed. If the heading is snoozed too, Remove Focus stays and explains, such as "Its focus comes from its heading, Goals."
To change an idea:
- Click the idea.
- Click one: - Snooze sets it aside, or Unsnooze brings it back. - Let Go finishes it, the way completing a task does. - Make a Task turns #idea into #todo on the same line.
The right-click menu has all of these, plus Open, Open With, and Show in Finder.
A row longer than two lines is cut short with "…", with its tags at the end of the second line. Clicking it shows the full text, along with its actions. To fold it again, click it a second time, press Esc, or pick another row. A finished task, or a line tracked in another project, opens its file instead.
Wiki links
Obsidian-style wiki links show as their text, styled like a link:
| In the file | Shows as |
|---|---|
[[note]] |
note |
[[note|alias]] |
alias |
[[note#heading]] |
note › heading |
Click a link to open the note in your Markdown editor. That works when its name matches exactly one note anywhere in the same granted folder, as in an Obsidian vault. Otherwise the link reads as plain text, never a guess.
Embeds, ![[…]], are hidden. Your file isn't changed.
What gets written
Every change goes to the line in your file:
- Completing a tagged line ticks its box, if it has one, and changes #todo to #todone.
- Completing a task under a tagged heading ticks its box only.
- Completing a
BUGS.mdreport moves it to the end of its## Fixedsection. - Priorities, snoozes, and focus add or remove the tag.
No dates are added. Before writing, Space Command checks that the file hasn't changed since it was read, and only that line changes. Press ⌘Z to undo the last change while the panel has the keyboard.
Scanning never writes. If a box and a tag disagree, the item reads as done.
Test rounds
A test file (TESTING.md, TESTS.md, or TEST.md) is a checklist you run through again for each release. Its boxes have three states: not run, passed, and failed.
| You do | It does |
|---|---|
| Click a box that hasn't run | Passes it, with a Moss tick |
| Click a passed box | Fails it, with a Terracotta × |
| Click a failed box | Passes it |
| ⌥-click a box | Fails it in one go, or clears a fail back to not run |
A pass is written as [x]. A fail is an open box with #fail, as in - [ ] The Dock badge #fail. A [!] box reads as failed too, and is left as it is, since Space Command never writes one. Each change is one write, and ⌘Z takes it back.
Each test section shows a tally under its heading: a bar with passed in Moss and failed in Terracotta, then words such as "30 passed · 2 failed · 4 to run". It counts every test in the section, shown or not.
A new round
When a release is ready for testing again, start a new round:
- Point at a test section's heading and click ↺, or right-click the heading and choose New Round…. Once every test has run, New Round… is also on the tally.
- Check For version. It's filled in from the top entry of the project's
CHANGELOG.md, and you can change it. - Leave Clear Result lines on to empty each test's Result line, or turn it off to keep them.
- Under Log failures in BUGS.md, tick the failures to log. One already logged and still open says "already there".
- Click New Round.
The passed tests are unticked. A failed test keeps its #fail until it passes. The round that ended is logged under the file's title, newest first:
- 2026-10-21 · 0.89.0: 30 passed, 2 failed (T28, T37), 4 not run · new round for 0.90.0
Those log lines are never read as tests.
The failures you ticked go to the project's BUGS.md (or ISSUES.md), or else TODO.md, which is made if need be. Each goes at the end of its ## Open section, or of the file, boxed as that file's open entries are:
- [ ] **T28 failed: The Dock badge (0.89.0).** Its Result note
Both files change in one write, and one ⌘Z puts both back.
Finished tasks
A task you finish stays in the list, struck through, through the next day, so a misclick is easy to undo. Then it rolls off.
To clear finished items sooner:
- Open Settings › Tasks.
- Under Finished items, choose Clear finished items: - After 1 minute - After 3 minutes - After 15 minutes - After an hour - At the end of the day - The next day (the default)
The time counts from when Space Command first saw the item done. With a minutes or hour choice, a row clears even while you watch, fading out after its tick. At the end of the day and The next day wait until you leave the view. Cleared items are still found with ⌘F.
To clear one section's or group's finished tasks sooner:
- Right-click the section's heading, or the group's line.
- Choose Squash Done.
To clear the whole list's finished tasks:
- Click the ⋮ at the end of the panel's header.
- Choose Squash Done, as in "Squash Done in Today".
Your files aren't changed. Press ⌘Z to bring the rows back.
Tasks that were already done the first time Space Command read their file never show, so your lists start clean.
Adding a task
To add a task:
- Click the + at the end of a group's line.
- Type the task. Add #p0 to #p4 to set its priority.
- Press Return.
The task is written as - [ ] text #todo to the project's TODO.md, and the field stays open for the next one. Press Esc to close it.
To choose where the task goes:
- Under the field, click the line that says where it goes, such as "to TODO.md › Methods".
- Pick Top of file, one of the file's
##sections, or another of the group's task files.
The section you last used in a file is picked next time.
To add a task to a particular section:
- Right-click the section's heading.
- Choose Add Task Here.
- Type the task, and press Return.
Under a tagged ### heading, the task goes in as a plain - [ ] text, since the heading carries the tag.
If the project has no TODO.md, you're asked before it's made: Create TODO.md makes it with your task, Cancel takes you back to the text, and Choose Another File…, when the group has other task files, picks one of those. Settings › Tasks › Add new tasks to names a different file. Vaults and folders that aren't projects get a + only when they already have that file.
Focus
#focus marks what you're working on now. Its card leads every tab, and when you finish it, the card offers what's next without picking it for you. See Focus and calm for setting a focus, queueing several, the daily question, and the progress line.
The menu bar dot
A Terracotta dot beside the mark means there's an open #p0 somewhere. It goes when the last one is done or snoozed, and hides while Quiet Mode is on. Today lists them in a card of their own; see The menu bar dot.
In a notes file, a ### heading #p0 makes the items under it #p0; the heading itself doesn't count. In a task file like TODO.md, a heading's tags don't pass to its items.