Features ======== This page provides a condensed reference for all jott features. See :doc:`quickstart` for basic usage. Notes ----- Attach detailed notes to any task with **Shift+N**. Notes open in your ``$EDITOR`` and support rich text, code snippets, and links. - Tasks with notes display a pencil icon. - Press **Shift+N** again to edit existing notes. - Clear all content to remove notes. - Notes are preserved when moving tasks between projects. Inline notes display can be toggled with **.f**, showing up to 3 lines of notes directly in the task list with box-drawing characters. Subtask Sync from Notes ~~~~~~~~~~~~~~~~~~~~~~~~ Add org-mode checklists to notes to create subtasks automatically: .. code-block:: text - [ ] Set up database schema - [ ] Write API endpoints - [X] Create project skeleton On save, unchecked items (``[ ]``) are created as subtasks with ``parent:{id}`` labels. Already-checked items (``[X]``) are skipped — they won't create new tasks. If you check an item after it was synced, re-saving updates its status to done. Re-saving is safe — duplicates are prevented by text matching. Press **Ctrl+S** for manual sync without opening the editor. Parent/Subtask Visual Indicators ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Parent/subtask relationships are visible in the task list: .. code-block:: text [ ] 10. Build auth system (3 subtasks) [ ] 11. ↳ Research API options [ ] 12. ↳ Write implementation plan [ ] 13. ↳ Set up dev environment - **Subtask prefix**: Dim ``↳`` arrow before subtask text - **Parent suffix**: ``▼ (N subtasks)`` expanded or ``▶ (N subtasks)`` collapsed - **Recursive depth**: Nested subtasks show deeper arrows (``↳↳``) - Press **Ctrl+L** to assign a parent task via interactive picker Collapse / Expand Subtasks ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Press ``.s`` (leader chord: ``.`` then ``s`` within 500ms) to toggle subtask visibility: .. code-block:: text [ ] 10. Build auth system ▶ (3 subtasks) [ ] 14. Unrelated task - Collapsed parents show yellow ``▶ (N subtasks)`` - Expanded parents show dim ``▼ (N subtasks)`` - Navigation automatically skips hidden children - State is ephemeral — resets each session (no data changes) - Pressing ``.`` followed by any other key types normally Fuzzy Search ------------ Press **Ctrl+F** in quick-add mode to search tasks by partial text. Matches can be non-contiguous characters (e.g., "aut" matches "authentication"). - **Up/Down** to navigate results - **Enter** to select (makes it current) - **ESC** to cancel Multi-Select Mode ----------------- Press **Shift+V** to enter multi-select mode for bulk operations: - **Space** to toggle selection on individual tasks - Perform delete, move, archive, or priority changes on all selected tasks - **ESC** to exit The footer shows the count of selected tasks. Moving Tasks Between Projects ----------------------------- Press **.m** to move the current task to another registered project. A fuzzy-search picker lets you find projects quickly. Most-used projects appear first via usage tracking. All metadata is preserved during the move. When moving a parent task with subtasks, jott automatically gathers all descendants and moves them along, remapping ``parent:{id}`` labels to the new IDs in the destination. You'll be prompted to confirm (e.g., "Move task + 3 subtasks to project-x?"). The same applies to **.k** (copy) and **Ctrl+T** (category transfer). Google Calendar Integration --------------------------- Bidirectional sync between jott and Google Calendar. See :doc:`configuration` for setup. Export (.G) ~~~~~~~~~~~~~~~~ Choose between exporting the current task or bulk-exporting all tasks assigned to today. Time tags in military format (``HHMM``) set the event start time: .. code-block:: text Team standup 0930 → 9:30 AM - 9:45 AM Events are created with 15-minute duration in your primary calendar. Import (Shift+I) ~~~~~~~~~~~~~~~~ Fetch calendar events and cherry-pick which to import as tasks. Choose direction (past/future/today) and number of days (1–7). - Timed events import with a calendar icon - All-day events import with a date icon - Interactive checkbox picker for selection Re-authenticate (Shift+3) ~~~~~~~~~~~~~~~~~~~~~~~~~~ Force OAuth re-authentication when tokens expire or when switching accounts. Keyword Automation ------------------ Add tasks with ``keyword: task text`` to trigger automatic actions: .. list-table:: :header-rows: 1 :widths: 15 50 15 * - Keyword - Action - Auto-Trigger * - ``gcal:`` - Export to Google Calendar - Yes * - ``ai:`` - Mark for AI/agent - Yes * - ``analyze:`` - Analyze with Claude Code - Yes * - ``remind:`` - System notification - No * - ``all:`` - Broadcast to all projects - Yes Aliases let you use shortcuts (e.g., ``claude:`` for ``ai:``). Claude Code Analysis -------------------- Break down complex tasks with AI using the ``analyze:`` keyword: .. code-block:: text analyze: Implement OAuth refresh token system Pressing Enter triggers Claude Code analysis in plan mode and writes a ``.jot.analysis.{id}.org`` file with subtask breakdown, technical approach, complexity estimate, and risk assessment. Tasks with analysis files show a clipboard indicator. Agent tasks show a robot indicator. AI Task Suggestion ~~~~~~~~~~~~~~~~~~ Press **Shift+4** for AI-powered task suggestions based on your current task list and project context. Broadcast to All Projects ------------------------- Add a task to every registered project: .. code-block:: bash jott --all "Update dependencies" Or use the ``all:`` keyword in interactive mode. Both methods require confirmation before broadcasting. Visual Styling -------------- jott uses color to enhance the interface: - **Current task**: Cyan + bold with sparkle icon - **"Take a break" task**: Green + bold with leaf icon (calming visual reminder) - **Highlighted task**: Black text on bright yellow background - **Quick-add mode footer**: Green - **Command mode footer**: Yellow Task Highlighting ~~~~~~~~~~~~~~~~~ Press **\*** (Shift+8) to open the highlight color picker with 7 colors (gray, yellow, orange, magenta, cyan, red, green). Press **~** for a quick toggle with the default color (yellow). Multiple tasks can be highlighted simultaneously. Highlight applies to the task ID number only and persists across sessions. Smart Deletion -------------- Deleting a task automatically sets the previous task as current, keeping you in flow. Edge cases (first task, last task, only task) are handled gracefully. Cross-Project Task Routing -------------------------- Send tasks to projects from the CLI: .. code-block:: bash jott rubber-ducky-live 'implement OAuth refresh tokens' jott --list-projects jott --all-projects Auto-discovery scans ``~/projects/`` on first run. Use ``--refresh`` to re-scan. Projects are also **auto-registered** when you open them with ``jott`` if they contain a ``.jot.json`` file but aren't in the registry yet. MCP Server ---------- jott includes a Model Context Protocol server for integration with Claude Code and other AI assistants. Install with: .. code-block:: bash pip install jott-cli[mcp] See :doc:`/api/mcp` for the API reference.