# project
URL: https://synquic.tech/docs/cli/reference/project.md

Commands, arguments, and options for synq project.

See the [workflow guide](/docs/cli/projects) for examples. Global flags such as `--json` go before the command; see [global options](/docs/cli/reference#global-options).

## synq project

Manage Synq projects

```text
synq project|projects [options] [command]
```

| Subcommand | Purpose |
| --- | --- |
| [`list\|ls`](/docs/cli/reference/project#synq-project-list) | List projects in the active organization |
| [`get <id>`](/docs/cli/reference/project#synq-project-get) | Show a single project |
| [`rename <id> <name>`](/docs/cli/reference/project#synq-project-rename) | Change a project's display name |
| [`release-image [options] <id>`](/docs/cli/reference/project#synq-project-release-image) | Track and deploy a versioned prebuilt container image |
| [`create [options]`](/docs/cli/reference/project#synq-project-create) | Create a project |
| [`delete\|rm [options] <id>`](/docs/cli/reference/project#synq-project-delete) | Delete a project (tears down all resources) |
| [`env`](/docs/cli/reference/project#synq-project-env) | Manage project environment variables |
| [`git`](/docs/cli/reference/project/git#synq-project-git) | Manage git linkage and auto-deploy |
| [`connect [options] <id> <domain>`](/docs/cli/reference/project#synq-project-connect) | Connect a custom domain to a project |
| [`enable <id>`](/docs/cli/reference/project#synq-project-enable) | Start a stopped project |
| [`disable <id>`](/docs/cli/reference/project#synq-project-disable) | Stop a running project |
| [`sleep-mode <id> <mode>`](/docs/cli/reference/project#synq-project-sleep-mode) | Set the project sleep mode |
| [`notes [options] <id>`](/docs/cli/reference/project#synq-project-notes) | Show or replace the project's Markdown notes |
| [`replicas [options] <id> [count]`](/docs/cli/reference/project#synq-project-replicas) | Show or set how many containers an app runs (1-20), and its autoscaling |
| [`transfer <id> <direction>`](/docs/cli/reference/project#synq-project-transfer) | Promote a project to Synq Cloud, or bring it back (self-hosted only) |
| [`logs [options] <id>`](/docs/cli/reference/project#synq-project-logs) | Show or stream runtime (container) logs |
| [`server-logs [options] <id>`](/docs/cli/reference/project#synq-project-server-logs) | Show or stream HTTP request logs (edge/OpenResty) |

## synq project connect

Connect a custom domain to a project

```text
synq project connect [options] <id> <domain>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |
| `domain` | Custom domain hostname |

| Option | Meaning |
| --- | --- |
| `--include-www` | Also connect the www. variant |

## synq project create

Create a project

```text
synq project create [options]
```

| Option | Meaning |
| --- | --- |
| `--name <name>` | Project name |
| `--slug <slug>` | Project slug, also the free subdomain &lt;slug&gt;.&lt;apps base domain&gt; when one is set |
| `--git-owner <owner>` | GitHub owner/org |
| `--git-repo <repo>` | GitHub repository name |
| `--git-branch <branch>` | Git branch to deploy |
| `--framework <framework>` | Stack/framework id |
| `--local-path <path>` | Local source path |
| `--port <port>` | Container port |
| `--type <type>` | Project type: app \| docker \| services \| monorepo |
| `--server <id>` | Registered server ID (see `synq server list`) |

## synq project delete

Delete a project (tears down all resources)

```text
synq project delete|rm [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

| Option | Meaning |
| --- | --- |
| `--force` | Cancel active work and delete anyway |
| `--force-orphan` | Orphan resources that won't destroy, then drop the row |
| `--wipe-volumes` | Also destroy persistent volumes |
| `-y, --yes` | Skip the confirmation prompt |

## synq project disable

Stop a running project

```text
synq project disable [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

## synq project enable

Start a stopped project

```text
synq project enable [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

## synq project env

Manage project environment variables

```text
synq project env [options] [command]
```

| Subcommand | Purpose |
| --- | --- |
| [`get [options] <id>`](/docs/cli/reference/project#synq-project-env-get) | List env vars (secret values are masked by the API) |
| [`set [options] <id>`](/docs/cli/reference/project#synq-project-env-set) | Merge env vars: upsert KEY=VALUE pairs and/or delete keys |

## synq project env get

List env vars (secret values are masked by the API)

```text
synq project env get [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

| Option | Meaning |
| --- | --- |
| `--environment <env>` | Filter by environment (production\|preview\|development) |

## synq project env set

Merge env vars: upsert KEY=VALUE pairs and/or delete keys

```text
synq project env set [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

| Option | Meaning |
| --- | --- |
| `--environment <env>` | Target environment (default: "production") |
| `--set <pair>` | KEY=VALUE to upsert (repeatable) (default: []) |
| `--unset <key>` | KEY to delete (repeatable) (default: []) |
| `--secret` | Mark every --set value as a secret |

## synq project get

Show a single project

```text
synq project get [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

## synq project list

List projects in the active organization

```text
synq project list|ls [options]
```

## synq project logs

Show or stream runtime (container) logs

```text
synq project logs [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

| Option | Meaning |
| --- | --- |
| `--tail <n>` | Number of recent lines |
| `-f, --follow` | Stream logs until interrupted |

## synq project notes

Show or replace the project's Markdown notes

```text
synq project notes [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

| Option | Meaning |
| --- | --- |
| `--set <markdown>` | Replace the notes with this Markdown text |
| `--file <path>` | Replace the notes with the contents of a file (- reads stdin) |
| `--clear` | Remove the notes |

## synq project release-image

Track and deploy a versioned prebuilt container image

```text
synq project release-image [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

| Option | Meaning |
| --- | --- |
| `--image-template <reference>` | Image reference with &#123;tag&#125; or &#123;version&#125;, e.g. ghcr.io/acme/api:&#123;tag&#125; |
| `--github-repo <owner/repo>` | Resolve versions from GitHub Releases |
| `--version-url <https-url>` | HTTPS endpoint returning a version or tag |
| `--pin <version>` | Deploy a fixed version instead of the discovered latest release |

## synq project rename

Change a project's display name

```text
synq project rename [options] <id> <name>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |
| `name` | New display name |

## synq project replicas

Show or set how many containers an app runs (1-20), and its autoscaling

```text
synq project replicas [options] <id> [count]
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |
| `count` | Replica count to run now (1-20) |

| Option | Meaning |
| --- | --- |
| `--autoscale <on\|off>` | Turn autoscaling on or off |
| `--min <n>` | Autoscale: fewest replicas |
| `--max <n>` | Autoscale: most replicas (up to 20) |
| `--cpu <percent>` | Autoscale: CPU target in % (default 70) |
| `--memory <percent>` | Autoscale: memory target in %, or 'none' |
| `--allow-shared-volumes` | Confirm every replica may mount the app's writable volumes |
| `--no-apply` | Only save; the next deploy applies it |

## synq project server-logs

Show or stream HTTP request logs (edge/OpenResty)

```text
synq project server-logs [options] <id>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |

| Option | Meaning |
| --- | --- |
| `--limit <n>` | Number of recent entries (max 200) |
| `--domain <domain>` | Restrict to a specific domain |
| `-f, --follow` | Stream request logs until interrupted |

## synq project sleep-mode

Set the project sleep mode

```text
synq project sleep-mode [options] <id> <mode>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |
| `mode` | One of: auto_sleep, always_on |

## synq project transfer

Promote a project to Synq Cloud, or bring it back (self-hosted only)

```text
synq project transfer [options] <id> <direction>
```

| Argument | Meaning |
| --- | --- |
| `id` | Project ID |
| `direction` | One of: to-cloud, to-self-hosted |
