Appearance
Commands
Every command works from anywhere inside a project: dqx walks up to find .dq/config.yml, and the directory you are standing in picks the site.
dqx <command> --help prints the flags for any of them.
Every command
dqx has 55 commands. dqx <command> --help prints the flags for any of them.
| command | what it does |
|---|---|
dqx adopt | Bring any project — v1, v2, v3, or no config at all — into the v4 shape |
dqx artisan | Run php artisan in a site |
dqx auth | Report, import or set the credentials the install pipeline needs |
dqx changes | Record a change for the next release, or list what is pending |
dqx clean | Stop this project and delete the data the backend can recreate |
dqx composer | Run composer in a site |
dqx config | Read the project configuration |
dqx db | Open this project's database in your client, or print the connection URL |
dqx db:export | Export the database |
dqx db:import | Import a database dump |
dqx dev | Run the dev server a proxied site needs (proxyCommand in .dq/config.yml) |
dqx docs | Open the documentation in your browser |
dqx doctor | Report what is and is not working here |
dqx domains | Show this project's domains, and what they become under another TLD |
dqx down | Stop the environment |
dqx exec | Run a command in a site |
dqx generate | Print the backend config this project would get |
dqx healthchecks | Find compose healthchecks that can never pass, and fix them |
dqx images | Find data-owning services on a floating image tag, and pin them |
dqx info | Every URL, port and connection this project has — or every running project |
dqx init | Set up a new project: .dq/config.yml v4, docker-compose.yml and docker confs |
dqx install | Set the project up from nothing |
dqx kill | Stop every backend and container on this machine, and free ports 80 and 443 |
dqx layout | Where the code sits: single (the app repository is the project) or multi |
dqx link | Register this project with the backend, without installing it |
dqx list | Every project registered here, grouped by project |
dqx logs | Tail logs |
dqx mcp | Serve dqx over the Model Context Protocol, for coding agents |
dqx memory | What each project is using, and what the VM holds beyond that |
dqx migrate | Rewrite .dq/config.yml in the v4 shape, after showing what changes |
dqx npm | Run npm in a site |
dqx open | Open a site in the browser |
dqx php | Run php in a site |
dqx release | Roll the pending changes into a version, a changelog entry and package.json |
dqx repair | Check the whole installation, and fix what dqx can |
dqx resolver | How local domains resolve on this machine |
dqx restore | Put a snapshot back |
dqx router:down | Stop the shared reverse proxy and give 80/443 back |
dqx router:status | Whether the router runs, and who holds 80/443 if it does not |
dqx router:up | Start the shared reverse proxy, so every project serves at once on 80/443 |
dqx run | Run a command this project declares in commands: |
dqx scan | Read what each site needs: packages, and the node version its image ships |
dqx self-update | Update this binary, or say how it should be updated |
dqx shell | Open a shell in a site |
dqx sites | List the project's sites |
dqx snapshot | Save the database and storage this project holds |
dqx switch | Move this project to another backend, database and URLs included |
dqx sync | Write the backend config for this project from .dq/config.yml |
dqx test | Run php artisan test in a site |
dqx up | Start the environment |
dqx update | Pull the container images this project uses |
dqx update-images | Refresh the house container images this machine already has |
dqx verify | Request every domain this project declares, and say what answered |
dqx version | Print the version, or check it against a minimum |
dqx xdebug | Toggle Xdebug for yourself — off by default, never committed |
Generated
This table is read from the CLI itself on every docs build, so it lists what actually ships. The sections below cover the ones worth more than a line.
Running a project
up
Start every site of the project. Brings up the shared proxy if it is not running, reissues the certificate when it does not cover a domain yet, and frees a port another project is holding — naming what it stopped.
down
Stop this project.
kill
Stop every project on every backend and free ports 80 and 443. Needs no project — the reason to run it is almost never the project you are standing in, it is that another backend is holding the ports.
The runtimes themselves keep running unless you say otherwise:
dqx kill | every project's containers, on every backend; ports freed |
dqx kill --all | that, and the runtimes, giving their memory back |
dqx kill --mine | leave containers that belong to no project of ours |
dqx kill --dry-run lists what it would stop and stops nothing — worth it before the one command that takes away work somebody else may be doing.
dqx down is the project-scoped one.
update
Pull the images this project declares, rather than a hardcoded list.
clean
Remove the environment and the data directories a bind-mounted database leaves behind, which down does not touch. Asks first.
Working inside a project
shell
A shell in the site, in the directory you are standing in. Aliased as bash.
exec
dqx exec -- <command> — one command in the site.
php · artisan · composer · npm · test
The tool, in the right container and directory, with the project's credentials available.
run
dqx run <name> — a command the project declared under commands: in its config.
open
The site, in your browser.
logs
dqx logs [service] — tail logs.
xdebug
dqx xdebug on|off, per developer and gitignored. dqx up re-applies your choice.
The database
db
Open a client. dqx db --url prints today's URL for a GUI tool — the published port changes on every up, so this is the only reliable source.
db:import · db:export
dqx db:import <file>, dqx db:export [file].
snapshot · restore
The database and the storage directories, which is what a project needs to actually be restorable.
Seeing what is going on
info
Every URL, port and connection this project has. --json for a script or an agent.
list
Every project on the machine, on every backend, one row per checkout with all of its domains. --json supported.
doctor
What is broken here, with a severity and a remedy for each finding. --json supported.
verify
Ask every declared domain what it actually answers. --json supported.
sites
The domains this project serves.
memory
What each project is costing, and what the VM holds beyond that.
scan
What the project's own files say about it — declared versus detected versions, and what disagrees.
Setting a project up
init
Create a project. Flags for the simple case, --from <file> for the whole surface, --scaffold to create the application too. See creating projects.
adopt
Read a project that already exists and write the declaration for it. Prints what it would write and changes nothing; --write applies it.
install
Set the project up from nothing: clone, generate, start, install, run the project's own steps. --only <steps> re-runs one part.
sync
Regenerate the environment from the declaration, keeping anything hand-edited. Reports what it would remove and what disagrees; it never rewrites the declaration itself.
switch
Change backend. Refuses, with the reason, when the project needs something the target cannot give.
layout
dqx layout [single|multi] — where the code sits. --dry-run first; see layouts.
link · repair · migrate · domains
Register with the backend, repair a backend's own state, migrate an older config, and rename domains across a project's files.
The tool itself
docs
dqx docs [topic] — this documentation, served locally. dqx docs ssl jumps to the page.
mcp
Run the MCP server for an AI agent. See AI tooling.
config
dqx config get <key> reads the project's configuration; dqx config machine reads and writes this machine's settings.
auth
Report, import or set the credentials composer needs. Credentials are discovered, never stored by dqx.
version · self-update
What this is, and replacing it with the current release.
changes · release
Record a change for the next release, and roll the pending changes into a version.