# doctl serverless – DigitalOcean Documentation > The `doctl serverless` commands provide an environment for developing, testing, and deploying serverless functions. One or more local file system areas are employed, along with one or more 'functions namespaces' in the cloud. A one-time install of the serverless software is needed (use `doctl serverless install` to install the software, then `doctl serverless connect` to connect to a functions namespace associated with your account). Other `doctl serverless` commands are used to develop, test, and deploy. - [doctl serverless connect](https://docs.digitalocean.com/reference/doctl/reference/serverless/connect/index.html.md): This command connects `doctl serverless` support to a functions namespace of your choice. The optional argument should be a (complete or partial) match to a namespace label or id. If there is no argument, all namespaces are matched. If the result is … - [doctl serverless deploy](https://docs.digitalocean.com/reference/doctl/reference/serverless/deploy/index.html.md): At any time you can use `doctl serverless deploy` to upload the contents of a functions project in your file system for testing in your serverless namespace. The project must be organized in the fashion expected by an App Platform Functions component. The … - [doctl serverless get-metadata](https://docs.digitalocean.com/reference/doctl/reference/serverless/get-metadata/index.html.md): The `doctl serverless get-metadata` command produces a JSON structure that summarizes the contents of a functions project (a directory you have designated for functions development). This can be useful for feeding into other tools. - [doctl serverless init](https://docs.digitalocean.com/reference/doctl/reference/serverless/init/index.html.md): The `doctl serverless init` command specifies a directory in your file system which will hold functions and supporting artifacts while you're developing them. This 'functions project' can be uploaded to your functions namespace for testing. Later, after … - [doctl serverless install](https://docs.digitalocean.com/reference/doctl/reference/serverless/install/index.html.md): This command installs additional software under `doctl` needed to make the other serverless commands work. The install operation is long-running, and a network connection is required. - [doctl serverless status](https://docs.digitalocean.com/reference/doctl/reference/serverless/status/index.html.md): This command reports the status of serverless support and some details concerning its connected functions namespace. With the `--languages flag, it will report the supported languages. With the `--version flag, it will show just version information about … - [doctl serverless undeploy](https://docs.digitalocean.com/reference/doctl/reference/serverless/undeploy/index.html.md): This command removes functions, entire packages, or all functions and packages, from your function namespace. In general, deploying new content does not remove old content although it may overwrite it. Use `doctl serverless undeploy` to effect removal. The … - [doctl serverless uninstall](https://docs.digitalocean.com/reference/doctl/reference/serverless/uninstall/index.html.md): Removes serverless support from `doctl` - [doctl serverless upgrade](https://docs.digitalocean.com/reference/doctl/reference/serverless/upgrade/index.html.md): This command upgrades the serverless support software under `doctl` by installing over the existing version. The install operation is long-running, and a network connection is required. - [doctl serverless watch](https://docs.digitalocean.com/reference/doctl/reference/serverless/watch/index.html.md): Type `doctl serverless watch ` in a separate terminal window. It will run until interrupted. It will watch the directory (which should be one you initialized for serverless development) and will deploy the contents to the cloud incrementally as it detects … ## doctl serverless activations The subcommands of `doctl serverless activations` retrieve results, logs, or complete activation records of functions deployed to your functions namespace. - [doctl serverless activations get](https://docs.digitalocean.com/reference/doctl/reference/serverless/activations/get/index.html.md): Retrieve the activation record for a previously invoked function. You can limit output to the result or the logs. The `doctl serverless activation logs` command has additional advanced capabilities for retrieving logs. - [doctl serverless activations list](https://docs.digitalocean.com/reference/doctl/reference/serverless/activations/list/index.html.md): Use `doctl serverless activations list` to list the activation records that are present in the cloud for previously invoked functions. - [doctl serverless activations logs](https://docs.digitalocean.com/reference/doctl/reference/serverless/activations/logs/index.html.md): Use `doctl serverless activations logs` to retrieve the logs portion of one or more activation records with various options, such as selecting by package or function, and optionally watching continuously for new arrivals. - [doctl serverless activations result](https://docs.digitalocean.com/reference/doctl/reference/serverless/activations/result/index.html.md): Retrieve just the results portion of one or more activation records. ## doctl serverless functions The subcommands of `doctl serverless functions` manage your functions namespace, such as listing, reviewing, and invoking your functions. - [doctl serverless functions get](https://docs.digitalocean.com/reference/doctl/reference/serverless/functions/get/index.html.md): Retrieves the code or metadata of a deployed function. - [doctl serverless functions invoke](https://docs.digitalocean.com/reference/doctl/reference/serverless/functions/invoke/index.html.md): Invokes a function in your functions namespace. You can provide inputs and inspect outputs. - [doctl serverless functions list](https://docs.digitalocean.com/reference/doctl/reference/serverless/functions/list/index.html.md): Lists the functions in your functions namespace. ## doctl serverless namespaces Functions namespaces (in the cloud) contain the result of deploying packages and functions with `doctl serverless deploy`. The subcommands of `doctl serverless namespaces` are used to manage multiple functions namespaces within your account. Use `doctl serverless connect` with an explicit argument to connect to a specific namespace. You are connected to one namespace at a time. - [doctl serverless namespaces create](https://docs.digitalocean.com/reference/doctl/reference/serverless/namespaces/create/index.html.md): `Use `doctl serverless namespaces create` to create a new functions namespace. Both a region and a label must be specified. - [doctl serverless namespaces delete](https://docs.digitalocean.com/reference/doctl/reference/serverless/namespaces/delete/index.html.md): Use `doctl serverless namespaces delete` to delete a functions namespace. The full label or full id of the namespace is required as an argument. You are prompted for confirmation unless `--force` is specified. - [doctl serverless namespaces list](https://docs.digitalocean.com/reference/doctl/reference/serverless/namespaces/list/index.html.md): Use `doctl serverless namespaces list` to list your functions namespaces. - [doctl serverless namespaces list-regions](https://docs.digitalocean.com/reference/doctl/reference/serverless/namespaces/list-regions/index.html.md): Use `doctl serverless namespaces list-regions` to list the values that are accepted in the `--region` flag of `doctl serverless namespaces create`.