Skip to content

The vizzy CLI

The Vizzy app ships a vizzy command line tool. It uses the same engine as the app, with no window required. It does four things:

  • Render any .vizzy.md to images (PNG, JPEG, TIFF, HEIC, AVIF), so a coding agent can write a diagram and put the image in your repo.
  • Lint files for problems the renderer ignores: broken links, unsupported HTML, stray edges. You can gate CI on it.
  • Control the running app: focus a node, jump to a document, open a hint, or read what a window is showing, so an agent can navigate the canvas with you.
  • Publish a diagram or a whole folder to a shareable usevizzy.com link. Sign in once with vizzy login, then run vizzy publish from any script or agent.

The CLI lives inside the app. On first launch, the app installs the vizzy launcher into /usr/local/bin automatically if that folder is writable without admin rights. Often there is nothing to do. Confirm it worked:

Terminal window
vizzy --help
vizzy version # print the installed version

If vizzy is not found, install it explicitly:

  • Vizzy ▸ Install Command Line Tool… in the app. You may be asked for your password if /usr/local/bin needs admin rights.
  • Or headlessly, from a script or a coding agent. This is what usevizzy.com/prompt.md uses:
Terminal window
/Applications/Vizzy.app/Contents/MacOS/Vizzy install-cli

install-cli never prompts. If the folder needs admin rights, it prints the exact sudo … install-cli command to run and exits non-zero.

Each time you open Vizzy it re-links the installed vizzy to the running app, so moving the app or updating it keeps the command working without reinstalling.

Run vizzy with no subcommand to open the current folder, or pass paths to open specific files or folders:

Terminal window
vizzy # open the current directory in Vizzy
vizzy ~/Code/myproject # open a folder
vizzy vizzy/auth.vizzy.md # open a single diagram file

This reuses a running instance and focuses the existing window instead of launching a second copy.