A simple plain-text format for note-taking, outlining, and task management. Inspired by Cosense/Scrapbox, powered by LSP.
A line-oriented text format where newlines create lines and tabs create nesting. Perfect for:
- 📝 Quick outlining and note-taking
- ✅ Task management with deadlines
- 🔗 Zettelkasten-style linked notes
- Wiki-style links
[note name]with backlinks and 2-hop visualization - Tasks with deadlines:
!2024-12-31or{@task due=2024-12-31}(sorted by Overdue, Today, This Week) - Real-time preview and LSP-powered autocomplete
- Works with Vim, Neovim, VS Code
Plain text
Tab to nest
Tab twice for deeper nesting
Anchored text #anchor
[* bold] [/ italic] [` code `][other note] Link to note
[note#anchor] Link to the anchored line in note
[https://example.com Title] External link
!2024-12-31 Todo with deadline
*2024-12-31 In progress
-2024-12-31 Done[@code python]
print("hello")
[@quote]
Quoted text
[@table]
header col1 col2
row1 a b
[@math]
\sum_{n=0}^{10} = 55[@img http://example.com/img "image alt"] Remote image
[@img ./local-image.png "image alt"] Local image (must use ./ prefix)
[@embed https://www.youtube.com/watch?v=dQw4w9WgXcQ Youtube Alt]
[@embed https://twitter.com/... Tweet]
[@embed https://speakerdeck.com/... Slide]
[@embed ./document.pdf PDF Title] Local PDF embedding (must use ./ prefix)Install with cargo:
cargo install pattoOr download from: GitHub Releases
Neovim (nvim-lspconfig)
Plug 'neovim/nvim-lspconfig'
Plug 'hrsh7th/nvim-cmp'
Plug 'ompugao/patto'
lua << EOF
require('patto')
vim.lsp.config('patto_lsp', {})
vim.lsp.config('patto_preview', {}) -- browser preview (optional)
vim.lsp.config('patto_preview_tui', {}) -- terminal preview live sync (optional)
vim.lsp.enable({'patto_lsp', 'patto_preview', 'patto_preview_tui'})
EOFVim (vim-lsp)
Plug 'prabirshrestha/vim-lsp'
Plug 'ompugao/patto', {'for': 'patto'}VS Code
Install from VS Marketplace
- Create a
.pnfile - Type
[for link completion,@for blocks - Use
:LspPattoTasksto view all tasks (Vim/Neovim)
See docs/advanced-usage.md for detailed documentation on:
- Task management
- Markdown import / export
- Zotero integration
- Terminal preview (
patto-preview-tui) — keybindings, editor integration, image protocols - Google Calendar sync
v0.4.2 - patto-preview-tui enhancements: math rendering via typst, text wrapping, TCP LSP backend, extensible editor integration with Neovim viewport sync, tui-widget-list for backlinks panel; PDF embedding via @embed ./file.pdf; @embed/@img syntax unification with LSP diagnostics (local paths now require ./ prefix)
v0.4.1 - Add TUI previewer
v0.4.0 - Rewrite the previewer, improving its latency and stability of real-time previewing
v0.3.1 - Add markdown import support, nested quotes, anchor renaming, and fix tab indentation handling
v0.3.0 - Complete Markdown export overhaul with 72 new tests
v0.2.10 - Bump nextjs
v0.2.9 - Minor fix
v0.2.8 - Zotero integration
v0.2.7 - Real-time preview without saving
v0.2.6 - Enhanced diagnostic messages, Improved neovim integration
v0.2.5 - Comprehensive tests for lsp server added
v0.2.4 - Lsp Renaming Support
v0.2.3 - Minor fix of vscode extension
v0.2.2 - VS Code extension, semantic highlighting
v0.2.0 - Repository system, LSP scanning, trouble.nvim integration

