> ## Documentation Index
> Fetch the complete documentation index at: https://noorle.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Orientation

> The mental model in one page, before the concept deep dives

A one-page mental model. For step-by-step instructions, see the **Run tab**.

## The shape of it

```mermaid theme={null}
graph TD
    A["Sign in to the Portal"]
    B["Create a gateway or an agent"]
    C["Bind capabilities"]
    D["Connect a caller"]

    A --> B
    B --> C
    C --> D
```

## 1. Sign in

Noorle's web UI is the **Portal**, at [platform.noorle.com](https://platform.noorle.com).

Sign-in is passwordless. You enter your email and get a magic link, plus a short manual code for the case where you started on one device and want to finish on another. There is no password to set or rotate.

You land in an account. Everything you create — agents, gateways, capabilities, knowledge, workflows — is scoped to it.

## 2. Create a gateway or an agent

**Gateway** — publishes tools at `mcp-{handle}.noorle.com` and waits. Someone else's AI decides what to call. Choose this when you are supplying tools, not reasoning.

**Agent** — does the reasoning itself. It has a system prompt, memory across turns, an autonomy policy, and its own A2A endpoint at `agent-{handle}.noorle.com`. Choose this when the thinking should happen on Noorle.

They are not exclusive. An agent and a gateway can be bound to the same capabilities.

## 3. Bind capabilities

Three kinds, all reaching the model as MCP tools.

**Built-in** — twelve, already seeded into your account:

|                                   |                                                      |
| --------------------------------- | ---------------------------------------------------- |
| Files                             | read/write in a scoped workspace                     |
| Web Search                        | web search                                           |
| HTTP Client                       | outbound HTTP                                        |
| Knowledge Retrieval               | semantic search over your knowledge bases            |
| Code Runner                       | Python and JavaScript, in WebAssembly                |
| Sandbox                           | an ephemeral session container                       |
| Browser                           | fetch, scrape, screenshot, PDF                       |
| Computer                          | a persistent machine — **agents only**               |
| Memory                            | store, recall, and forget durable facts              |
| Plugin / Skill / Workflow Builder | authoring tools — agents and gateways, not workflows |

**Plugins** — your own WebAssembly components, uploaded as `.npack`.

**Connectors** — a REST API (OpenAPI import supported), a server from the public MCP registry, or your own MCP server.

<Note>
  Not every capability appears on every surface. Computer is agent-only. On an MCP gateway with no authenticated caller, tools that need a workspace — all of Files, all of Sandbox, and Browser's screenshot/PDF/snapshot — are withheld from the list entirely.
</Note>

## 4. Connect a caller

**To a gateway:** any MCP client, over Streamable HTTP. There is no `/sse` endpoint and no WebSocket — the origin root is the endpoint. A POST must accept both `application/json` and `text/event-stream`.

**To an agent:** the Portal Playground, A2A JSON-RPC at its own host, AG-UI over SSE, or a messaging channel.

## Key concepts

| Concept               | In one line                                                                |
| --------------------- | -------------------------------------------------------------------------- |
| **Capability**        | Anything an agent, gateway, or workflow can call                           |
| **Tool presentation** | Whether the model sees every tool, discovery meta-tools, or one dispatcher |
| **Autonomy gate**     | The admission door every tool call passes before executing                 |
| **Thread memory**     | The current conversation, rebuilt each turn from the durable journal       |
| **Agent memory**      | Curated facts that persist across threads                                  |
| **Workflow**          | A durable graph that survives restarts and can wait indefinitely           |
| **Journal**           | The append-only record the conversation itself is rebuilt from             |

## How an agent remembers

Two tiers, not three.

**Thread memory** is the current conversation. The recent window — **20 messages** — is read back out of the durable journal on every turn. Once a thread crosses 2,000 tokens or 50 messages, a rolling summary is generated and prepended as its own system message. The summary is *added* to the window; it does not shrink it.

**Agent memory** is a small set of curated facts that outlive the thread. At most 10 high-importance entries are pinned into the prompt automatically.

<Note>
  Conversation history lives in the durable journal, not in a cache. Cache loss does not cost you a conversation.
</Note>

See [Memory System](/docs/learn/concepts/memory-system).

## Authentication in one table

| Credential        | For              | Lives                                                 |
| ----------------- | ---------------- | ----------------------------------------------------- |
| Portal session    | The web UI       | A host-only cookie, sliding 20-hour inactivity window |
| API key           | Server-to-server | Until revoked. Format `ak-{access_id}{secret}`        |
| Device-flow token | CLI              | 1-hour access token from `api.noorle.com`             |
| Per-gateway OAuth | MCP clients      | Issued by the gateway itself, valid only there        |

See [Authentication](/docs/learn/auth/overview).

## What decides whether a tool call runs

Not the prompt. Every call passes an admission door: a hardline floor in code, the account's deny ledger, any recorded human decision, the invocation policy, then the agent's autonomy level against the tool's risk tier.

The **surface** matters too. Only interactive surfaces — the Playground, AG-UI clients, A2A — can pause for a human. On a gateway, a workflow step, or a channel, a call that would pause is **denied**.

## Next steps

<CardGroup cols={2}>
  <Card title="Core concepts" href="/docs/learn/concepts/model-context-protocol">
    MCP, gateways, capabilities, agents, memory, workflows.
  </Card>

  <Card title="Five-minute quickstart" href="/docs/run/five-minute-quickstart">
    Actually create something.
  </Card>

  <Card title="Build a plugin" href="/docs/build/quickstart">
    Custom logic in WebAssembly.
  </Card>

  <Card title="API reference" href="/docs/reference/introduction">
    Endpoints and protocol detail.
  </Card>
</CardGroup>
