Task Management
Full-featured task tracking with urgency scoring that automatically prioritizes your work based on due dates, priority, age, and custom weights.
- UDAs — User Defined Attributes let you add custom fields (cost, client, sprint, etc.)
- Projects & Tags — Organize tasks hierarchically with projects and flexibly with tags
- Annotations — Attach timestamped notes to any task
- Dependencies — Define task relationships and blocking chains
- Bulk Operations — Multi-select tasks for batch edits, done, delete, or tag operations
- Sub-profiles — Maintain separate task lists (work, personal, freelance)
Inline Drop Actions
Each task row supports quick actions: annotate, journal (cross-post to Journal), dep (add dependency), and comm (share to Community).
Cross-Service Integration
- Time — Starting a task auto-starts time tracking; stopping time logs against the task
- Journal — Cross-post task notes as journal entries; journal entries link back to tasks
- Ledger — Track costs per task via UDA cost fields that feed into Ledger reports
- Community — Share tasks or request help via the community drop action
The Task Drawer provides an expanded view with full history, all annotations, time logs, and related journal entries for any task.
Time Tracking
Track time with start/stop or manual duration entry. Every interval is tagged for flexible reporting.
- Tags — Categorize time entries (dev, review, meeting, admin)
- Time Logs — Sub-profiles let you maintain separate time logs per context
- Weekly Charts — Visual breakdown of time spent by day and tag
- Tag Summaries — Aggregate reports showing total time per tag over any period
- Duration Entry — Manually log past time with start/end or duration
Cross-Service Integration
- Tasks — Starting a task auto-starts a time interval; task completion stops the clock
- Journal — Time-to-journal action creates a journal entry summarizing tracked time
- Projects — Time data feeds into Project cards showing total hours per project
Journaling
Structured journaling with entries, annotations, tags, and priorities. Supports markdown rendering and full-text search.
- Entries — Timestamped journal entries with title and body
- Projects & Sections — Organize entries by project or custom sections
- Tags & Priorities — Flexible categorization and importance levels
- Multiple Journals — Sub-profiles for separate journals (work log, personal diary, research notes)
- Markdown Rendering — Full markdown support with live preview
- Archiving — Archive old entries to keep your active journal focused
Twain Theme
A focused writing mode with a scratch pad for quick notes and river mode for distraction-free continuous writing.
Cross-Service Integration
- Tasks — Cross-post journal entries to tasks; task annotations appear in journal
- Community — Share journal entries or excerpts to the community feed
- Projects — Journal entries appear in Project cards as activity logs
Double-Entry Accounting
Plain-text double-entry bookkeeping with transactions, postings, and a full account hierarchy.
- Transactions — Date, description, and balanced postings across accounts
- Postings — Each transaction moves money between two or more accounts
- Account Hierarchy — Nested accounts (expenses:food:groceries) for detailed categorization
- Balance Report — Current balances across all accounts
- Register Report — Chronological transaction history with running totals
- Income Statement — Revenue vs. expenses over a period
- Multiple Ledgers — Sub-profiles for separate books (personal, business, project)
Cross-Service Integration
- Tasks — Task UDA cost fields feed into ledger as expense postings
- Projects — Ledger data appears in Project cards showing budget vs. actual spend
Tags
Tags provide flexible, non-hierarchical grouping across your tasks. Unlike projects (one per task), a task can have many tags.
- Overview — See all tags with task counts and latest activity dates
- Expand — Click any tag to see its associated tasks inline
- Sort — Order by name, most tasks, or fewest tasks
- Filter — Search tags by name to find specific groupings
Usage
Add tags to tasks via the task form or drawer (comma or space separated). Tags appear as badges on task rows and can be used for time tracking and journal filtering.
Attributes (UDAs)
User Defined Attributes extend your tasks with custom fields — track anything beyond the built-in task properties.
- Typed Fields — String, numeric, date, and duration types with validation
- Allowed Values — Constrain string attributes to a predefined set (renders as dropdown)
- Urgency Coefficients — Attributes can influence task urgency scoring automatically
- Groups — Organize attributes into logical groups for clarity
- Templates — Import pre-built attribute packs (Agile, GTD, Freelance, etc.)
- Cross-Profile — Assign attributes to other profiles for consistent schemas
- Read-Only — Lock attributes after initial assignment to prevent accidental edits
How It Works
Define attributes here, then assign values on individual tasks via the Task Drawer. Attributes appear as editable fields with type-appropriate inputs.
Urgency Integration
Each attribute can carry an urgency coefficient. The formula is: contribution = coefficient × normalized_value. This feeds into the global urgency score that prioritizes your task list.
Formula: contribution = coefficient × normalized_value
Normalization by type:
- numeric — raw numeric value (e.g., value=5, coeff=1.5 → +7.5 urgency)
- string (with allowed values) — positional index ÷ total count (e.g., "bug" at index 1 of 4 → 0.25 × coeff)
- string (free text) — 1 if non-empty, 0 if empty
- date — days until date ÷ 365, clamped to 0–1
- duration — parsed hours ÷ 24
A coefficient of 0 means no urgency contribution. Negative coefficients reduce urgency.
What are Attributes?
Attributes are User Defined fields you attach to tasks. They extend the built-in fields (description, project, tags, priority, due) with any metadata your workflow needs — estimates, categories, risk levels, costs, contacts, etc.
Types
- string — free text or constrained to allowed values (dropdown)
- numeric — numbers (integers or decimals)
- date — ISO dates (rendered as date picker)
- duration — time spans like 2h, 30m, 1d, 1w
Groups
Attributes can be organized into groups (e.g., "Financial", "Development", "People"). Use the Group Builder for rapid creation, or assign/reassign via the dropdown on each attribute card.
Urgency Coefficients
Each attribute can influence task urgency scoring. The formula is: contribution = coefficient × normalized_value. A coefficient of 0 means no effect. See the ⚡ icon on attributes that affect urgency.
Importing (CSV Format)
Import attributes via CSV — one per line, 8 fields:
name,label,type,default,allowed_values,urgency_coefficient,read_only,group
Examples:
estimate,Estimate,numeric,,,0,false,Development category,Category,string,general,general|bug|feature|chore,0.8,false,Project Management reviewby,Review By,date,,,2.0,false,Dates
Notes on CSV:
- Allowed values use
|(pipe) separator within the field - The 8th field (group) is optional — omit it to leave ungrouped
- Missing fields default to: empty string, 0 coefficient, false read-only
- Import multiple lines at once — each line creates one attribute
Template Packs
Pre-built collections of attributes for common workflows (Project Management, Development, GitHub, Financial, etc.). Import a pack to instantly add a curated group of attributes to your profile.
Profile Assignment
Attributes are per-profile. Use the → button to copy attributes or entire groups to other profiles. Already-assigned attributes show a ✓ checkmark.
Task Integration
Once defined, attributes appear in the Task Drawer with type-appropriate inputs (dropdowns for allowed values, date pickers, number fields). Read-only attributes display as locked text.
Projects
Projects aggregate data from all five functions — tasks, time, journal, ledger, and lists — into a unified view per project.
- Progress — Visual progress bar showing pending vs completed tasks
- Next Task — Highest-urgency pending task highlighted at the top
- Cross-Function — See journal entries, ledger transactions, and time tracked for each project
- Clickable Items — Click any item to navigate to its source and open its detail drawer
How It Works
Assign a project name to tasks, journal entries, or ledger comments. The Projects screen automatically discovers and groups all items sharing that project name.
Simple List Management
Lightweight lists for quick capture — items, done/undone, multiple lists. No overhead, just check things off.
- Items — Add items instantly with minimal friction
- Done/Undone — Toggle completion state with a click
- Multiple Lists — Sub-profiles for separate lists (shopping, reading, ideas, packing)
Cross-Service Integration
- Twain Save Bar — Quickly add list items while writing in the journal focus mode
- Promote to Task — Hover action to promote a list item into a full task with urgency scoring
- Promote to Journal — Hover action to expand a list item into a journal entry
Communities
Communities are shared collections where you cross-post tasks, journal entries, and other items for review, discussion, and coordination.
- Collections — Create named collections (e.g., team-updates, code-review)
- Cross-Post — Share items from Tasks, Journal, or Ledger into any collection
- Comments — Add discussion comments that stay within the community (not synced to source)
- Annotations — Annotate source items directly — these propagate back to the original task or journal entry
- Private Notes — Local-only notes that never get shared or exported
- Forensics Panel — Click any entry to inspect it with full editing: add tags, project, ledger entries, and sync live data from source
- Sync — Refresh an entry to pull the latest data from its source without overriding your comments
Data Model
Community data is stored separately from profiles. Comments and private notes are local to the collection. Only annotations write back to the source item.
Questions
Questions provide structured capture templates — predefined forms that guide you through recurring data entry workflows.
- Templates — Define reusable question sets (daily standup, weekly review, client intake, etc.)
- Multi-Field — Each template can have multiple fields with different types (text, select, date)
- Output Routing — Answers get routed to the appropriate function (tasks, journal, ledger) based on template configuration
- Consistency — Ensures you capture the same information each time without forgetting fields
Use Cases
Daily standups, sprint planning, expense reports, meeting notes, client onboarding — any workflow where you answer the same set of questions repeatedly.
Export
Export your data as local file downloads. All processing happens in-browser — no data is sent to any server.
- Full JSON — Complete profile backup including all tasks, time, journal, ledger, and metadata
- Tasks CSV — Spreadsheet-compatible export of all tasks with UDA fields
- Journal Markdown — Journal entries formatted as a readable Markdown document
- Hledger File — Ledger transactions in hledger-compatible plain text accounting format
Portability
Exports are designed for interoperability with the original CLI tools (Taskwarrior, Timewarrior, jrnl, hledger) and standard formats (CSV, JSON, Markdown).
All exports are local file downloads. Nothing leaves your browser.
Import your existing Workwarrior data. Grant read access to your ~/.workwarrior/ or ~/ww/ folder. Your data stays entirely in your browser — nothing is uploaded anywhere.
⚠ File System Access API required (Chrome/Edge/Firefox 111+). Not available in Safari.
g t Tasks g i Times g j Journals g l Ledgerg p Projects g x Tags g e ExportEsc Focus terminal Tab Filter modet <desc> Quick task j <text> Quick journalstart <tags> Start tracking stop Stop tracking
Works Bridge
Bridge connects this WebWarrior instance to the Works Compound Browser running in another tab.