apps/cli/skill.md
Use this skill when a user asks to:
npx.npx --yes folocli@latest login (recommended, opens browser and auto-logins)npx --yes folocli@latest login --token <session-token>FOLO_TOKEN=<token>npx --yes folocli@latest ... for all agent runs.npm install -g folocli.folocli@latest is the update strategy.folo binary, it is acceptable, but npx --yes folocli@latest remains the recommended default in docs and automation.Default output is JSON with a stable envelope:
{
"ok": true,
"data": {},
"error": null
}
Errors return:
{
"ok": false,
"data": null,
"error": {
"code": "UNAUTHORIZED",
"message": "Token is invalid or expired."
}
}
You can switch output mode:
--format json (default)--format table--format plainnpx --yes folocli@latest timeline --limit 10npx --yes folocli@latest entry get <entryId>npx --yes folocli@latest entry read <entryId>npx --yes folocli@latest search discover <keyword>npx --yes folocli@latest subscription add --feed <url>npx --yes folocli@latest subscription add --list <listId>npx --yes folocli@latest subscription listnpx --yes folocli@latest unread countnpx --yes folocli@latest unread listnpx --yes folocli@latest timeline --unread-only --limit 20npx --yes folocli@latest entry mark-read <entryId>npx --yes folocli@latest entry mark-all-read --view articlesnpx --yes folocli@latest collection add <entryId>npx --yes folocli@latest collection remove <entryId>npx --yes folocli@latest collection list --limit 20npx --yes folocli@latest opml export --output backup.opmlnpx --yes folocli@latest opml import feeds.opmlnpx --yes folocli@latest timeline returns:
entriesnextCursorhasNextLoop until hasNext is false:
npx --yes folocli@latest timeline --limit 20nextCursornpx --yes folocli@latest timeline --limit 20 --cursor <nextCursor>npx --yes folocli@latest login [--timeout <seconds>] [--token <token>]
npx --yes folocli@latest logout
npx --yes folocli@latest whoami
npx --yes folocli@latest auth login [--timeout <seconds>] [--token <token>]
npx --yes folocli@latest auth logout
npx --yes folocli@latest auth whoami
npx --yes folocli@latest timeline [--view <type>] [--limit <n>] [--unread-only] [--cursor <datetime>]
npx --yes folocli@latest timeline --feed <feedId> [--limit <n>] [--cursor <datetime>]
npx --yes folocli@latest timeline --list <listId> [--limit <n>] [--cursor <datetime>]
npx --yes folocli@latest timeline --category <name> [--view <type>] [--limit <n>]
npx --yes folocli@latest subscription list [--view <type>] [--category <name>]
npx --yes folocli@latest subscription add --feed <url> [--category <name>] [--view <type>] [--private]
npx --yes folocli@latest subscription add --list <listId> [--category <name>] [--view <type>]
npx --yes folocli@latest subscription remove <id> [--target feed|list|url]
npx --yes folocli@latest subscription update <id> [--target feed|list] [--category <name>] [--title <title>] [--view <type>] [--private|--public]
npx --yes folocli@latest entry get <entryId>
npx --yes folocli@latest entry read <entryId>
npx --yes folocli@latest entry mark-read <entryId>
npx --yes folocli@latest entry mark-unread <entryId>
npx --yes folocli@latest entry mark-all-read [--feed <feedId>] [--list <listId>] [--view <type>]
npx --yes folocli@latest feed get <feedId|feedUrl>
npx --yes folocli@latest feed refresh <feedId>
npx --yes folocli@latest feed analytics <feedId>
npx --yes folocli@latest list ls
npx --yes folocli@latest list get <listId>
npx --yes folocli@latest list create --title <title> [--description <desc>] [--view <type>] [--fee <n>]
npx --yes folocli@latest list update <listId> [--title <title>] [--description <desc>] [--view <type>] [--fee <n>]
npx --yes folocli@latest list delete <listId>
npx --yes folocli@latest list add-feed <listId> --feed <feedId>
npx --yes folocli@latest list remove-feed <listId> --feed <feedId>
npx --yes folocli@latest search discover <keyword> [--type feeds|lists]
npx --yes folocli@latest search rsshub <keyword> [--lang <lang>]
npx --yes folocli@latest search trending [--range 1d|3d|7d|30d] [--view <type>] [--limit <n>] [--language eng|cmn] [--category <keyword>]
npx --yes folocli@latest collection list [--limit <n>] [--cursor <datetime>]
npx --yes folocli@latest collection add <entryId> [--view <type>]
npx --yes folocli@latest collection remove <entryId>
npx --yes folocli@latest opml export [--output <file>]
npx --yes folocli@latest opml import <file> [--items <url1,url2,...>]
npx --yes folocli@latest unread count
npx --yes folocli@latest unread list [--view <type>]
UNAUTHORIZED
npx --yes folocli@latest loginnpx --yes folocli@latest login --token <token>FOLO_TOKENHTTP_4xx / HTTP_5xx
--verbose for request details--api-url if using non-default endpointINVALID_ARGUMENT
npx --yes folocli@latest <command> --help to inspect accepted options