Get started

Manual workspace

Run one create yourself in the terminal. See what gets written to disk, what manifest it produces, and what default backends get wired.

6 min readUpdated 3 days agoEdit on GitHub

This tutorial covers exactly one command: one create. Picking which templates to use is the previous chapter; deploying for the first time is the next chapter.

1. Install the CLI

curl -fsSL https://1cli.dev/install.sh | bash
one --version

Manual options live in installation.

2. Run one create

The simplest form prompts you interactively for everything:

one create my-workspace

If you came from the templates page with a generated command, you can paste it directly — it has --add / --env-provider already filled in.

Non-interactive form (for scripts and CI):

one create my-workspace \
  --yes \
  --env-provider dotenv

Key flags:

FlagWhat it does
--name <name>Workspace name (overrides positional arg's basename)
--yesSkip all prompts; accept defaults
--env-provider dotenv | infisicalChoose the env backend (default: dotenv; switch later with one env switch infisical)
--add <template-id>[:<project-name>]Pre-add a project; repeatable

For the full list, see the one create reference.

3. What got written

cd my-workspace
ls -la

You'll see something like:

.git/
.github/
apps/
one.manifest.json
packages/
services/

Inspect the manifest:

cat one.manifest.json | jq

Key parts of the produced manifest:

  • version: 1 — required schema version
  • workspace.id — generated UUID
  • environments.names: ["dev", "preview", "prod"] and default: "dev"
  • domains.env — the env backend you chose (dotenv or infisical)
  • domains.deploy and domains.container — left unset at this stage; filled in when individual projects opt into deploy / container backends
  • projects: [] — empty unless you passed --add

4. Defaults wired by one create

Every new workspace gets two baseline capabilities without prompting:

DomainBackendWhat it gives you
envdotenv (or infisical if you chose it).env file management for every project
devprocessEach one add records a dev command at projects[].domains.dev.command, run by one dev via the built-in supervisor

CI is not configured by one create or one add, and no workflow file is generated automatically.

5. The first commit

git status
git add .
git commit -m "chore: scaffold workspace"

one create already ran git init. The first commit captures the skeleton.

Common errors

CodeSymptomFix
INVALID_NAMEWorkspace name has unsupported charactersUse ^[a-zA-Z0-9][a-zA-Z0-9_-]*$ (kebab-case is safe)
WORKSPACE_NESTED_FORBIDDENTried to one create inside an existing workspaceRun from a non-workspace directory
TARGET_EXISTSThe target directory already exists and is non-emptyPick a different name, or empty the directory first
TEMPLATE_NOT_FOUND--add <id> used an unknown template idRun one templates list or visit the templates page

Full table: error codes.

Next