Workspaces, Global Tasks, and Memory

A workspace defines the directory available to a project task, detected project kinds, session location, and project-level overrides. Desktop also supports directory-free global tasks, with a separate Session store for each scope.

Project workspace detection

The Runtime walks upward for root markers such as .git, .seekclaw, package.json, pyproject.toml, Cargo.toml, go.mod, *.sln, or *.slnx, then detects these project kinds:

Kind Typical markers
Git .git/
.NET *.sln, *.slnx, *.csproj, or *.fsproj
Node / Vue package.json, with an additional Vue dependency check
Python pyproject.toml, requirements.txt, or setup.py
Rust Cargo.toml
Go go.mod
Unity Assets/ and ProjectSettings/

Desktop shows the complete workspace path in the task header and scopes open-location, terminal, Git changes, and Git history actions to that directory.

The .seekclaw directory

After seekclaw init or Desktop workspace initialization, the default layout is:

<workspace>/
└── .seekclaw/
    ├── config.json          # optional workspace overrides
    ├── prompts/             # project prompts
    ├── memory/
    │   └── MEMORY.md        # durable project conventions
    ├── cache/
    ├── sessions/            # JSONL Sessions
    ├── logs/
    ├── skills/
    ├── mcp/
    │   └── servers.json
    └── docs/

For compatibility with older workspaces, the Runtime continues to use root-level .session/, skills/, mcp/, or docs/ directories when they already exist. Initialization also adds SeekClaw state entries to .gitignore.

Global tasks

Global tasks use a global Session store under ~/.seekclaw, and their Session headers contain no project path. The Runtime filters every tool that RequiresWorkspace and skips workspace prompts and automatic build verification. This scope is intended for general conversation rather than local code editing.

A project or global scope may contain no tasks. Desktop creates a Session only when the first message is sent; “Global tasks” in the sidebar simply expands that task list.

Memory

Project Memory lives at .seekclaw/memory/MEMORY.md. The Agent reads it while composing prompts, making it suitable for stable architecture, naming, testing, and release conventions:

# Project conventions

- Use Dapper for data access.
- Every public API change requires integration tests.
- Run `dotnet test` and frontend type checks before release.

Store only durable information that should survive across Sessions. Temporary task progress belongs in the individual Session. Global tasks never inject a project's Memory.

An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.