Script reference Available

Script Reference

The Yapture script — prefix tokens for tags, workspaces, priority, due dates, assignees, questions, and more.

A single line is the API. Fix login bug #!high #+alice #@backend due:2026-04-01 parses into priority, assignee, workspace, tag, and due date. No modals, no multi-step forms.

The script is implemented in @yapture/nlp. It’s a zero-runtime-dependency parser that ships in every Yapture client — web, desktop, Chrome extension, CLI — and on the server. Whatever the client sees, the server sees.

Try it interactively at /script.


Token reference

# — Tag

A free-form tag. Hierarchical via :.

#bug
#bug:auth
#bug:auth:oauth
  • Color palette: standard (slate).
  • Many per yap. Order does not matter.
  • Auto-suggests against the list’s existing tags as you type.

#@ — Workspace

A hierarchical organizational context.

#@work
#@work:design
#@work:design:ui
  • Color palette: workspace (emerald).
  • Icon depth: FolderFolderOpenFolderTree (1 / 2 / 3+ levels).
  • A yap can belong to multiple workspaces; rare in practice.

#^ — Goal

A project or objective reference. Supports adjacent metadata.

#^Q4
#^Q4:revenue
#^Q4:revenue:#*{target:1m,currency:USD}
  • Color palette: goal (purple).
  • Goals nest like workspaces.
  • Adjacent #*{...} metadata attaches to the goal it follows.

#~ — Routine

A canonical recurring marker.

#~daily-standup
#~weekly-review
  • Color palette: routine (teal).
  • Replaces the older free-form routine keyword detection.
  • Combine with due: for first occurrence; the recurrence rule is set in the yap detail.

#$ — Action

Trigger an integration or agent action.

#$email
#$slack-notify
#$approve
  • Color palette: action (blue).
  • Actions are looked up in the workspace’s action registry. Unknown actions are silently treated as tags.

#+ — Assignee

Assign a yap to one or more people.

#+alice
#+alice #+bob
  • Color palette: assignee (sky).
  • Names resolve against the workspace’s member list. Unknown names attach as plain strings.
  • For external assignees, use a full email: #+alice@example.com.

#? — Question

Mark a task as a question that requires an answer before it can be completed.

#? Who will transport Eleanor to rehab sessions?
Schedule cardiac rehab #? Who handles transport? #+marcus #!high
  • Color palette: question (amber).
  • When #? appears, the task type is set to QUESTION.
  • Questions have a two-step completion flow: someone must provide an answer before the checkbox can be checked.
  • Combine with #+ to assign who should answer, and #! for urgency.

#! — Priority

Set urgency. Aliases: p1p4 map to URGENT–LOW.

#!urgent  // or #!p1
#!high    // or #!p2
#!medium  // or #!p3
#!low     // or #!p4
  • Color palette: priority.{urgent|high|medium|low} — red / orange / yellow / green.
  • Last #! wins if multiple are present.

#*{...} — Metadata

Adjacent key-value pairs, attached to the preceding goal or action.

#^Q4:#*{target:1m,currency:USD}
#$email:#*{to:team@yapture.com,template:weekly-digest}
  • Color palette: standard, monospace rendering.
  • Comma-separated. Values are strings; numeric parsing is a UI concern.

due: — Due date

A due date. Natural-language dates are parsed.

due:2026-05-01
due:tomorrow
due:friday
due:next-week
  • Color palette: standard with calendar icon.
  • Time of day: due:2026-05-01T09:00.
  • Parser is deterministic — due:tomorrow always means today + 1 day in the user’s timezone.

Trailing : — Section

A yap that ends with : is auto-rendered as a section header.

Sprint 42 Tasks:
Bugs to triage:
  • Renders as a divider, not a checkable item.
  • Useful for organizing long lists.

Worked examples

Fix login bug #!high #+alice #@backend due:2026-04-01

→ priority HIGH, assignee alice, workspace backend, due 2026-04-01.

Launch feature #^Q4:revenue:#*{target:1m,currency:USD} #@product:#@features #+team #$email

→ goal Q4:revenue (with metadata target=1m, currency=USD), workspaces product and features, assignee team, action email.

Review budget #@work:finance #+alice #$approve #!p1 due tomorrow

→ workspace work:finance, assignee alice, action approve, priority URGENT (p1), due tomorrow.


SDK access

The same parser is available in JS:

import { YaptureNLP } from '@yapture/nlp';

const parsed = YaptureNLP.parse('Fix login bug #!high #+alice due:tomorrow');
// parsed.priority === 'HIGH'
// parsed.assignees === ['alice']
// parsed.dueDate instanceof Date

See SDK reference for the full API surface.