How do I…?
You know what you want to do. This page tells you which page does it.
Harbor's working documentation lives in three tracks, each answering a different shape of question. This page maps jobs to pages — it distills nothing and links everything. If you came here to learn rather than to do, jump to Concepts or start fresh at Get Started.
How the working docs are organized
| Track | Answers | Shape | Index |
|---|---|---|---|
| Operator skills | "How do I run this with the CLI / Console?" | Step-by-step playbooks for a harbor operator | /skills/ |
| Recipes | "How do I do this in Go?" | Copy-paste how-tos against the runtime API | /recipes/ |
| Protocol | "How do I drive this over the wire?" | Choreographies against the versioned Protocol — curl is a complete client | /protocol/ |
Why three tracks
The split mirrors Harbor's four-layer architecture: the CLI and Console are both Protocol clients of a headless Runtime, and the Runtime is also an embeddable Go library. So the same capability shows up three ways — as an operator command, as a Go call, and as a wire exchange. Pick the track that matches how you're holding Harbor.
I want to…
Each row points at the operator skill to run it, the recipe to code it, and the concept to understand it. Cells are blank where a track doesn't cover that job — that's a signal, not an omission.
| I want to… | Operator skill | Go recipe | Concept |
|---|---|---|---|
| Start a project | Scaffold an agent | Scaffold an agent | Architecture |
| Build the agent | Define the agent YAML | Configure a planner | Runtime & planner |
| Wire an LLM | Wire the LLM provider | — see config reference | Governance & security |
| Add a tool | Add an in-process tool | Define a tool | Tools |
| Configure memory & skills | Configure memory and skills | Use memory & skills from Go | Memory & skills |
| Drive it interactively | Run the dev loop · Drive the Playground | Run harbor dev | Sessions, tasks & events |
| Steer & pause a run | Use the Harbor Protocol | Steer & resume a run | Pause, resume & steering |
| Observe & debug | Observe with the Console | Observe an embedded runtime | Observability |
| Embed Harbor in Go | — | Embed Harbor headless | Runtime & planner |
| Build a custom client | Use the Harbor Protocol | — | Build a client |
| Validate & ship | Validate and package | Test an agent | Productionization playbook |
Handling heavy outputs and attachments
Two adjacent jobs that don't fit the table above: when a tool returns large payloads, route them through the artifact store and control how they reach the model. See Control attachment disposition and Provider-native attachments, backed by the artifacts & context-safety concept — a runtime-wide invariant fails loudly rather than letting raw heavy content reach the LLM. For semantic recall, see Embed & retrieve.
Browse by surface
Every operator skill carries a metadata.surface tag — the part of Harbor it plays against. If you know the surface but not the verb, scan here, then open the full skills index.
| Surface | Covers | Start with |
|---|---|---|
cli | The harbor binary — scaffold, dev, validate, package | Run the dev loop |
agent-yaml | The agent manifest the runtime loads | Define the agent YAML |
tools | The transport-agnostic tool catalog (in-process, HTTP, MCP, A2A) | Add an in-process tool |
llm | The LLM provider edge | Wire the LLM provider |
memory | The declared-policy, identity-scoped memory subsystem | Configure memory and skills |
playground | The interactive single-agent chat surface | Drive the Playground |
console | The observability & control plane | Observe with the Console |
protocol | The versioned wire contract | Use the Harbor Protocol |
Browse the full tracks
When you'd rather read a track end-to-end than chase a single job:
- Operator skills — the CLI and Console playbooks, ordered so the first five minutes (scaffold → dev loop → Playground) actually take five minutes.
- Recipes — focused, copy-paste Go how-tos against the runtime API, from scaffolding to embedding Harbor headless.
- The Protocol track — the wire contract: a 15-minute quickstart, the generated methods / events / errors / types reference, and a guide to building a client.
New here?
Two on-ramps
- Just want it running? Get Started walks the shortest path from clone to a live agent.
- Want the why first? Concepts explains the design — the swappable planner, the mandatory identity triple, the unified pause primitive — before you touch a command. For design authority, everything defers to the RFC.