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/
AGENTS.md
CLAUDE.md
apps/
one.manifest.json
packages/
services/

Inspect the manifest:

cat one.manifest.json | jq

Key parts of the produced manifest:

  • version: 5 — required schema version
  • workspace.id — generated UUID
  • environments.names: ["dev", "staging", "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. Default backends wired by one create

Every new workspace gets three baseline backends installed without you asking:

DomainBackendWhat it gives you
envdotenv (or infisical if you chose it).env file management for every project
cigithub-actionsPer-project .github/workflows/<name>-ci.yml files
devprocessEach one add records a dev command at projects[].domains.dev.command, run by one dev via the built-in supervisor

These do not appear in one.manifest.json#domains because they are installed at the workspace level, not as opt-in domains. The CI workflow files appear when you add the first project.

5. Auto-installed bundled skill

one create also runs the equivalent of one skills install for any AI agent it detects on your machine (Claude Code, Cursor, Codex). Skip this step in CI with --no-skills. To install it later, see Install skill to agent.

6. 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