Docs · DevCatz

DevCatz overview

What DevCatz is, how it runs on macOS and Windows, how its window is laid out, and where to read next.

DevCatz is the local development app of the Catzoid family. Point it at a project folder and it works out the stack, installs the runtime the project asks for, gives the site a name like shop.localhost with HTTPS, and starts whatever needs to run. Around the sites it keeps the rest of a dev setup in one window: databases, object storage, WebSocket servers, search engines, a mail catcher, gateways, public sharing, Git and monitoring.

It is free and open source (GPL-3.0), with no account and no paid tier — all cats, no catch. It runs on macOS 13 or later (Apple silicon and Intel) and on Windows 10 or later (x64), and updates itself. Install it from the DevCatz page.

On a Mac the app is signed and notarized. Homebrew works too:

brew tap catzoidhub/catz && brew trust catzoidhub/catz
brew install --cask devcatz

On Windows the installer is DevCatz-Setup-<version>.exe. It installs for your account only, so no administrator prompt appears, and in-app updates install without one too. Its pages: Welcome, Only me or Anyone (all users, under Program Files, which does need an administrator), the install folder (Browse to change it), then Shortcuts — DevCatz is always added to the Start menu, so Windows search finds it, and Create a desktop shortcut is ticked by default. To pin it, right-click DevCatz in Start and choose Pin to taskbar. The last page, DevCatz is ready, has Open DevCatz now. The installer is not code-signed yet, so the first time Windows SmartScreen says Windows protected your PC: choose More info → Run anyway (why).

Getting started walks through the first install step by step.

Mac and Windows

DevCatz is the same app on both. Every rail section, every Settings tab, every site tab and every runtime page (PHP, Python, Node.js, Bun, Go and Rust) is on Windows. What still differs is short:

Still Mac-only or limited Why
Sockudo (WebSocket), Typesense and Sonic (search) They publish no Windows build, so on Windows they run in DoCatz from their official images (Install in DoCatz…), with the same ports, domains and .env lines
Solana and Anchor (Rust) On Windows they run inside WSL, as their own docs say
OrbStack, Colima and Finch as Docker engines Mac apps; Windows uses DoCatz (recommended), Docker Desktop, Rancher Desktop or Podman Desktop
PHP 7.x and 5.6, and PHP from Laravel Herd, Homebrew or static-php Windows PHP comes from php.net only, 8.x
Unix sockets for databases and PHP Windows uses TCP ports only
Finding servers from DBngin, importing sites from Laravel Herd DevCatz reads their Mac folders
Monitoring: load average and per-site network traffic Windows has no load average; the Network card counts the whole PC
WP-CLI installed by DevCatz On Windows put wp-cli.phar and a wp.bat on your Path yourself

Firefox keeps its own certificate store on both platforms; see Sites, domains and HTTPS.

What works differently on Windows

  • PHP comes from php.net’s Windows downloads (NTS x64, with Laravel’s usual extensions on) and is served by a few php-cgi workers per version, labelled PHP (FastCGI), on ports from 9100 up. There is no PHP-FPM. If PHP does not start, it needs the Microsoft Visual C++ Redistributable (x64) — DevCatz says so and gives the link.
  • The certificate authority goes into your own Trusted Root store (no administrator); Windows asks install this certificate? once. Chrome and Edge read it; Firefox needs ca.crt imported or security.enterprise_roots.enabled.
  • URLs without a port use Windows’ port proxy (netsh interface portproxy, run by the IP Helper service): one administrator prompt, and the rules survive restarts.
  • DNS rules. On Windows only browsers resolve .localhost by themselves; Node, PHP, Python and curl do not, so a site calling another by name fails. DevCatz runs its own small DNS on 127.53.0.1:53 and adds Windows DNS rules (NRPT) for your suffix and .localhost that point there — one administrator prompt, from the Welcome dialog or Settings → General → Default domain. DoCatz runs the same DNS on the same address, so whichever cat starts first answers for both. If port 53 is taken by something else (Mobile hotspot / Internet Connection Sharing, Docker Desktop), DevCatz names the program and offers Try again.
  • The shims folder goes first in your user Path with Add to my Path (Runtimes → Node.js → Terminal), no administrator needed; new terminals — Windows Terminal, PowerShell, cmd, VS Code — pick it up. A Node installed for all users still comes first, because Windows puts the system Path before yours.
  • Databases listen on TCP only, there is no socket field, and nothing is compiled: MySQL, MariaDB, PostgreSQL, MongoDB and Elasticsearch come as official Windows builds, Redis and Valkey as community builds (each engine says where its builds come from, with a link).
  • Docker works with DoCatz (recommended; its engine runs in WSL 2 and every container gets a name), Docker Desktop, Rancher Desktop and Podman Desktop (containers on 127.0.0.1 ports). The Docker gateways always run in DoCatz.
  • Secrets — the AI key, Git tokens, database passwords, tunnel tokens — are kept in Windows’ protected storage (DPAPI), tied to your account, instead of the Keychain.
  • Rust links with Microsoft’s linker: when the Visual Studio Build Tools (C++) are missing, the Rust page offers Install Build Tools, which downloads Microsoft’s installer (signature checked) and asks for administrator rights once.
  • The window has no menu bar: the window buttons sit on DevCatz’s own title strip, and the usual menus (File, Edit, View, Help) appear when you press Alt. Closing the window keeps DevCatz in the system tray.
  • Removed files go to the Recycle Bin; Show in File Explorer stands in for Reveal in Finder.

On a Mac, DevCatz uses the login keychain for its CA, launchd for URLs without a port, /etc/resolver for a custom domain, and APFS copy-on-write when it clones a worktree’s dependencies. What DevCatz changes on your computer lists every one of these, on both platforms, and how to undo it.

The window

On the left runs the rail, one icon per section, with Settings (the gear) at the bottom:

Section What it holds
Projects Your sites, each with its own page and tabs — see Sites, domains and HTTPS
Runtimes PHP, Python, Node.js, Bun, Go and Rust versions, and the framework tools for each — see Runtimes
Database MySQL, MariaDB, PostgreSQL, Redis, Valkey, MongoDB and Elasticsearch servers — see Databases
Object Storage (Storage) S3-compatible storage — see Object storage
WebSocket Real-time servers with an inspector — see WebSocket
Search Engine (Search) Meilisearch, Typesense and friends — see Search engines
Git Accounts, repositories and SSH keys — see Git
Mail Every mail your sites send, caught here — see Mail
Gateways WhatsApp, email, push, SMS and Telegram servers — see Gateways
Expose Share a site on a public URL — see Expose
Monitoring (Monitor) CPU, memory and ports per site and service — see Monitoring
Settings Every setting (mod+,) — see Settings and shortcuts

On Windows the window has no menu bar. The minimise, maximise and close buttons sit on a title strip in DevCatz’s own colours, and pressing Alt shows the hidden File, Edit, View and Help menus.

The Projects sidebar

Projects shows your sites in a sidebar next to the site page:

  • Search with / or mod+F; Esc clears it. It matches a site’s name, domain, stack tag or group.
  • The ⇅ menu filters and sorts: Running sites only, Sort by default (drag & drop order), Sort by name, Sort by type, Group by default (your groups), Group by type and No grouping.
  • Favorites and groups: star the sites you open most, put sites into collapsible groups, and drag them into the order you like.
  • The Git chip on each site shows ● for changed files, ↑ for commits ahead and ↓ for commits behind; it turns amber when there are conflicts.
  • Right-click a site for Add to Favorites / Remove from Favorites, Move to Group (an existing group, New Group…, or remove it from its group), Open in Browser and Open Folder. A site whose folder is gone offers Locate… and Remove instead (see Sites).
  • Right-click a group for Rename Group…, Move Up, Move Down and Delete Group (keeps the sites).

The site you had selected opens again on the next launch. The Database sidebar has the same favorites, groups, ordering and running-only filter.

The menu bar and the system tray

DevCatz also lives in the menu bar (the system tray on Windows). Its tooltip reads DevCatz: N of M sites running, and the menu has your sites, Create New Site…, Start All / Stop All, the services and databases with Start / Stop / Restart, runtime updates, Check for Updates…, Settings… and Quit. Closing the window keeps DevCatz there. Monitoring and the menu bar has the full list.

The Help menu (in the menu barunder Alt) has Report a Bug…, Send Feedback… and DevCatz Docs, which opens these pages, plus About and Check for Updates….

The Welcome dialog

The first time DevCatz opens with no sites, it shows Welcome to DevCatz with up to three cards — Two or Three things ask for your passwordask you to confirm — only if you choose them. Nothing is installed until you press a button, and each can be undone in Settings:

  1. Trust DevCatz’s certificate — press Trust… so https:// works without warnings. The DevCatz Local CA lives only on this computer and goes into your login keychain; macOS asks for your password or Touch ID once and goes into your own Trusted Root certificates; Windows asks you to confirm once.
  2. Names without a port (optional) — press Enable… to open sites at https://shop.localhost instead of https://shop.localhost:8443. DevCatz adds two small system services that forward ports 443 and 80 to it; your administrator password once.DevCatz asks Windows to forward ports 443 and 80 to it; administrator approval once.
  3. Site names for your code (recommended) — press Add…. Browsers find *.localhost by themselves; Node, PHP, Python and curl on Windows do not, so a site calling another by name fails. DevCatz adds Windows DNS rules that send these names to its own DNS on this PC; administrator approval once. This card is always shown on Windows.On a Mac this card only appears once your default domain is something other than .localhost: the names then go to DevCatz’s own DNS through /etc/resolver/<tld>, with your administrator password once.

Each card shows its steps while it works. The footer promises what DevCatz does not do — no changes to /etc/hosts, no kernel extensions, nothing at login unless you turn it onno changes to the hosts file, no drivers, nothing at sign-in unless you turn it on — and links to What DevCatz changes on your MacPC (/docs/security). Press Get started, or Maybe later to do the steps later from Settings → Project and Settings → General (see HTTPS and the local certificate).

Your first site, in short

  1. In Projects, press the Create New Site button at the top of the sidebar and pick Link a project folder… (or Clone from Git…, or Park a folder of projects…).
  2. Choose the folder. DevCatz detects the stack and fills in the name, domain and runtime version.
  3. Leave Start the dev server now on and press Create site.
  4. If the project needs a runtime you do not have yet, the site’s Overview says so — press Install.
  5. Open the URL chip in the site header.

Sites, domains and HTTPS explains every field, and Detected stacks lists what DevCatz recognises.

Back and forward

DevCatz remembers which screens you have visited, like a browser:

  • The ← and → buttons at the top of the rail.
  • mod+[ and mod+].
  • The back and forward buttons of your mouse, and a trackpad swipe.
  • Long-press or right-click ← / → to see recent screens and jump straight to one.

About 50 steps are kept while DevCatz is open; the history starts fresh on the next launch.

DevCatz and its siblings

DevCatz works on its own, and gets more useful next to the other cats:

  • DBCatz lists every database DevCatz runs under DevCatz services, and Open in DBCatz buttons in DevCatz jump straight to one. See Databases and the DBCatz docs.
  • DialCatz can import a site — its URL, .env variable names and routes — as an environment, and the site’s API tab has Open in DialCatz. See the DialCatz docs.
  • When a sibling is missing, DevCatz offers Download & Install for your platform and architecture.

The theme and the AI connection are shared between the apps; What the cats share explains how.

Where to next

  • Sites, domains and HTTPS — linking, cloning and parking projects, domains and your own TLD, the local certificate, URLs without a port, the site header, per-site settings, monorepos and worktrees.
  • Detected stacks — every PHP, Python, Node.js, Bun, Go and Rust framework DevCatz recognises, with its dev command, docroot and tasks.
  • Runtimes — PHP with php.ini and extensions, Node.js, Bun, Go, Python with uv, Rust and its tools, queues and dependencies.
  • Databases — database servers, versions, instances, linking them to sites, Redis indexes and importing from elsewhere.
  • Object storage — S3 on your computer with RustFS, MinIO, Silo or SeaweedFS, buckets and keys.
  • WebSocket — Reverb, Sockudo, Centrifugo, Mercure and NATS with an inspector and a test client.
  • Search engines — Meilisearch, Typesense, OpenSearch, Manticore, ZincSearch and Sonic.
  • Mail — catch every mail your sites send, preview it and check it.
  • Expose — share a site through Cloudflare, Expose or ngrok.
  • Gateways — WhatsApp, email servers, push, SMS and Telegram on your computer.
  • Git — accounts, SSH keys, commits, branches, rebase, pull requests and worktrees.
  • Docker — Dockerfiles and compose files from the detected stack, then Build & Up.
  • A site’s tabs — Overview, Env, Database, Storage, API, Mail, Logs and the rest.
  • Monitoring and the menu bar — CPU, memory and ports per site and service.
  • AI in DevCatz — Ask DevCatz, Explain & fix, the helpers, and exactly what is sent.
  • Settings and shortcuts — every setting, every shortcut, and where DevCatz keeps its data.

Last updated 2026-11-03