# Local daemon

The local daemon accelerates repeated discovery, parsing, checking, definition
navigation, source transactions, and bounded tooling jobs. It is optional: a
project, CLI, editor, TUI, shell, agent, or CI run remains correct without it.

## Start and select it explicitly

The commands below are illustrative end-product syntax for the desired daemon
interface.

```console
one daemon serve .
```

The service reports its endpoint reference, selected project or workspace
scope, protocol revision, and process identity. Clients opt in through an
explicit admitted endpoint selection. One does not discover an ambient socket,
claim a magic port, modify shell startup, or silently start a background
process.

Use a read-only handshake to verify the exact service you selected:

```console
one daemon status --endpoint local-daemon:<EndpointId>
```

## What the daemon may retain

Cached results are keyed by complete source, lock, tool, configuration, and
owner revisions. Source changes invalidate affected snapshots. A result from
an older valid revision is never shown as the meaning of newer malformed or
incomplete bytes.

The daemon can supervise bounded tooling jobs and stream structured progress,
diagnostics, cancellation, and final owner results. Durable apply operations
keep their own owner journal and identity; disconnecting a client neither
cancels them implicitly nor proves that an effect stopped.

## What the daemon never owns

The daemon owns coordination, not semantic truth. It cannot:

- replace `one.one`, selected sources, `one.lock`, or immutable plans;
- select providers, reinterpret owner contracts, or mint trusted records;
- hold ambient production authority or become a credential store;
- turn a cache hit into Build, deployment, observation, or History evidence;
- make direct and daemon-backed command results semantically different.

Source edits use the same exact source transaction as every other interface:
the client supplies base revisions, the daemon shows the patch and normalized
change, reparses complete affected inputs, reruns required owner checks, and
commits only while every base is still current.

## Recovery and multiple workspaces

Endpoint identity and scope are explicit, so several daemon processes can
serve different workspaces without accidental cross-talk. Stale endpoints and
processes are reported, not silently replaced. Reconstructible caches may be
cleaned; journals, retained evidence, protected handles, and durable local data
follow their owners' recovery and retention procedures.

A managed One service uses the same bounded protocol and public owner
contracts with explicit authentication, tenant isolation, quotas, retention,
and authority. It is a deployment choice, never a hidden prerequisite for the
local lifecycle.

See [project and workspace](/one/reference/project),
[inspect and operate](/one/lifecycle/inspect-operate), and
[One Shell](/one/guides/one-shell).
