--- title: 'Create your workspace' description: 'Build the folder that holds your agents, start it, and point it at a model from the dashboard.' position: 3 --- # Create your workspace > A **workspace** is the folder that holds everything you build: your agents, > your workflows, and the packages they need. This page takes you from an empty > folder to a running workspace with a model behind it. ## Create it From the folder that should hold the workspace:
1. **Create the workspace** ```sh stackbone init my-workspace ``` The command asks what to start with. Pick **Agent**, so the workspace has something to run from the first minute: ```text ◆◆◆ stackbone v0.3.3 · init ◇ Scaffolding workspace "my-workspace" (--with agent) ◇ Installing Stackbone agent skills for every detected coding agent… ◇ Dependencies installed with pnpm ◆ Workspace my-workspace ready Next steps cd my-workspace stackbone dev The first run stops for setup: it prints a Studio link to point this deployment at a model provider. Your coding agent Open your coding agent in the workspace and paste: Use the stackbone-coder skill. The "my-workspace" agent is already scaffolded in this workspace, so skip the scaffolding: interview me about what it should do, then wire it up. ``` You now have a folder with `deep-agents/` for your agents, `workflows/` for your workflows, and a `package.json` with its packages already installed (`init` runs `pnpm install`, or `npm install` when pnpm is not on your machine). The command also registers the workspace with your organization, so the dashboard knows about it before you run anything. If the install failed, or you passed `--no-install`, the **Next steps** note keeps the install line for you to run yourself. 2. **Start it** ```sh cd my-workspace stackbone dev ``` This one command is the whole local loop. It starts a small Postgres, Redis and file store on Docker, opens a tunnel so the dashboard can reach your laptop, and prints where everything lives: ```text ◆◆◆ stackbone v0.3.3 · dev ◇ Docker services ready (postgres + minio ready) ◇ Platform migrations applied (46 applied, 0 skipped) ◇ Agent migrations applied ◇ Tunnel ready (https://a1b2-c3d4e5f6.tun.stackbone.ai) ▸ Open Studio https://app.stackbone.ai/app/acme/installations/019e92f9…?stackbone-dev=… Tunnel https://a1b2-c3d4e5f6.tun.stackbone.ai Local http://127.0.0.1:4242 Agent my-workspace Protocol v15 · 10 capabilities ``` The **Open Studio** link is the one to keep. It carries the tunnel address at the end (`?stackbone-dev=…`), which is how the dashboard reaches the workspace on your laptop rather than a server. Leave the terminal running. Everything below assumes it stays open.
> [!NOTE] > `stackbone init` also asks which [coding agents](/docs/home/get-started/coding-agents) > you use. Whatever you tick gets the Stackbone agent skills and this > documentation as an MCP server, so your coding agent knows the commands and > the SDK without you explaining them. ## Connect a model provider The first run stops before it starts your code, and says why: ```text ▲ Your workflows and agents are not running yet. This deployment has no model provider configured, so agents that name a model cannot start. Configure one in Studio: https://app.stackbone.ai/app/acme/installations/019e92f9…/studio/first-run?stackbone-dev=… Prefer the terminal? Export MODEL_PROVIDER_BASE_URL (and MODEL_PROVIDER_API_KEY, if your provider needs a key) and run `stackbone dev` again. ``` This is expected. Your agents name a model, and no model can be reached yet, so Stackbone holds your code back instead of letting every agent fail one by one. A **model provider** is the address Stackbone sends model calls to. Any OpenAI-compatible endpoint works: OpenRouter, a local Ollama or LM Studio, or a gateway of your own. Open the link the CLI printed. It lands you on a three-step setup in **Studio**, the dashboard for your running workspace. The rest of this section follows the browser. To stay in the terminal, export `MODEL_PROVIDER_BASE_URL` (and `MODEL_PROVIDER_API_KEY`, if your provider needs a key) and run `stackbone dev` again. The gate opens on the first start that finds them.
1. **Name the endpoint** Pick a preset to fill in the base URL, or choose **Custom** and type your own. The key is optional, because a gateway running on your own machine does not ask for one: | Preset | Base URL | API key | | -------------- | ------------------------------ | ---------------- | | **OpenRouter** | `https://openrouter.ai/api/v1` | Yes | | **Ollama** | `http://localhost:11434/v1` | No | | **LM Studio** | `http://localhost:1234/v1` | No | | **Custom** | You type it | Ask your gateway | ![Step one of the Studio setup: the preset buttons, the base URL filled with the OpenRouter address, and a masked API key.](/images/first-steps/studio-setup-endpoint.png) _Choosing OpenRouter fills the base URL for you._ Click **Test connection**. Stackbone calls the endpoint before it saves anything. A wrong key or a typo in the URL comes back here as the provider's own error message, instead of turning up later as a broken agent. 2. **Pick the default model** A working connection gives you the list of models that endpoint serves. Do two things with it. Check that the model your agent asks for is on the list. Agents name their own model in their own code, and the scaffolded one asks for `openai/gpt-4o-mini`. Then click a model to make it this workspace's **default**, the one Stackbone's own built-in workflows use. Entries that cannot hold a conversation, such as image or embedding models, stay visible but cannot be picked. ![Step two of the Studio setup: the model list served by the endpoint, with one row marked as the default.](/images/first-steps/studio-setup-models.png) _The models the endpoint serves. The picked one is marked `default`._ 3. **Save and start** Click **Save and start**. The key is encrypted into your workspace's own store, your agents start, and Studio reports how many came up: ![Step three of the Studio setup: "setup complete", one agent running, and the chosen default model.](/images/first-steps/studio-setup-done.png) _Your agent is running. Nothing needed a restart._
Back in the terminal, `stackbone dev` carries on by itself, with no restart and no second command to run. > [!NOTE] > No provider to hand? Choose **Continue without a provider**. Your workspace > starts, the dashboard works, and your agents show up in the catalog. They > cannot answer until you come back and fill this in. ## Change it later Everything you chose lives on the **Model provider** screen, under **Settings** in the left menu. Point the workspace at a different endpoint, replace the key, or click **Run the guided setup again** to walk the three steps a second time: ![The Model provider screen in Studio, showing the configured endpoint, the masked key, and the option to run the guided setup again.](/images/first-steps/studio-model-provider.png) _A change here takes effect straight away._ Saving with an empty key clears the stored one, which is what you want when you move from a hosted provider to a local gateway. ## If something goes wrong | What you see | What to do | | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | | `Unauthorized` from `stackbone init` | The workspace is registered with your organization, so sign in first with `stackbone login`. | | `stackbone dev` stops on the Docker step | Docker is not running. Start it, then run `stackbone dev` again. | | **Test connection** returns the provider's own error | The endpoint answered and refused. Check the key first, then the base URL. | | The setup screen sends you to **Model provider** instead | Somebody already ran the setup here. Use **Run the guided setup again** to walk it a second time. | | The catalog says an entry is waiting for a provider | The agent is registered but has no model to call. Finish the setup and it starts. | ## What's next - **[Add your first agent](/docs/home/get-started/first-agent)**: an agent you start and chat with. - **[Add your first workflow](/docs/home/get-started/first-workflow)**: a job that runs in steps and finishes on its own.