Explore guides
Your first working configuration
Try a file-only setup, inspect the plan, and apply it twice to see convergence.
1. Install the CLI and create a project
Download the native workstation executable for your macOS or Linux architecture from GitHub Releases and put it on your PATH. It includes its runtime; preinstalled Node.js is not required. See the source installation guide for platform instructions.
Init creates workstation.config.ts without overwriting an existing file. Built-in imports work through the native CLI without a local package. Editor completion can use a linked build or project dependency.
workstation --help
mkdir workstation-demo
cd workstation-demo
workstation init2. Declare one file and one task
Replace the generated starter with this configuration. Choose an unused demo directory: it writes one JSON file under home and installs no packages.
import { defineConfig, files, task } from "@dovocode/workstation";
export default defineConfig({
resources: [
files.json("~/.config/workstation-demo/settings.json", {
theme: "dark",
editor: { fontSize: 14 },
}),
],
tasks: {
hello: task("echo", ["Hello from Workstation"]),
},
aliases: { hi: "hello" },
});3. Preview, apply, and verify
Plan inspects without writing locks or state. Build applies the setup and records ownership. Status checks the recorded result. A second unchanged build should report convergence.
workstation plan
workstation build
workstation status
workstation build4. Make a change and save the inputs
Change fontSize to 16 in the source, inspect plan, and build again. Run workstation hi to dispatch the task independently; it does not reconcile resources.
Commit the source configuration, imported files, and workstation.lock. Keep ownership state and backups local: they are recovery data and can contain private contents.