Repository navigation
Releases
v2.0.0
Unolia CLI 2 is a rewrite. v1 managed DNS records. v2 drives everything on app.unolia.com from the terminal: projects, websites, deployments, CI runs, automations, issues, DNS and providers.
It is built for two audiences at once. At a terminal it prompts, draws tables and follows long work live. In a pipe, in CI or in an agent it never prompts, answers JSON and exits with a code that says what happened.
unolia login # sign in through the browser
unolia init # link this directory to a project and website
unolia deploy # deploy it and follow the deployment
unolia issue list # what is broken and what can be fixedHighlights
Browser login. unolia login shows a one time code and opens the browser, the way gh auth login does. Tokens are scoped, and when a command needs a scope you do not have, the error names the unolia auth refresh --scopes <scope> to run. Scripts use UNOLIA_TOKEN or unolia login --with-token.
A command tree like gh. Nouns and verbs: website deploy, ci rerun, dns set, issue fix. Every list answers to its plural (unolia websites). Run unolia for the full tree.
Context from your repository. unolia init writes a committed .unolia/config.json. After that, commands inside the repository know the team, project and website. Flags, UNOLIA_* variables and the git remote work too. unolia status says which source answered.
Deploy and follow. unolia deploy previews how many commits sit between what is live, the branch head and your checkout, asks, then follows the deployment to the end. unolia watch follows a deployment, CI run, automation run or DNS record, and Ctrl+C leaves the remote work running.
Automations, CI, issues and providers. Run, resume, replay and watch automations. A run that stops to ask a question is answered right where it stopped. Rerun or cancel CI. List issues, preview a fix, then apply it. Sync a provider, and provider fix opens the page that repairs a broken connection.
A dns namespace. dns list, add, set, edit, remove, watch, dig, check and export, scoped to the project's zone. dns set changes a record and watches it propagate. dns check compares the zone with what resolvers answer and prints only what differs.
Built for agents and scripts.
--json [fields],--jq, and--format table|json|ndjson|csv|yamlon every command.--dry-runon everything that changes something,--yesto skip the question.- Stable exit codes: 0 ok, 1 remote failure, 2 usage, 3 auth, 4 not found, 5 forbidden or plan, 6 timeout, 7 awaiting input, 130 interrupted.
unolia apireaches any endpoint, likegh api.unolia help agentsprints the short version for an agent's instructions.
MCP in one command. unolia mcp setup adds the Unolia MCP server to Claude Code, Cursor, VS Code, Codex, Gemini CLI, Junie, Kiro, OpenCode and Amp.
Local tooling. configure herd writes herd.yml from production and runs herd init. compare local checks your PHP, Laravel and Composer versions against production. open jumps to the project, the website, the live site, the repository or the site at its provider.
Also: unolia upgrade updates the phar in place and checks its hash. Shell completion for bash, zsh and fish. Colors follow NO_COLOR and CI.
Upgrading from v1
- Your token carries over. A v1 token in
~/.unolia/cli/config.jsonis migrated to~/.config/unolia/hosts.json(mode 0600) on first run. The old file is left alone. - v1 commands keep working.
domain:list,domain:records,domain:add,domain:update,domain:remove,domain:watch,dig,teamsandmeare still there. They are hidden from the help, and the new spellings live underdnsandteam. UNOLIA_API_TOKENstill works with a warning. Rename it toUNOLIA_TOKEN.- The CLI talks to
/api/v2. Scripts calling the API directly throughunolia apishould use the v2 paths. - PHP 8.2 or newer, as before.
Install
composer global require unolia/unolia-cliOr run it through cpx with cpx unolia/unolia-cli, or download unolia.phar below and put it on your PATH. From now on, unolia upgrade keeps the phar current.
The full command reference lives in docs/cli.
Full Changelog: v1.3.1...v2.0.0
v1.3.1
What's Changed
- ci: Dependabot for composer, weekly, with patch auto-merge by @SRWieZ in #3
- build(deps): bump the github-actions-patch group with 2 updates by @dependabot[bot] in #4
- build(deps): bump the github-actions group across 1 directory with 2 updates by @dependabot[bot] in #6
- Fix cpx execution by @SRWieZ in #7
Full Changelog: v1.2.0...v1.3.1
v1.2.0
domain:addnow accepts@as the zone root (07ef1a6)- Dependency updates (d0f8ce0)
- CI / supply-chain hardening in response to Composer CVE-2026-45793 (#1)
Full Changelog: v1.1.1...v1.2.0
v1.1.1
v1.1.0
Release Notes
This is a maintenance release that improves dependency compatibility.
Changed
- chore: update laravel/prompts version constraints and improve dependency compatibility in
31cd50f - chore: update .gitignore and remove Saloon commands from configuration in
608a61a - test: support pest 3 in
71a359c - ci: update composer install command to composer update in
d8b32a9 - ci: update test workflow to disable fail-fast and simplify composer update command in
54b968c - ci: update PHP versions and change install command to update dependencies in
3dd181a - chore: update dependencies in
8b606a6834a8eaa7442a4
Full Changelog: https://github.com/unolia/unolia-cli/compare/v1.0.9..v1.1.0
v1.0.9
v1.0.7
v1.0.6
v1.0.5
New authentification workflow
Full Changelog: v1.0.3...v1.0.5
v1.0.4
New api URL
Full Changelog: v1.0.3...v1.0.4