tw
Command-line tool for managing TiddlyWiki files. Use when working with TiddlyWiki (.html) files, tiddlers, or when the user mentions TiddlyWiki operations.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
TiddlyWiki CLI (tw)
Quick Reference
tw is a Python-based CLI for managing single-file TiddlyWiki wikis.
Location: ~/dotfiles/tiddlywiki/bin/tw
Basic syntax:
tw [<wiki_path>] <command> [args]
Common Commands
Reading/Listing
-
ls- List all tiddlers -
cat <tiddler>- Display tiddler contents (cat format: title, tags, other fields, blank line, text) -
json <tiddler> [...]- Output tiddler(s) as JSON (use--allfor all tiddlers) -
get <tiddler> <field>- Get a specific field value -
filter <expression>- Evaluate TiddlyWiki filter expression
Writing/Editing
-
init <dest_path>- Create a new empty wiki -
touch <tiddler> [text]- Create or update a tiddler -
set <tiddler> <field> <val>- Set a field value -
edit <tiddler>- Edit tiddler in $EDITOR (opens interactive editor) -
append <tiddler> [text]- Append text to tiddler -
insert <json>- Insert/replace tiddler(s) from JSON -
replace <content>- Insert/replace from cat format (reads from stdin) -
rm <tiddler>- Remove a tiddler
Serving
-
serve [--host HOST] [--port PORT] [--readonly]- Serve wiki with live reload -
webdav [--host HOST] [--port PORT] [--readonly]- Serve tiddlers via WebDAV
Utilities
-
detect- Detect wiki format (modern or legacy) -
filetype-map- Output MIME type to filetype mapping as JSON -
mimetype <filename>- Get MIME type for a file extension -
install_plugin- Install live reload plugin
Important Notes
- Wiki path: Always specify the wiki path as the first argument
-
Cat format: Output format is
title: X\ntags: Y\nfield: Z\n\ntext content -
Interactive commands:
editopens $EDITOR - don't use in automated scripts, usereplaceinstead - Filter expressions: Supports TiddlyWiki filter syntax (see tw_filter_progress.md for coverage)
-
Live reload: Use
install_pluginonce, thenserveto get auto-refresh in browser
Examples
# List all tiddlers in a wiki
tw ~/wiki.html ls
# Create a new tiddler
tw ~/wiki.html touch "MyTiddler" "This is the content"
# Get a field value
tw ~/wiki.html get "MyTiddler" tags
# Set a field
tw ~/wiki.html set "MyTiddler" tags "foo bar"
# Pipe content to replace (non-interactive)
echo -e "title: Test\ntags: demo\n\nContent here" | tw ~/wiki.html replace
# Export all tiddlers as JSON
tw ~/wiki.html json --all > backup.json
# Filter tiddlers (find all tagged "journal")
tw ~/wiki.html filter "[tag[journal]]"
# Serve wiki with live reload on port 8080
tw ~/wiki.html serve --port 8080
Integration with Other Tools
- Pipe JSON to/from
jqfor processing - Use with
nvimvia $EDITOR for editing - Combine with shell scripts for batch operations
- WebDAV server allows mounting as filesystem
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!