@vakantio/cli
v2.0.0
Published
Command-line interface for vakantio.de. Built for AI agents and humans who'd rather type than click.
Maintainers
Readme
@vakantio/cli
Command-line client for vakantio.de — where travelers keep a running journal of a trip and decide who sees it: the open web, or just a follower list of friends and family. Built for AI agents and humans who'd rather type than click.
ESM-only. Node 22.6+.
Install
Globally:
npm install -g @vakantio/cli
vakantio --helpOr one-shot via npx:
npx @vakantio/cli loginAuthenticate
vakantio login # opens browser-based OAuth
vakantio whoami # confirm
vakantio logout # clear sessionThe session is stored at ~/.vakantio/config.json. Override with the
VAKANTIO_CONFIG_DIR env var, or use named profiles via --profile NAME.
For CI/agents, skip the config file entirely:
export VAKANTIO_SESSION_ID=...
vakantio whoamiCommands
Auth:
login browser-based OAuth login
logout clear stored session
whoami [--refresh] show current user
Posts:
posts list [--page N] [--tags T] [--destination ID]
posts get <id>
posts create --title T [--content @file|HTML] [--tags T,T]
[--locale de|en] [--lat N --lng N] [--date-traveled ISO]
[--media FILE ...] [--trip TRIP_ID]
posts update <id> [same flags as create] --media appends to existing media
(images & videos; --trip attaches/reassigns trip)
posts publish <id> [-y]
posts unpublish <id> [-y]
posts delete <id> [-y]
posts like <id>
posts bookmark <id>
Drafts:
drafts list
Blogs:
blogs list
blogs create --name N [--description D] [--locale de|en] [--instagram URL]
[--image FILE] [--header-image FILE] [--switch]
blogs switch <blogId>
blogs get [<path>]
blogs stats [<path>]
blogs update [--name N] [--description D] [--instagram URL] [--locale de|en]
[--image FILE] [--header-image FILE]
blogs authors add <email>
blogs authors remove <userId>
blogs follow <blogId>
blogs unfollow <blogId>
Destinations:
destinations list [--parent ID] [--type country|state|city] [--limit N]
destinations get <id>
destinations search "<query>" [--limit N]
Trips:
trips list [--blog PATH]
trips get <id>
trips create --name N [--description D] [--start ISO] [--end ISO]
[--audience public|followers]
trips update <id> [...]
Comments:
comments list <postId>
comments create <postId> --text T
comments delete <commentId> --post <postId>
Notifications:
notifications list [--unread]
notifications mark-read [<id>...]
Search:
search "<query>" [--limit N] text search (posts+blogs+destinations)
search [<query>] --lat N --lng N [--radius-km N] geo (post-only); query is optionalRun vakantio --help for the same list with the latest flags.
Universal flags
| Flag | Effect |
| ----------------- | ----------------------------------------------------------- |
| --json | Machine-readable output. Pipe straight into jq or an LLM. |
| --profile NAME | Use ~/.vakantio/<name>.json instead of the default. |
| -y, --yes | Skip destructive-action confirmations. |
| -h, --help | Show help. |
| -v, --version | Print CLI version. |
Environment variables
| Variable | Purpose |
| --------------------- | -------------------------------------------------------------- |
| VAKANTIO_SESSION_ID | Bypass the config file. Highest precedence. |
| VAKANTIO_BASE_URL | Override the API base URL (default https://api.vakantio.de). |
| VAKANTIO_CONFIG_DIR | Override the config dir (default ~/.vakantio). |
Examples
# Draft a post with two photos and a video clip (SDK uploads sequentially)
vakantio posts create --title "Tag 1 in Lissabon" --content @day1.html \
--tags lissabon,portugal --locale de \
--media ./beach.jpg --media ./sunset.jpg --media ./surf.mp4
# Spin up a new blog with a profile picture and header
vakantio blogs create --name "Our Europe Trip" --locale de \
--image ./avatar.jpg --header-image ./cover.jpg --switch
# Pipe a list into jq
vakantio posts list --json | jq '.[].title'
# Find posts within 50km of a coordinate
vakantio search --lat 38.7 --lng -9.14 --radius-km 50 --limit 20
# Combine text + geo — "hiking" posts near Zurich
vakantio search "hiking" --lat 47.37 --lng 8.55 --radius-km 100Use from code
If you want a programmatic API instead of a CLI, install
@vakantio/sdk directly.
License
MIT
