ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Introduction
Getting Started
    Develop on the web portal
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingDynamic MCP Server - Quickstart
    Develop locally with the CLI
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingDynamic MCP Server - Quickstart
Concepts
Development
Policies
Handlers
API Keys
Rate Limiting
MCP Server
MCP Gateway
AI Gateway
Developer Portal
Monetization
GraphQL
Deploying & Source Control
Analytics
Observability
Networking & Infrastructure
Account Management
Programming API
Build with AI
Zuplo CLI
    OverviewCreate Zuplo APIAuthenticationGlobal OptionsNetwork Connectivitybucket listca-certificate createca-certificate deleteca-certificate describeca-certificate listca-certificate updatecustom-domain createcustom-domain deletecustom-domain listcustom-domain updatedeletedeploydevdocseditorinfoinitlinklistlogoutmtls-certificate createmtls-certificate deletemtls-certificate describemtls-certificate disablemtls-certificate listmtls-certificate updateopenapi convertopenapi mergeopenapi overlayproject createproject infoproject listsource migratesource upgradetesttunnel createtunnel deletetunnel describetunnel listtunnel rotate-tokentunnel services describetunnel services updatevariable createvariable updatewhoami
Migration Guides
Platform LimitsVersion Support PolicySecuritySupportTrust & ComplianceChangelog
powered by Zudoku
Zuplo CLI

Zuplo CLI: Dev

Runs the Zuplo API locally
Code
zuplo dev [options]

Local mTLS client certificates

On managed-dedicated and self-hosted projects, zuplo dev presents client certificates to your backend, so routes that set mtlsCertificate work locally without a code change.

Put each certificate in its own subdirectory of .zuplo-local/mtls, named after the certificate:

Code
.zuplo-local/mtls/my_backend_cert/tls.crt .zuplo-local/mtls/my_backend_cert/tls.key

zuplo dev finds that directory automatically and logs the certificates it loaded. To read certificates from somewhere else, pass --mtls-certs:

TerminalCode
npx zuplo dev --mtls-certs ~/certs/zuplo-uat

The flag takes precedence over .zuplo-local/mtls and fails fast when the directory is missing or holds no valid certificate.

.zuplo-local/ contains unencrypted private keys. Projects created with create-zuplo-api gitignore it already; for older projects, add .zuplo-local/ to your .gitignore. zuplo dev warns at startup when it isn't covered.

The project type comes from projectType in zuplo.jsonc. If that field is missing, run zuplo link to have the CLI detect and write it — otherwise local development falls back to managed-edge and skips mTLS.

On managed-edge projects, local mTLS isn't available and --mtls-certs is ignored with a warning. For the full workflow, including certificate requirements and troubleshooting, see Gateway to Origin mTLS Authentication.

Examples

Start the local development server with default settings (port 9000 for API, port 9100 for editor, port 9200 for docs)

Code
zuplo dev

Start the local server on a custom port

Code
zuplo dev --port 8080

Start only the API server without opening the editor

Code
zuplo dev --no-start-editor

Start the API server without the docs server

Code
zuplo dev --no-start-docs

Start with Chrome DevTools inspector enabled on port 9229

Code
zuplo dev --debug-port 9229

Options

--mtls-certs

Directory containing mTLS client certificates to load for local development (layout: <dir>/<cert-name>/tls.crt and tls.key). Only supported for managed-dedicated projects. If not provided, certificates are loaded from ./.zuplo-local/mtls when that directory exists.

Type: stringAlias: -mtls-certificates-dir

--start-editor

Start the editor with the local server

Type: booleanDefault: true

--start-docs

Start the docs server with the local development setup

Type: booleanDefault: true

--unsafely-ignore-certificate-errors

Unsafely ignore certificate errors

Type: booleanDefault: false

--port

The port to run the local server on

Type: numberDefault: 9000

--editor-port

The port to run the route designer on

Type: numberDefault: 9100

--docs-port

The port to run the docs server on

Type: numberDefault: 9200

--debug-port

The port to run the Chrome inspector on

Type: number

Global options

The following global options are available for all commands:

  • --help
  • --api-key

Additional resources

  • Local Development Troubleshooting
  • Testing your API
  • Gateway to Origin mTLS Authentication
Edit this page
Last modified on August 4, 2026
deploydocs
On this page
  • Local mTLS client certificates
  • Global options
  • Additional resources