Troubleshooting
Helper tool not installing
Section titled “Helper tool not installing”Symptom: The proxy setup dialog shows an error, or ports 80/443 are not accessible after enabling the proxy.
Steps:
- Open System Settings → General → Login Items & Extensions.
- Scroll to Allow in the Background and look for CMDHub Helper. If it is listed but disabled, enable it.
- If it is not listed, try re-installing: open CMDHub settings → Proxy → Install Helper Tool.
- Check the system log for errors:
Terminal window log show --predicate 'subsystem == "dev.cmdhub"' --last 5m
Ports 80/443 already in use
Section titled “Ports 80/443 already in use”Symptom: The helper tool installs but the proxy does not start, or you see “address already in use” in the CMDHub log.
Steps:
- Find what is occupying port 80:
Terminal window sudo lsof -iTCP:80 -sTCP:LISTEN - Common culprits: macOS’s built-in Apache (
httpd), nginx, or another reverse proxy. - Stop the conflicting service. For Apache:
Terminal window sudo apachectl stopsudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist - Restart CMDHub’s proxy from settings → Proxy.
Services not starting
Section titled “Services not starting”Symptom: A service stays in stopped or immediately goes to crashed.
Steps:
- Click the service to open its log panel and read the error output.
- Test the command manually in a terminal from the same working directory.
- Check that the command is on
$PATHin a login shell:Terminal window /bin/zsh -l -c 'which your-command' - Verify the working directory is set correctly in the service settings.
- If the command uses environment variables, confirm they are set in the service’s env config or
.envfile.
DNS not resolving
Section titled “DNS not resolving”Symptom: myapp.test does not resolve, or the browser shows a “Server not found” error.
Steps:
- Check that the resolver file exists:
It should contain
Terminal window cat /etc/resolver/testnameserver 127.0.0.1andport 15353. - If the file is missing, re-enable DNS in CMDHub settings → DNS.
- Flush the DNS cache:
Terminal window sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder - Test CMDHub’s resolver directly:
You should see
Terminal window dig myapp.test @127.0.0.1 -p 15353127.0.0.1in the answer section. - Avoid using
.localas your TLD - it is reserved by mDNS and will not work reliably.
SSL certificate not trusted
Section titled “SSL certificate not trusted”Symptom: The browser shows a certificate warning for https://myapp.test.
Steps:
- Open CMDHub settings → Proxy tab and check CA Status:
- Not Generated → click Generate Certificates first, then return here.
- Generated, Not Trusted → click Trust Certificate and enter your macOS password.
- Generated & Trusted → proceed to step 2.
- Click Regenerate Certificates in Settings → Proxy. This replaces the certs and re-adds the CA to macOS Keychain.
- Quit and relaunch your browser — browsers cache certificate state aggressively.
- To verify the CA is trusted, open Keychain Access, search for “CMDHub”, and confirm the certificate shows a blue trust badge.
- If using Firefox: Firefox uses its own certificate store. Enable
security.enterprise_roots.enabledinabout:config, or import~/.cmdhub/certs/ca.pemmanually via Firefox Preferences → Privacy & Security → Certificates → Import.
See SSL Certificates for a complete guide to the certificate flow.
High CPU or memory usage
Section titled “High CPU or memory usage”Symptom: CMDHub itself is using unexpected CPU or memory.
Steps:
- Open the CMDHub popover and look at the resource monitor indicators next to each service.
- Identify which service is consuming resources and check its logs for runaway behavior (tight loops, excessive logging).
- If CMDHub’s own process is high (not a managed service), please file a bug report with the output of:
Terminal window sample CMDHub 5 -file /tmp/cmdhub-sample.txt && cat /tmp/cmdhub-sample.txt
Service health check always failing
Section titled “Service health check always failing”Symptom: A service shows as unhealthy (orange) even though it seems to be working.
Steps:
- Check the health check configuration - verify the URL, port, or command is correct.
- Test the check manually:
- HTTP:
curl -o /dev/null -w "%{http_code}" http://localhost:3000/healthz - TCP:
nc -zv localhost 5432 - Shell: run the check command directly in a terminal.
- HTTP:
- Increase the
timeoutvalue if the service is slow to respond on startup. - Make sure the service is binding to
localhostor0.0.0.0, not only to a non-loopback interface.