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 one create. See templates to choose projects, then continue with environment variables.

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 --preset / --project-names already filled in.

Non-interactive form (for scripts and CI):

one create my-workspace --yes

Key flags:

FlagWhat it does
--name <name>Workspace name (overrides positional arg's basename)
--yesSkip all prompts; accept defaults
--preset <id>Create the projects encoded by the template picker

For the full list, see the one create reference.

3. What got written

cd my-workspace
ls -la

You'll see something like:

.git/
.config/
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"
  • env — optional Infisical binding, absent until configured
  • projects: [] — empty unless you passed --preset

4. Defaults wired by one create

Every new workspace gets two baseline capabilities without prompting:

CapabilityImplementationWhat it gives you
envInfisicalDirect process injection after binding; shell environment before binding
devmiseEach one add records a dev command at projects[].dev.command, run by one dev through mise

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_FOUNDThe preset refers to an unavailable templateRun one templates list or visit the templates page

Full table: error codes.

Next