Creating a Freeform Workspace¶
From the web¶
- Open the freeform template.
- Give the workspace a name. Use lowercase letters, digits and hyphens, for example
client-site. The name appears in all of the workspace’s URLs. - Fill in the settings described below, or leave the defaults.
- Click Create workspace. The workspace is usually ready in about a minute; you can watch the startup log on the workspace page.
Settings¶
You can change every setting below later. On the workspace page, open Settings → Parameters, change the value, then restart the workspace. Changes take effect on the next start.
DDEV project names¶
A comma-separated list of the DDEV projects you plan to run, for example shop,blog. For each name, the workspace gets:
- an app button for the site, labeled with the project name,
- a Mailpit (name) button for captured email,
- an xhgui (name) button for profiling.
Leave it empty for a single project with the same name as the workspace.
Names must match exactly
The name you list here must be exactly the name of the DDEV project (name: in .ddev/config.yaml, set with ddev config --project-name=...). Use lowercase letters, digits and hyphens. If a project isn’t listed, its site has no app button and no working URL. ddev coder-setup warns you when this happens.
Public Sharing¶
Off by default, so only you can open your sites. Turn it on to let anyone with the link open every listed project’s site, without signing in. Mailpit and xhgui always stay private. See Sharing your site.
VS Code Extensions¶
Choose which extensions VS Code for Web installs. You can also install more extensions from the Extensions view at any time; they stay installed across restarts.
Enable Claude Code remote control¶
Off by default. Turn it on to control Claude Code running in this workspace from claude.ai/code or the Claude mobile app. Claude Code: skip permission prompts passes --dangerously-skip-permissions. See Claude Code.
Run a Claude Code self-hosted runner¶
Off by default. Turn it on to have this workspace run sessions you start on claude.ai/code in a self-hosted environment. Claude Code runner: concurrent sessions sets how many run at once (1 to 4). This can’t be combined with remote control, and the workspace should be used only for the runner. See Claude Code.
From the command line¶
With the Coder CLI logged in to coder.ddev.com:
The CLI asks for each setting. Because a list of project names contains commas, put it in a file instead of using --parameter, which splits values on commas:
cat > params.yaml <<'YAML'
project_names: "shop,blog"
YAML
coder create --template freeform my-workspace --rich-parameter-file params.yaml --yes
Resources¶
Each workspace gets the CPU, memory and disk that coder.ddev.com allocates to every workspace. You don’t choose them when creating it. If you need more, open an issue to discuss your use case.