The functions command manages Neon Functions on a branch. This is the command reference; for the full deployment workflow, see Deploy functions. To run functions locally, see neon dev.
neon functions deploy
Deploys a function from a local directory or entry file. The <slug> is the permanent function identifier: 1 to 20 lowercase letters and digits (^[a-z0-9]{1,20}$).
neon functions deploy <slug> [options]By default, deploy waits until the deployment finishes building (--wait=true), which is the predictable path for scripts and CI. Use --no-wait to return immediately after triggering the deployment.
By default, deploy bundles your --src with esbuild before uploading. Pass --no-bundle to skip bundling and deploy a prebuilt source instead: the directory root (or the file you point at) must be named or contain index.mjs or index.js. This is useful when you run your own build step and want to ship the output as-is.
Deploy a function from an entry file:
neon functions deploy hello --src functions/hello.tsINFO: Function deployment triggered for function hello.
Function hello
URL https://br-cool-darkness-123456-hello.compute.c-1.us-east-2.aws.neon.tech/
Deployment Id 1
Status completed
Runtime nodejs24
Memory 2048 MiB
Created At 2026-06-12T00:14:58.044690ZDeploy with environment variables and wait for the build:
neon functions deploy hello --src functions/hello.ts --env LOG_LEVEL=info --waitneon functions list
Lists the functions on the branch.
neon functions list [options]neon functions listSlug Name Status URL Created At
hello hello completed https://br-cool-darkness-123456-hello.compute.c-1.us-east-2.aws.neon.tech/ 2026-06-12T00:14:57.942988ZList with full deployment details for scripts and agents:
neon functions list --output jsonShow output
[
{
"id": "hello",
"slug": "hello",
"name": "hello",
"invocation_url": "https://br-cool-darkness-123456-hello.compute.c-1.us-east-2.aws.neon.tech/",
"current_deployment": {
"id": 1,
"status": "completed",
"memory_mib": 2048,
"runtime": "nodejs24",
"created_at": "2026-06-12T00:14:58.044690Z"
},
"active_deployment": {
"id": 1,
"status": "completed",
"memory_mib": 2048,
"runtime": "nodejs24",
"created_at": "2026-06-12T00:14:58.044690Z"
},
"created_at": "2026-06-12T00:14:57.942988Z"
}
]neon functions get
Shows a function's details.
neon functions get <slug> [options]neon functions get helloFunction
Slug hello
Name hello
URL https://br-cool-darkness-123456-hello.compute.c-1.us-east-2.aws.neon.tech/
Created At 2026-06-12T00:14:57.942988Z
Deployment (current, active)
Deployment Id 1
Status completed
Runtime nodejs24
Memory 2048 MiB
Created At 2026-06-12T00:14:58.044690Zneon functions delete
Deletes a function on the branch.
neon functions delete <slug> [options]neon functions delete helloINFO: Function hello deleted from branch br-cool-darkness-123456neon functions domains
Manage custom domains for functions on the branch.
neon functions domains list
Lists the custom domains registered on the branch.
neon functions domains list [options]neon functions domains listThe default table shows the domain, target function, and CNAME target. To inspect DNS and routing status, use JSON output:
neon functions domains list --output json[
{
"domain": "docs.example.com",
"entity_type": "function",
"entity_id": "hello",
"cname_target": "fn-custom-domains.us-east-2.aws.neon.tech",
"status": "active",
"dns_status": "ok",
"binding_status": "present",
"status_reason": ""
}
]An active status confirms that DNS, CAA authorization, and routing are ready. Verify the domain with an HTTPS request because certificate issuance isn't included in this status.
neon functions domains register
Points a domain you already own at a function on the branch. Both --slug and the domain are required. The command prints a CNAME target; create a CNAME record for the domain at your DNS provider pointing at that target. See Custom domains for DNS, CAA, and TLS details.
neon functions domains register <domain> [options]neon functions domains register docs.example.com --slug helloneon functions domains delete
Deletes a custom domain from the branch.
neon functions domains delete <domain> [options]neon functions domains delete docs.example.comRouting changes are eventually consistent, so the custom URL can continue reaching the function briefly after deletion. Deleting a function doesn't delete its custom-domain registration; delete the domain separately.








