InboxQL Documentation

Using it

Your board

Your to-dos and projects: lists, cards, checklists, labels, boards and rules — and the mail behind them. · 7 min read

A message is something that happened: it arrived, and it will never change. A card — a ticket — is something to do: it starts as an idea, gets worked, and gets done. The board is where your to-dos and personal projects live, with what Trello has for one person, and one thing it has not: a card can point at the mail it came from. You own every card; the machine can suggest one, but it never changes a list, title or date you set.

Where cards come from

By hand. “Add a card” at the bottom of any list, File → New task (t), or from a terminal:

iql ticket new "Paint the fence" --label home --due 5d
iql ticket new "Send Acme the signed contract" --message <id> --due 2026-10-17

With --message, the card is filed in that message’s conversation, so it appears beside the mail on the Desk when conversations are shown, and it starts with that conversation’s topics as labels.

Proposed from your mail. When your AI harness reads your mail (Reading your mail), the tasks it finds arrive as proposals. An extractor of your own can propose them too (see Labels):

iql ticket propose actions --dry-run           # what would be proposed
iql ticket propose actions --auto-accept 0.9   # propose; accept the very confident ones

Anything below the bar waits in Proposed. Accept one to move it to your first open list; reject it and it is kept, marked rejected, because a rejection is the evidence that the extractor was wrong. There is one card per conversation per extractor: running it again adds newer mail to the card and never makes a duplicate. Two cards that are really one can be merged — always by you, never guessed.

Made by a rule when mail arrives — see Automation.

The board

Go → Board (g b). Lists run left to right; you start with Proposed, To do, Doing and Done.

  • Drag a card to any place in any list. Where you drop it is where it stays: order within a list is yours, and a new card goes to the bottom.
  • Open a card by clicking it, or with Enter.
  • Add a card at the bottom of a list; it stays open, so a run of cards is a run of Enters.
  • Narrow the board with the box above it — label:home, due:14d, from:*@acme.com, or plain words. The lists stay put while you narrow it, which keeps dragging unambiguous: dropping a card in a list puts it there, and nothing else.

With a card focused (Tab to it):

Key Does
↑ ↓ ← → move between cards and lists
Shift + ↑ ↓ move the card up or down its list
Shift + ← → move the card to the next list
Enter open it
c archive it

Boards

The name at the top left is the board. A board is a named filter over the same lists: “Home” might be label:home, “This week” due:7d. New board in that menu makes one; the pencil beside a board edits or deletes it. A card added on a board is given the labels its filter names, so it does not vanish from the board you added it on. All cards is every card.

Your own lists

Add another list at the right of the board. A list’s ⋯ menu renames it (or click its title), moves it left or right, archives it, or deletes it. Deleting a list with cards asks where they go; a card is never deleted as a side effect.

A list is open (work to do) or finished — Done is finished. Moving a card into a finished list marks it complete: its due date turns green and state:closed finds it. Make any list finished from its menu: Cards here are finished. There is always at least one open list and one finished list, and exactly one Proposed list, where proposals land.

A list’s name can change freely; what status: matches is its id, which does not. A list made as “Waiting on vendor” is status:waiting-on-vendor for good, whatever you rename it to.

A card

Click a card to open it.

  • Title — click to edit.
  • List — move it from the menu under the title.
  • Labels — the + picks from the labels in use and the topics on your mail, or makes a new one. The palette beside each sets its colour.
  • Start and due dates — a due date shows on the card: yellow when it is within a day, red when it has passed, green once the card is in a finished list.
  • Priority — high, medium or low.
  • Description — in Markdown: **bold**, - lists, and links, which open in your browser. ⌘↵ saves.
  • Checklists — as many as you like, each with its own progress bar. The card’s front shows how many items are done.
  • From this mail — the messages behind the card. If a card cannot be traced to its mail, something is wrong.
  • Activity — your comments, and the card’s history: when it moved, what was added and ticked, and who did it — you, the AI that proposed it, or a rule.
  • Archive takes it off the board; Delete removes it. Its mail is untouched either way.

Labels are topics

A card’s labels and the topics on your mail are one vocabulary. A card raised from mail starts with its conversation’s topics; after that they are the card’s own. In a query about cards, label: and topic: both mean the card’s labels — in:tickets label:home — while topic:home on its own is still about mail.

Archive

Archived cards and lists are off the board, not gone. Archived above the board lists them, to open or send back. Queries about cards leave archived ones out unless they say archived: — the way Trash is left out of mail.

On the calendar

Cards with a due date appear on the Calendar as all-day entries under Cards due, which you can hide like any calendar. Click one to open the card; drag it to another day to change its due date.

Automation

Automation above the board holds rules. A rule is a trigger and some actions:

  • When a card enters a list — tick every checklist item, add or remove a label, set or clear the due date, set the priority, or archive it. “When a card enters Done, tick everything and archive it.”
  • When mail arrives matching a query — make a card in a list, one per conversation, with labels, a due date or a priority. “Mail from my landlord makes a card in To do, labelled home, due in 3 days.” A rule acts on mail that arrives after it was made; ▶ runs it over older mail too. Mail rules run after every sync.

Nothing a rule does moves a card between lists, so one rule can never set off another. What a rule did is in the card’s activity, credited to the rule.

Asking about cards

Card fields are query terms, so the same language that filters mail filters cards:

Term Matches
status: / list: the list a card is in, by id: todo, doing, one of yours; status:* is every card
state: open, closed (in a finished list), proposed, rejected
label: / topic: a label on the card — a whole word; label:home* for a prefix
due: due on or before — due:7d is the next seven days, looking forward
start: starting on or before
priority: its priority
ticket: words in the title
comment: words in its comments
checklist: words in its checklist items
archived: yes, no, or * for both
raised: human, annotator, agent or rule
a bare word the card’s title, description, comments and checklist, or its mail

A mail field inside a card query asks about the card’s evidence:

state:open due:7d
in:tickets label:home -state:closed
status:* from:*@acme.com          cards whose mail came from Acme
status:* | count by status
status:todo | timeline            each conversation, and what it caused, in order

From a terminal

Everything the board does, iql ticket does, so an AI harness can run the board too:

iql ticket board [--board home]                 the lists and their cards
iql ticket show <id>                            everything on a card
iql ticket edit <id> --due 2026-11-02 --body -  change it (the description from stdin)
iql ticket move <id> doing [--after <id> | --top]
iql ticket label <id> home,garden               unlabel takes them off
iql ticket checklist <id> add "Buy primer"      done, undo, edit, remove…
iql ticket comment <id> "Rang, no answer"
iql ticket archive <id>                         restore puts it back
iql ticket lists add "Waiting on vendor" --after todo
iql ticket boards add Home --filter "label:home"
iql ticket rules add --when enters:done --do check-all --do archive
iql ticket rules add --when mail --query "from:landlord@example.com" --list todo --do add-label=home

An id can be the first eight characters iql ticket list prints. iql ticket show prints the iql read command for each message behind the card.