From c7306c05ac1fe196bfa68dd5d69b230406341f1f Mon Sep 17 00:00:00 2001 From: tanglearncode Date: Mon, 20 Jul 2026 13:08:42 +0800 Subject: [PATCH 1/2] Add Contexts page screenshot; drop external MCP links - Add static/img/features/contexts-page.png, captured from the installed 0.2.0 desktop app: a populated Context (profile, knowledge folder, connected extension) plus the "Connect this context" panel with a card per AI client. Referenced from contexts.md and connect-ai-clients.md. - Remove the two external links to modelcontextprotocol.io (keep the "MCP (Model Context Protocol)" text). Docs link only to NeatContext sites and repositories. --- docs/features/connect-ai-clients.md | 4 +++- docs/features/contexts.md | 2 ++ docs/intro.md | 2 +- static/img/features/contexts-page.png | Bin 0 -> 122557 bytes 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 static/img/features/contexts-page.png diff --git a/docs/features/connect-ai-clients.md b/docs/features/connect-ai-clients.md index 945535a..8932a92 100644 --- a/docs/features/connect-ai-clients.md +++ b/docs/features/connect-ai-clients.md @@ -6,7 +6,7 @@ sidebar_position: 5 NeatContext does **not** host or resell a model, and it never asks for a model API key. Your answers come from the AI client you already use. NeatContext's job is to -hand that client the right context — over a local [MCP](https://modelcontextprotocol.io) +hand that client the right context — over a local MCP (Model Context Protocol) connection — and then get out of the way while the client reads, searches, calls tools, and writes the answer with **its own** model. @@ -23,6 +23,8 @@ Each card on a Context's **Connect this context** panel shows a readiness hint *Ready to connect*, *…not found* (client not installed), or *Build required* (the native backend still needs building, only in a source build). +![The Connect this context panel on the Context page, with a Connect button on each of the ChatGPT Desktop, Claude Desktop, Codex CLI, and Claude Code CLI cards](/img/features/contexts-page.png) + ## How to connect 1. Open **Contexts** and select the Context tab you want to hand off. diff --git a/docs/features/contexts.md b/docs/features/contexts.md index 118b703..956fa3c 100644 --- a/docs/features/contexts.md +++ b/docs/features/contexts.md @@ -16,6 +16,8 @@ actual work there. See [Connecting AI Clients](./connect-ai-clients.md). ## The Context page at a glance +![The Context page: a Context's selected profile, knowledge folder, and extension on the left, and the Connect this context panel with a card per AI client on the right](/img/features/contexts-page.png) + - **Tab strip (top)** — one tab per Context, plus a **+** button for a new Context. - **Selection panels** — this Context's **Domain profiles** (one marked *active*), its **Knowledge folders**, and its **Extensions**. Each panel has an **Add from diff --git a/docs/intro.md b/docs/intro.md index b432ee8..efd7423 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -19,7 +19,7 @@ folders, and tool connections live on your own machine. NeatContext **runs no model of its own**. It hosts no chat, stores no model API key, and produces no answer. Instead, it serves your selected context to your -AI client over a local [MCP](https://modelcontextprotocol.io) connection; that +AI client over a local MCP (Model Context Protocol) connection; that client reads your files, searches your folders, calls your tools, and writes the answer with **its own** model. diff --git a/static/img/features/contexts-page.png b/static/img/features/contexts-page.png new file mode 100644 index 0000000000000000000000000000000000000000..087597e96e9338b6650ab2e18604c0da5f8d2cdc GIT binary patch literal 122557 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 )Zg(0uVsik(6+BqcE>$@zM#GToKM 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 literal 0 HcmV?d00001 From fd3d092e700e1a739bde997696ca680329b0deee Mon Sep 17 00:00:00 2001 From: tanglearncode Date: Mon, 20 Jul 2026 13:17:14 +0800 Subject: [PATCH 2/2] Rework docs into a followable user manual; drop internal details Reframe the user-facing pages around what the user clicks and sees, and remove descriptions of how NeatContext works internally (this is a commercial product). - connect-ai-clients: drop "What the client receives", "Context pinning and live edits", "The runtime boundary", and the per-client mechanism notes; keep a short Connect steps list, an Ask-your-question section, and tips. - core-concepts: rewrite as a plain vocabulary + "how the pieces fit" overview; remove the model-free/MCP/tool-name/credential mechanism. - getting-started: connect/ask steps reduced to actions; fix prerequisite links. - intro / contexts / library / using-extensions / knowledge-bases / context-activity / incident-analysis: remove internal terms (get_context, MCP, proxying, keychain injection, runtime files, hooks, snapshots, file:// link details); state the user-relevant fact plainly instead. --- docs/core-concepts.md | 180 ++++++++-------------------- docs/features/connect-ai-clients.md | 128 ++++++-------------- docs/features/context-activity.md | 8 +- docs/features/contexts.md | 24 ++-- docs/features/knowledge-bases.md | 9 +- docs/features/library.md | 29 ++--- docs/features/using-extensions.md | 40 +++---- docs/getting-started.md | 41 +++---- docs/guides/incident-analysis.md | 13 +- docs/intro.md | 9 +- 10 files changed, 158 insertions(+), 323 deletions(-) diff --git a/docs/core-concepts.md b/docs/core-concepts.md index 5af9c08..7086985 100644 --- a/docs/core-concepts.md +++ b/docs/core-concepts.md @@ -4,66 +4,53 @@ sidebar_position: 3 # Core Concepts -NeatContext organizes the context an AI client uses, scopes it **per Context -workspace**, and hands it off over a local MCP connection — **without running a -model of its own**. This page explains each piece and how they combine. (Each has -a full [feature page](/category/features) as well.) - -## NeatContext runs no model - -This is the idea everything else follows from. NeatContext does **not** host a -chat, does **not** call a model, and does **not** store a model API key. It is a -**control center**: you curate context in it, and your existing AI client — Claude -Code, Claude Desktop, Codex CLI, or ChatGPT Desktop — does the reading, -searching, tool-calling, and answer-writing with its own model. - -When you connect a client, NeatContext exposes a small, read-only local MCP -server. The client calls **`get_context`** and receives **pointers, not content**: - -- the **domain profile file paths** to read, -- the **knowledge folder paths** to search, and -- the **extension tools** available on this connection. - -The client then reads those files, searches those folders, and calls those tools -itself. NeatContext never uploads your corpus and never sees the client's model. - -## The Library holds reusable resources - -The **[Library](./features/library.md)** is your local registry of reusable -resources: - -- **Domain profiles** — Markdown files you create in-app or **link in place** - from disk. -- **Knowledge folders** — local folders you link in place. -- **Extensions** — read-only tool connectors (bundled, personally added, or from - a shared team Library). - -A Library resource can be selected by many Contexts. Removing it from a Context -never deletes it from the Library or from disk. An optional **read-only Team -Library** — any folder following the `profiles/` + `knowledge/` + `extensions/` -convention (typically a git clone) — lets a team share approved resources. - -## The Context is the unit of handoff - -A **[Context](./features/contexts.md)** is a named workspace for one operational -scope, shown as a **tab**. Each Context selects its own: - -1. **domain profiles** (one of them **active**), -2. **knowledge folders**, and -3. enabled **extensions**. - -Because context is per-Context, you never swap things in and out: keep *Team A's* -profile and runbooks in one Context tab and *Team B's* in another, and connect a -client to whichever you need. Every AI-client session is pinned to exactly one -Context. - -## Domain profiles - -A **domain profile** is a Markdown file describing a team or domain: what it -owns, how it investigates, and the actions it must not take. The connected client -reads the active profile completely and treats it as its primary behavioral guide. - -Profiles use YAML front matter for metadata, followed by free-form Markdown: +NeatContext is a control center for the context your AI uses. You curate that +context here, then connect the AI client you already work in and ask your +questions there. This page introduces the vocabulary you'll see in the app. + +## What you work with + +- **Domain profile** — a Markdown file describing a team or domain: what it owns, + how it investigates, and what it must never do. +- **Knowledge base** — a local folder of documents (runbooks, TSGs, postmortems) + your AI can search and cite. +- **Extension** — a read-only connector that gives your AI tools for a real system + (incidents, logs, deployments). +- **Library** — where your profiles, knowledge folders, and extensions live so you + can reuse them. +- **Context** — a named workspace, shown as a tab, that selects the profiles, + knowledge folders, and extensions for one job. +- **AI client** — the app you already use to talk to a model (Claude Code, Claude + Desktop, Codex CLI, or ChatGPT Desktop). NeatContext brings no model of its own. + +## How the pieces fit + +1. **Add resources to your [Library](./features/library.md).** Create or link + [domain profiles](./features/domain-profiles.md), link + [knowledge folders](./features/knowledge-bases.md), and install any + [extensions](./features/using-extensions.md) you need. +2. **Build a [Context](./features/contexts.md).** On a Context tab, select the + profiles, knowledge folders, and extensions for the job, and mark one profile + **active**. +3. **[Connect your AI client](./features/connect-ai-clients.md).** Click **Connect** + and ask your question in the session that opens. The answer ends with a + **Sources** list of the files and tools it used, so you can verify it. + +## The Context is the unit + +A **Context** carries its own profiles, knowledge folders, and extensions, so you +never swap things in and out. Keep *Team A's* profile and runbooks in one Context +tab and *Team B's* in another, and connect a client to whichever you need. + +That is what makes NeatContext's core advantage possible: give two teams their own +Context for the **same** incident, and each correctly reaches its **own** right +action — one hands off, the other fixes the root cause. The +[Incident Analysis walkthrough](./guides/incident-analysis.md) shows this end to +end. + +## Anatomy of a domain profile + +A profile is plain Markdown with optional YAML front matter for metadata: ```markdown --- @@ -87,72 +74,7 @@ Infra Team owns the shared infrastructure that product teams build on… - Do not fail over the billing-postgres primary during business hours. ``` -Good profiles are explicit about three things: **what the team owns**, its -**first checks / investigation order**, and its **guardrails** (dangerous -actions). Those sections are what turn a generic model into a team-specific one. - -Profiles are plain Markdown you own and version however you like. -→ Full details: [Domain Profiles](./features/domain-profiles.md) - -## Knowledge bases - -A **knowledge base** is a local folder of documents — typically a team's -**runbooks**, **troubleshooting guides (TSGs)**, and **postmortems**. The -connected AI client searches the attached folders — in place, locally on your -machine — to ground its answer, and cites the documents it used as **clickable -`file://` sources** at the end of the answer. - -Because a knowledge base is just a folder on disk, you keep it in whatever repo -you already use. -→ Full details: [Knowledge Bases](./features/knowledge-bases.md) - -## Extensions - -An **extension** is a read-only connector that gives your AI **tools** for your -real systems — read an incident, search logs, list deployments. Each one is a -local stdio MCP server; when a client is connected, NeatContext advertises the -selected extension's tools on the same connection and **proxies** each call, -injecting the extension's credentials from your OS keychain so the client never -sees a secret. - -Extensions declare how they authenticate, which determines the Connect -experience: nothing to configure, an inline **API-key form** (the bundled -Datadog), or **OAuth in your browser** (the bundled PagerDuty). Credentials are -encrypted with your OS secure storage and stay on your machine. -→ Using them: [Using Extensions](./features/using-extensions.md) · -Building them: [Building Extensions](./extensions/overview.md) - -## AI clients - -You connect one of the supported clients — **Claude Code**, **Claude Desktop**, -**Codex CLI**, or **ChatGPT Desktop** — from the Context page. NeatContext opens -a **fresh, Context-pinned session** with an invocation-scoped or project-scoped -MCP configuration; it never rewrites your global client config. The client brings -its own model. -→ Full details: [Connecting AI Clients](./features/connect-ai-clients.md) - -## How it all fits together - -```text - ┌───────────────────── One Context workspace ──────────────────────┐ - │ │ - │ Active profile + Knowledge folders + Extensions │ - │ (how to reason) (what to cite) (tools to call) │ - └──────────────────────────────┬───────────────────────────────────┘ - │ Connect (local MCP) - ▼ - Your AI client — Claude Code / Claude Desktop / - Codex CLI / ChatGPT Desktop - │ - get_context → reads files, searches folders, calls tools - ▼ - Grounded, team-specific answer with a ## Sources footer -``` - -Edits you make to a connected Context are picked up on the client's **next** -`get_context` call — no reconnect needed. Selecting a different Context tab does -**not** retarget an open session; connect again to open a new session for it. - -The [Incident Analysis walkthrough](./guides/incident-analysis.md) shows this in -action: the same incident and the same tools in two Contexts, with two different -profiles and knowledge bases, produce two different — and both correct — outcomes. +The sections that matter most are **what the team owns**, its **first checks**, and +its **guardrails** (dangerous actions). Those turn a generic answer into a +team-specific one. Full guidance is in +[Domain Profiles](./features/domain-profiles.md). diff --git a/docs/features/connect-ai-clients.md b/docs/features/connect-ai-clients.md index 8932a92..48ebbb0 100644 --- a/docs/features/connect-ai-clients.md +++ b/docs/features/connect-ai-clients.md @@ -4,112 +4,52 @@ sidebar_position: 5 # Connecting AI Clients -NeatContext does **not** host or resell a model, and it never asks for a model API -key. Your answers come from the AI client you already use. NeatContext's job is to -hand that client the right context — over a local MCP (Model Context Protocol) -connection — and then get out of the way while the client reads, searches, calls -tools, and writes the answer with **its own** model. +Your answers come from the AI client you already use — NeatContext just hands it +the context you selected. There is no model, base URL, or API key to set up in +NeatContext. ## Supported clients -| Client | How it connects | -|---|---| -| **Claude Code** (CLI) | A fresh `claude` session, MCP passed for that invocation only. | -| **Claude Desktop** | A new session in Claude Desktop's built-in **Claude Code**. | -| **Codex CLI** | A fresh Codex TUI session, MCP passed for that invocation only. | -| **ChatGPT Desktop** | A new chat in ChatGPT Desktop's built-in **Codex**. | +- **Claude Code** (CLI) +- **Claude Desktop** (uses its built-in Claude Code) +- **Codex CLI** +- **ChatGPT Desktop** (uses its built-in Codex) -Each card on a Context's **Connect this context** panel shows a readiness hint — -*Ready to connect*, *…not found* (client not installed), or *Build required* (the -native backend still needs building, only in a source build). +Each client has a card in a Context's **Connect this context** panel, with a +readiness hint: *Ready to connect*, *…not found* (the client isn't installed), or +*Build required* (only in a source build). ![The Connect this context panel on the Context page, with a Connect button on each of the ChatGPT Desktop, Claude Desktop, Codex CLI, and Claude Code CLI cards](/img/features/contexts-page.png) -## How to connect +## Connect a client -1. Open **Contexts** and select the Context tab you want to hand off. -2. Attach its domain profiles (mark one active), knowledge folders, and any - trusted read-only extensions. -3. In **Connect this context**, click **Connect** on the client you use. -4. If the client prompts you, **trust** the NeatContext-managed workspace and - **approve** the `neatcontext` MCP tools. +1. Open **Contexts** and select the Context tab you want to use. +2. Add its domain profiles (mark one **active**), knowledge folders, and any + extensions. +3. In **Connect this context**, click **Connect** on your client's card. +4. If the client asks, **trust** the folder it opens and **approve** the + `neatcontext` tools. 5. Ask your question in the session that opens. -Every **Connect** opens a **fresh** session — NeatContext does not resume or scan -your past conversations. It never rewrites your global client configuration: -CLI clients get MCP only for that one invocation, and desktop clients get a -project-scoped config inside a NeatContext-managed workspace. +Every **Connect** opens a **new** session — it does not reopen a past +conversation. To use a different Context, select its tab and click **Connect** +again. -## What the client receives +## Ask your question -Once connected, the client can call one read-only tool plus one tool per selected -extension tool: +Ask your question normally in the session NeatContext opened. Your AI client reads +the Context's profile, searches its knowledge folders, and calls its extension +tools on its own, then writes an answer that ends with a **`## Sources`** list of +the exact files and tools it used. Open a source to check the answer against your +own document. -- **`get_context`** returns the connected Context as **pointers, not content**: - the domain profile file paths to read, the knowledge folder paths to search, and - the extension tools available on this connection — with the instruction to use - them itself. -- **One tool per selected extension tool** (for example `demo_search_logs`), - proxied to that extension's local MCP server with your connection injected from - the OS keychain. The client calls live systems directly but **never sees a - secret**. - -During the MCP `initialize` handshake, NeatContext also supplies its analysis and -output instructions, so the client grounds claims in what it actually read, labels -hypotheses, and ends the answer with a **`## Sources`** section citing the exact -files (as `file://` links with line ranges) and tools it used. - -## Context pinning and live edits - -- **Pinned to one Context.** Sessions launched for the same Context share its - runtime; different Contexts use different runtime and workspace paths, so a later - connection never retargets an earlier session. -- **Live edits.** The MCP server (and, for the desktop clients, a prompt hook) - reread the Context's runtime file, so adding or removing profiles, folders, or - extensions in NeatContext is visible on the client's **next** `get_context` - without reconnecting. -- **Deleted or disconnected Context.** If a Context's runtime is removed, the - client gets an actionable *connect from NeatContext first* message instead of - answering from stale context. - -## The runtime boundary - -The Context runtime file NeatContext writes for a connection contains **only -nonsecret metadata**: profile paths, knowledge-folder paths, allowed extension -commands and tool schemas, and keychain *references*. Extension secrets stay in -your OS keychain and are injected only into the extension process, per call — never -written into a runtime file or exposed to the client. - -## Per-client notes - -### Claude Code - -A fresh `claude` interactive session in a stable per-Context managed workspace -containing only a `UserPromptSubmit` hook; the MCP server is passed via -`--mcp-config` for that invocation. Use `/mcp` inside Claude Code to inspect the -connection and its tools. - -### Claude Desktop - -Opens a new session in Claude Desktop's built-in **Claude Code** surface (not a -plain Claude chat) through a `claude://code/new?folder=…` link. Confirm the folder -and approve the tools when prompted. - -### Codex CLI - -A fresh Codex TUI session started with `-C` in a stable per-Context workspace; the -MCP server is supplied through invocation-scoped `-c` overrides. NeatContext never -edits your `~/.codex/config.toml`. Codex applies its normal project-hook trust -review. - -### ChatGPT Desktop - -Opens a new chat in ChatGPT Desktop's built-in **Codex** host (not a hosted plain -ChatGPT chat) through a `codex://threads/new?path=…` link. Review and trust the -managed workspace, hook, and MCP tools when prompted. +:::tip[Edit a Context without reconnecting] +If you change a connected Context (add a profile, folder, or extension), just ask +your next question — the client picks up the change automatically. You only need to +**Connect** again to start a session for a *different* Context. +::: -:::note[No model configuration, ever] -There is no model provider, base URL, or API key anywhere in NeatContext. If you -expected a "connect your model" step from an older version, it has been removed — -the connected AI client brings the model. +:::note[No model setup] +If you're looking for a "connect your model" step, there isn't one — the connected +AI client brings the model. ::: diff --git a/docs/features/context-activity.md b/docs/features/context-activity.md index 46731ae..c9e3725 100644 --- a/docs/features/context-activity.md +++ b/docs/features/context-activity.md @@ -16,11 +16,9 @@ changes the app's active Context). ## What's recorded - **Sessions opened** — when a client connected to this Context. -- **Context injections** — when the current Context was served to the client - (via `get_context` or the per-prompt hook). -- **Tool calls** — each extension tool the client invoked, with timing and a - **truncated preview**. Full tool payloads are **not** stored by default, and - credentials and sensitive fields are redacted. +- **Context handoffs** — when this Context was handed to the client. +- **Tool calls** — each extension tool the client used, with timing and a short + preview. Full tool payloads aren't stored, and credentials are hidden. This is how you verify a Context: connect a client, ask a question, then read the log to confirm which profiles, folders, and tools were actually served and run. diff --git a/docs/features/contexts.md b/docs/features/contexts.md index 956fa3c..344c3fc 100644 --- a/docs/features/contexts.md +++ b/docs/features/contexts.md @@ -58,17 +58,18 @@ Context; the resource stays in your Library and on disk. ## Connecting a client to a Context -Every AI-client session is **pinned to exactly one Context**. Click **Connect** on -a client card and NeatContext opens a **fresh** session of that client, wired to a -local MCP server scoped to this Context. Details, and what each client does, are in +In the **Connect this context** panel, click **Connect** on your client's card. A +new session opens for *this* Context. Full steps and what each client does are in [Connecting AI Clients](./connect-ai-clients.md). -Two important behaviors: +Two things to know: -- **Live edits.** If you change a connected Context's selection, the client picks - it up on its **next** `get_context` call — no reconnect needed. -- **No silent retargeting.** Selecting a different Context tab does **not** point an - open session at it. To work in another Context, connect a new session for it. +- **You can edit a connected Context.** Add or remove a profile, folder, or + extension and just ask your next question — the client uses the change with no + reconnect. +- **Switching tabs doesn't switch the session.** Selecting a different Context tab + doesn't change an open session. To work in another Context, click **Connect** on + it to open a new session. ## One incident, two Contexts @@ -81,10 +82,9 @@ exactly this. ## Deleting a Context -Click the **✕** on the tab. NeatContext asks for confirmation. Deleting a Context -removes its selection and its activity log, and cleans up its runtime files; the -profiles, folders, and extensions it referenced are **not** deleted — they stay in -your Library for other Contexts. +Click the **✕** on the tab and confirm. Deleting a Context removes its selection +and its activity log. The profiles, folders, and extensions it used are **not** +deleted — they stay in your Library for your other Contexts. :::info[Plan limits] The number of Contexts, and of knowledge folders and enabled extensions per diff --git a/docs/features/knowledge-bases.md b/docs/features/knowledge-bases.md index a3830b0..f8cf008 100644 --- a/docs/features/knowledge-bases.md +++ b/docs/features/knowledge-bases.md @@ -34,11 +34,10 @@ are untouched. ## How it shows up in answers -When you ask a question in a connected client, the client searches the attached -folders **in place, locally on your machine**, and the documents it used are cited -in the answer's **`## Sources`** section — as clickable `file://` links with the -exact line ranges relied on. That's how you verify an answer instead of trusting -it. +When you ask a question in a connected client, the documents it uses are cited in +the answer's **Sources** section — as clickable links to the exact lines. That's +how you verify an answer instead of trusting it. Searches run locally on your +machine. Text-based documents work best — Markdown, plain text, logs, JSON, CSV, HTML. Folders work best when they're focused documentation folders rather than an entire diff --git a/docs/features/library.md b/docs/features/library.md index a4a9f0e..afd0e5c 100644 --- a/docs/features/library.md +++ b/docs/features/library.md @@ -46,25 +46,16 @@ Library** — contributing back is a normal git workflow. Each resource shows its **origin** so you can tell built-in, personal, and team resources apart. -## Extensions have a stricter lifecycle +## Installing extensions -Profiles and knowledge folders are just files, so they are linked in place. An -extension is **executable code**, so it is handled more carefully: +The bundled **PagerDuty** and **Datadog** connectors are ready to use right away. +Any other extension — one you **Add**, **Create**, or that comes from a Team +Library — has to be **installed** before you can use it: open **Library → +Extensions** (or the **Extensions** page) and click **Install**, then review it. +See [Using Extensions](./using-extensions.md). -- **Bundled** extensions ship inside the app and are ready immediately. -- A **personal** or **team** extension folder is a *source location* only. It - becomes callable after you explicitly **install** it — NeatContext validates the - source and copies a snapshot into app-managed storage. -- Source changes are reported, but an **Update / Reload** must explicitly replace - the installed snapshot before new code runs. +## Your files stay yours -This is why an extension you add is trusted narrowly: only bundled first-party -extensions on NeatContext's allowlist are treated as fully trusted; everything else -runs as the read-only connector you reviewed and installed. - -## Where things live - -Personal profiles and knowledge folders are linked by reference and recorded in -NeatContext's local machine state — the files themselves stay wherever you put -them. Installed extension snapshots live in NeatContext's app data. Nothing in the -Library is uploaded to a NeatContext server. +Linked profiles and knowledge folders stay wherever you put them on disk — the +Library just points to them. Nothing in the Library is uploaded to a NeatContext +server. diff --git a/docs/features/using-extensions.md b/docs/features/using-extensions.md index 36a44b5..064084a 100644 --- a/docs/features/using-extensions.md +++ b/docs/features/using-extensions.md @@ -6,11 +6,10 @@ sidebar_position: 6 **Extensions** give your AI **tools**: read an incident, search logs, list deployments, look up a service. Each extension is a small read-only connector that -runs locally as part of NeatContext. When you [connect an AI client](./connect-ai-clients.md) -to a Context, NeatContext advertises that Context's enabled extension tools on the -same connection and **proxies** each call — the client calls your systems directly -but never sees a secret. This page is about *using* extensions; to write your own, -see [Building Extensions](../extensions/overview.md). +runs locally. Enable an extension and select it into a Context, and your connected +AI client can use its tools — with your credentials kept encrypted on your machine, +never exposed to the client. This page is about *using* extensions; to write your +own, see [Building Extensions](../extensions/overview.md). Open the **Extensions** page from the navigation: @@ -31,25 +30,22 @@ disabled but not removed): They are also reference implementations: click the **folder icon** on either card to open its source. -Beyond extensions, the connected AI client reads your selected profiles and -searches your selected knowledge folders with **its own** file and search tools — -NeatContext just hands it the paths. +Beyond extensions, your connected AI client also reads the Context's domain +profiles and searches its knowledge folders — those need no setup here. ## Add an extension 1. Click **Add**. 2. Pick the extension's **folder** — the one containing its `neatcontext-extension.json` manifest. -3. NeatContext validates the folder and **installs a snapshot** into its own data - directory. The new card appears in the list. +3. Review and **install** it. The new card appears in the list. ![A user-installed extension card with its tools listed](/img/features/extensions-with-demo.png) Each card shows the extension's name, description, version, its **tools** (hover one for its description), and controls: **Enable/Disable**, **open folder**, and — -for extensions you added — **remove**. An extension folder is a *source location*; -its installed snapshot is what actually runs, so a later change to the source needs -an explicit **Update / Reload** before new code runs (see [The Library](./library.md)). +for extensions you added — **remove**. If you change an extension's files later, +use its **Update** button to pick up the change. :::caution[Extensions are code you run] An extension runs on your machine with your user's permissions. Treat a @@ -77,10 +73,8 @@ card adapts: ![The PagerDuty card: connect through the provider's sign-in page](/img/features/extension-pagerduty-card.png) -Either way, credentials are **encrypted with your OS secure storage**, stay on -your machine, and are injected into the extension only at the moment a tool runs — -never written into its folder and never exposed to the AI client. **Disconnect** -deletes the stored credentials. +Either way, credentials are **encrypted and stay on your machine**, and are never +exposed to the AI client. **Disconnect** deletes the stored credentials. ## Enable it and select it into a Context @@ -90,10 +84,9 @@ client to see an extension's tools: 1. The extension is **enabled** on the Extensions page. 2. It is **selected** into the Context under **Extensions** on the Context page. -If your AI client asks a question that needs a not-yet-connected extension, the -extension returns a *connection-required* result and the client relays a "connect -it first" message instead of guessing — connect it in NeatContext, and the next -call works. +If you ask something that needs an extension you haven't connected yet, your AI +client will tell you to connect it first. Connect it in NeatContext, then ask +again. ## Create your own extension @@ -111,9 +104,8 @@ There are **two ways** to create an extension: examples. For a full field-by-field walkthrough with a real API, see [Create an Extension in the UI](../extensions/create-extension-ui.md). -2. **Write one yourself (code)** — a single Node script speaking MCP gives you - multiple tools and custom logic. See - [Building Extensions](../extensions/overview.md). +2. **Write one yourself (code)** — a single Node script gives you multiple tools + and custom logic. See [Building Extensions](../extensions/overview.md). Either way the result installs like any other extension: it appears on the Extensions page, its folder is openable (a generated one is a nice starting diff --git a/docs/getting-started.md b/docs/getting-started.md index 5cb5d9d..d7a06dd 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -12,14 +12,11 @@ them into a **Context**, then **connect** the AI client you already use. ## Prerequisites - **The NeatContext desktop app** — installed and able to open (Windows or macOS). -- **A supported AI client, installed and signed in** — one of: - - **[Claude Code](./features/connect-ai-clients.md#claude-code)** (CLI) - - **[Claude Desktop](./features/connect-ai-clients.md#claude-desktop)** (uses its built-in Claude Code) - - **[Codex CLI](./features/connect-ai-clients.md#codex-cli)** - - **[ChatGPT Desktop](./features/connect-ai-clients.md#chatgpt-desktop)** (uses its built-in Codex) - - NeatContext brings **no model** — your AI client brings its own. There is no - API key to enter in NeatContext. +- **A supported AI client, installed and signed in** — one of Claude Code, Claude + Desktop, Codex CLI, or ChatGPT Desktop (see + [Connecting AI Clients](./features/connect-ai-clients.md)). NeatContext brings + **no model** — your AI client brings its own, so there is no API key to enter in + NeatContext. - **(Optional) Node.js 18+** — only if you plan to run the [incident demo](./guides/incident-analysis.md)'s mock systems or [develop your own extensions](./extensions/building-extensions.md). Just @@ -125,31 +122,29 @@ without touching production. ## Step 7 — Connect your AI client -On the Context page, find the **Connect this context** panel and click **Connect** -on the card for the client you use (Claude Code, Claude Desktop, Codex CLI, or -ChatGPT Desktop). +1. On the Context page, find the **Connect this context** panel. +2. Click **Connect** on the card for the client you use (Claude Code, Claude + Desktop, Codex CLI, or ChatGPT Desktop). +3. A new session of that client opens. If it asks, **trust** the folder it opens + and **approve** the `neatcontext` tools. -NeatContext opens a **fresh session** of that client, pinned to this Context, and -starts a local MCP server it can reach. Approve the NeatContext tools if your -client prompts you. No model configuration happens on the NeatContext side — the -client brings its own model. See -[Connecting AI Clients](./features/connect-ai-clients.md) for what each client does. +There is no model to configure — the client brings its own. See +[Connecting AI Clients](./features/connect-ai-clients.md) for what each client +does on Connect. ## Step 8 — Ask your first question, in your AI client -In the session NeatContext just opened, ask a question your profile and knowledge -can answer. For an operational Context: +In the session that just opened, ask a question your profile and knowledge can +answer. For an operational Context: ```text Please analyze this incident: . What should we check first, and what's the safe action? ``` -Your AI client calls NeatContext's `get_context` tool, reads the profile files, -searches the knowledge folders, and calls the extension tools — then writes a -grounded answer that ends with a **`## Sources`** section listing the exact files -(with clickable `file://` links and line ranges) and tools it used. Open a source -to verify the answer against your own runbook. +Your AI client answers using the Context you built, and ends with a **Sources** +list of the files and tools it used. Click a source to check the answer against +your own runbook. Back in NeatContext, open **Context Activity** for this Context to see what was served and which tools ran. diff --git a/docs/guides/incident-analysis.md b/docs/guides/incident-analysis.md index cb8f197..fb754d1 100644 --- a/docs/guides/incident-analysis.md +++ b/docs/guides/incident-analysis.md @@ -129,10 +129,9 @@ Please analyze incident https://localhost:7801/incidents/INC-1001. What should we check first, and what's the safe action? ``` -**What you should see.** The client calls `get_context`, reads the Payments -profile, then calls `demo_get_incident`, `demo_search_logs`, and -`demo_list_deployments`, searches the Payments runbooks, and runs the profile's "is -this ours?" triage: +**What you should see.** The AI reads the Payments profile, calls the demo tools +(`demo_get_incident`, `demo_search_logs`, `demo_list_deployments`), searches the +Payments runbooks, and runs the profile's "is this ours?" triage: - the 5xx started **09:02, before** the 09:05 checkout-api deploy → our deploy isn't the trigger; @@ -144,9 +143,9 @@ this ours?" triage: hand off to Infra Team**, with the evidence. A good investigation can correctly end in a hand-off. -The answer ends with a **`## Sources`** section citing the exact files it read — +The answer ends with a **Sources** section citing the exact files it read — `checkout-api-5xx.md`, `service-ownership.md`, and the hand-off postmortem — as -clickable `file://` links, plus the demo tools it called. Two levers are at work: +clickable links, plus the demo tools it called. Two levers are at work: the answer is **grounded in the Payments knowledge base**, and the **profile shapes the response**, applying the "is this ours?" triage and the "don't touch Infra's surface — hand off" rule. @@ -189,7 +188,7 @@ handed off and run. - **The knowledge base grounds the answer.** Each team's runbooks/TSGs/postmortems give the AI team-specific first-checks and *dangerous-action* rules it would not otherwise know — and the citations let you verify. -- **The extension is just an MCP connector.** Point the same pattern at *your* +- **The extension is a read-only connector.** Point the same pattern at *your* real incident/log/deploy systems and it works beyond the demo. ## Take it further diff --git a/docs/intro.md b/docs/intro.md index efd7423..ef668fb 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -17,11 +17,10 @@ context and hands it to the AI client you **already work in** — Claude Code, Claude Desktop, Codex CLI, or ChatGPT Desktop. Your domain profiles, knowledge folders, and tool connections live on your own machine. -NeatContext **runs no model of its own**. It hosts no chat, stores no model API -key, and produces no answer. Instead, it serves your selected context to your -AI client over a local MCP (Model Context Protocol) connection; that -client reads your files, searches your folders, calls your tools, and writes the -answer with **its own** model. +You keep working in your AI client — NeatContext just gives it your team's +context so its answers are grounded in *your* runbooks, systems, and rules. There +is no model to configure and no API key to enter: your AI client brings its own +model. ## Why NeatContext