advibly
v0.1.1
Published
Advibly from the terminal: brands, assets, image/video/audio generation and social publishing. The same tool surface as the Advibly MCP server, as shell commands.
Maintainers
Readme
advibly
Advibly from the terminal. Every command is a tool of the Advibly MCP server, so anything an agent can do through MCP you can do from a shell script: brands, assets, image / video / audio generation, projects, social publishing.
npm i -g advibly # or: npx advibly <command>Needs Node 20+ and an Advibly account.
advibly login # browser OAuth, tokens land in ~/.config/advibly
advibly list-brands
advibly config set brand_id <id> # default brand for every command that takes one
advibly generate-image --prompt "..." --aspect-ratio 4:5
advibly upload ./product.png # local file -> brand asset library
advibly download <generation-id> -o ./out # result files to disk
advibly call advibly_check_credits '{}' --jsonGeneration commands spend your account's credits. advibly check-credits shows
the balance, advibly buy-credits returns checkout links.
How it works
The CLI is an MCP client, not a second backend. It speaks Streamable HTTP
to https://advibly.com/mcp with the official @modelcontextprotocol/sdk
client, authenticates with the same OAuth 2.1 + dynamic-client-registration
chain Claude Code and Cursor use, and turns tools/list into subcommands:
advibly_generate_imagebecomesadvibly generate-image; every JSON Schema property becomes a flag (brand_id->--brand-id), with enums as choices, numbers validated, arrays repeatable (or one JSON array), objects as JSON.--args '<json>'/--args-file <path|->pass the raw argument object; explicit flags override it.- The server's analytics
contextargument is filled in automatically (--contextto override). - Generation tools return
status: pendingwhen a job outlives their built-in wait; the CLI keeps pollingadvibly_get_generationuntil the job is terminal.--no-followreturns immediately,--timeout <s>caps the wait (default 1800). uploadanddownloadare the two CLI-native additions: they move bytes between the local disk and the same presigned-upload / result URLs the tools hand to agents.
Exit codes: 0 ok, 1 tool error or failed/rejected generation, 2 usage,
3 login required.
Commands
advibly --help lists everything the server currently exposes; advibly tools
prints the same list grouped by area, and advibly tools <name> shows one
tool's full schema. New tools appear without a CLI upgrade - the command list
is regenerated from the server on login and on advibly tools --refresh, and
cached per account under ~/.config/advibly/cache/. Before your first login,
--help reads a snapshot bundled into the release.
Anything without a generated command can still be called directly:
advibly call advibly_generate_image '{"brand_id":"...","prompt":"..."}'Configuration
advibly config set <key> <value> stores default tool arguments, applied to
any command whose schema has that property when you do not pass the flag:
advibly config set brand_id <id>
advibly config set project_id <id>
advibly config list
advibly config unset project_idEnvironment:
| Variable | Effect |
| ------------------- | ------------------------------------------------------------- |
| ADVIBLY_SERVER | MCP endpoint. Defaults to https://advibly.com/mcp. |
| ADVIBLY_CONFIG_DIR| Relocates the whole state directory (handy for CI). |
| ADVIBLY_DEBUG | 1 prints stack traces for unexpected errors. |
--server <url> overrides ADVIBLY_SERVER for a single command. A bare host
or origin gets /mcp appended. Each endpoint keeps its own profile (tokens,
OAuth client, defaults) and tool cache, keyed by host, so switching never
mixes credentials.
Profile files are written 0600. advibly logout drops the tokens;
logout --all also forgets the OAuth client registration and the tool cache.
License
MIT
