mlwcli
Original:🇺🇸 English
Translated
Unified command-line interface for managing feeds (Miniflux), links (Linkding), and pages (Wallabag). Use when the user wants to: save a URL as a bookmark, add or browse RSS/Atom feeds, read or search unread feed entries, save an article to Wallabag, manage tags on links or pages, or authenticate with Miniflux/Linkding/Wallabag.
3installs
Sourcegoofansu/mlwcli
Added on
NPX Install
npx skill4agent add goofansu/mlwcli mlwcliTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →mlwcli
A unified CLI for managing feeds (Miniflux), links (Linkding), and pages (Wallabag).
Command Reference
bash
# Authentication (interactive TUI)
mlwcli auth login # Login to linkding, miniflux, or wallabag
mlwcli auth logout # Logout from a service
# Linkding (Links)
mlwcli link add <url> # Add link
mlwcli link list # List links
# Miniflux (Feeds)
mlwcli feed add <url> # Add feed
mlwcli feed list # List feeds
mlwcli entry list # List feed entries
mlwcli entry save <id> # Save entry to third-party service
# Wallabag (Pages)
mlwcli page add <url> # Add page
mlwcli page list # List pagesUse on any command for options.
--helpCritical Guidelines
-
Authentication requires user action:
- and
auth loginuse an interactive TUI that requires a TTY — do not run them yourselfauth logout - If a command fails due to missing credentials, tell the user to run in their terminal
mlwcli auth login - Config stored at
~/.config/mlwcli/auth.toml
-
Pagination: Allcommands return
list.{total, items}- ,
link list:entry list/--limit(default: limit=10, offset=0)--offset - :
page list/--page(default: page=1, per-page=10)--per-page - : no pagination parameters (returns all)
feed list - Always check vs items returned before assuming you have all results.
total
-
Output Filtering:
- — inline jq filter (automatically enables JSON output)
--jq=expression - — select specific fields (comma-separated, no spaces)
--json=field1,field2 - Without these flags, output is human-readable table format
-
Search and Filtering:
- :
link list,--search,--limit--offset - :
entry list,--search(read/unread/removed, default: unread),--status,--starred,--feed-id,--limit--offset - :
page list,--archive,--starred,--tags,--domain,--page--per-page
-
Quote Handling:
- Values with double quotes: wrap in single quotes:
--notes 'Title: "Example"' - Tags are space-separated within a quoted string:
--tags "tag1 tag2"
- Values with double quotes: wrap in single quotes:
Examples
Authentication
Authentication requires an interactive TTY — ask the user to run these commands themselves:
bash
mlwcli auth login # interactive TUI: select service, enter endpoint + credentials
mlwcli auth logout # interactive TUI: only shows signed-in servicesCheck pagination before processing
bash
mlwcli entry list --status=unread --jq='{total: .total, returned: (.items | length)}'If , increase or paginate:
total > returned--limitbash
mlwcli entry list --status=unread --limit=100
# or iterate with --offset=0, --offset=10, etc.List unread entries
bash
mlwcli entry list --status=unread --jq='.items[] | { id, url, title, published_at, status, feed_id: .feed.id, feed_title: .feed.title }'List entries by feed
bash
# Find feed ID
mlwcli feed list --jq='.items[] | { id, title, site_url }'
# Fetch entries from that feed
mlwcli entry list --feed-id=42 --limit=20 --jq='.items[] | { id, url, title, published_at }'Find starred/read entries by date
bash
mlwcli entry list --starred --status=read --limit=100 --json=id,url,title,changed_at,starred | jq '.items[] | select(.changed_at >= "2025-12-26")'Note: reflects when the entry was last modified (starred/read status changed), not publication date.
changed_atSave an entry to a third-party service
bash
mlwcli entry save 42Saves to Miniflux's configured third-party integration (e.g. Wallabag, Pocket).
Add a feed (with optional category)
bash
mlwcli feed add <url>
mlwcli feed add <url> --category-id=<id> # defaults to 1 (All) if omittedTo find category IDs:
bash
mlwcli feed list --jq='.items[] | { id, title, category_id: .category.id, category_title: .category.title }'Add a link
bash
mlwcli link add <url>
mlwcli link add <url> --notes='Title: "Some Title"' --tags="tag1 tag2"Add a page
bash
mlwcli page add <url>
mlwcli page add <url> --tags="tag1 tag2" --archiveList pages
bash
mlwcli page list --starred --per-page=20 --jq='.items[] | { id, url, title, domain_name }'
mlwcli page list --domain=example.com
mlwcli page list --tags="tech news"