---
title: Workspaces
description: Every project you open is a workspace with its own process; a small hub at 127.0.0.1:8080 lets you switch between them and keeps them alive.
---
# Workspaces

Every folder you open with Lampson becomes a **workspace**: its own sessions, memory, scheduled tasks, plugins and servers. You can have several open at once and switch between them without stopping anything.

```sh
cd ~/code/shop && lampson            # registers ~/code/shop (first time) and opens the terminal on it
cd ~/code/blog && lampson --web      # a second workspace, in the browser
```

## The hub

http://127.0.0.1:8080 is the **hub**: the workspaces screen. Open one, create one (a folder picker on your desktop; a server-side browser on a VPS), turn them on and off, set how long an idle one stays alive.

Each workspace runs in its own process behind the hub; a hub restart never kills them. Every 15 seconds the hub starts what should be running and stops what has been idle (⚙ → hours of inactivity; `0` = never; a workspace with scheduled tasks stays up).

```sh
lampson --hub start|stop|status|logs|restart
lampson --install      # keep the hub alive across logins (Windows: Scheduled Task · Linux: systemd --user)
```

## Where things live

Nothing is written into your project. Lampson keeps its own state in `~/lampson`:

| path | what |
|---|---|
| `~/lampson/.lampson/config.json` | provider, model, keys, preferences |
| `~/lampson/.lampson/ws/<name>/` | one folder per workspace: sessions, traces, schedules, process logs |
| `~/lampson/memory/<name>/` | the agent's notes about that project |
| `~/lampson/plugins/` | global [plugins](/en/docs/plugins) |

Inside your project, only what *you* choose to commit: `.lampson/plugins/`, `.lampson/mcp.json`, `.lampson/lsp.json`, `skills/`, `AGENTS.md`.

## Why a process per project

A tool's file access in Synsema is a literal folder name declared in the code. A workspace is therefore a small folder with a link named `workspace` that points at your project; its process only ever sees that folder. That is what makes "it can only touch this project" true rather than hopeful.
