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

# Project Knowledge

> Configure OKF bundles and the progressive OpenKnowledge viewer

# Project Knowledge

Overdeck resolves each project's Open Knowledge Format (OKF) bundle, injects cited concepts into agent context, and provides a local visual viewer. Knowledge changes stay in the bundle's normal Git and pull-request workflow.

## Configure the bundle

Set `knowledge_repo` on the project in `~/.overdeck/projects.yaml`, or add `.okf.yml` at the code-repository root:

```yaml theme={null}
bundle: ../my-project-knowledge
remote: git@github.com:example/my-project-knowledge.git
```

Resolution checks the registered project's `knowledge_repo` first, then `.okf.yml`. If neither points to a readable bundle, run `/okf init` to create or connect one.

## Where the skill lives

[eltmon/okf](https://github.com/eltmon/okf) is the canonical repo for the `/okf` skill itself (not your project's knowledge bundle). Overdeck vendors one release tag into `sync-sources/skills/okf/`, recorded in `.okf-skill-version`, using `scripts/vendor-okf-skill.sh <tag>`. The `okf-vendor-pin` CI workflow fails when that vendored tree differs from the pinned tag, so the skill is never edited in place inside Overdeck.

`pan sync` installs the vendored skill into `~/.claude/skills/okf` (Claude Code) and `~/.agents/skills/okf` (Codex, Pi), and replaces local edits found in real, non-symlinked copies there — it does not touch a copy you've symlinked to your own `eltmon/okf` checkout. `pan doctor`'s "OKF Skill Version" check warns when an installed copy's version differs from what's currently vendored.

To change the skill: open a PR in eltmon/okf, tag a release, re-vendor with `scripts/vendor-okf-skill.sh <tag>` in this repo, and open an Overdeck PR.

## Open the viewer

Use either command from the project repository:

```bash theme={null}
pan knowledge open
# Equivalent skill command:
/okf open
```

The first explicit open may install `@inkeep/open-knowledge` globally. Overdeck does not install it during `pan install`, dashboard startup, or any other unattended path. Repeated opens inspect OpenKnowledge's project lock and reuse the verified live URL instead of printing an unproven port.

| Option | Effect |
| - | - |
| `--no-install` | Do not install the viewer; report how to install it when the `ok` executable is missing. |
| `--no-browser` | Start the local viewer and print its URL without opening a browser. |

OpenKnowledge v0.34 requires Node.js 24 or newer. The Overdeck dashboard continues to run under Node.js 22; only the separate `ok` subprocess uses Node.js 24+.

### Assisted Node.js 24 setup

When the ambient `node` command is older than version 24, Overdeck resolves a runtime for the viewer without changing the Node.js version used by Overdeck or your shell:

1. Use an existing working `ok` command.
2. Use the Node.js binary named by `OVERDECK_OPEN_KNOWLEDGE_NODE`, when set and valid.
3. Look for an installed Node.js 24+ runtime under nvm, fnm, Volta, mise, or asdf, install OpenKnowledge inside that runtime, and pin the viewer to it.
4. If your version manager has no suitable runtime, show the exact Node.js 24 install command and ask before downloading it.
5. If no version manager exists, offer an nvm installation or show the manual setup command.

The setup assistant leaves your default Node.js version and shell rc files untouched. A fresh nvm bootstrap disables the installer's profile edits, and the Node.js 24 install restores the prior nvm `default` alias exactly—or removes the alias when none existed before setup.

For a managed runtime, Overdeck writes `~/.local/bin/ok` with an `overdeck-managed shim` marker. The shim pins the exact Node.js binary, survives later default-version changes, and is safe to delete; `pan knowledge open` regenerates it when needed. Overdeck never overwrites an unmarked file at that path.

Advanced users can set `OVERDECK_OPEN_KNOWLEDGE_NODE=/absolute/path/to/node` to select a specific Node.js 24+ binary. An invalid override fails with a direct configuration error instead of falling through to another runtime. For fully manual setup, install Node.js 24+ and `@inkeep/open-knowledge` yourself, then rerun `pan knowledge open`; `--no-install` keeps this manual-only behavior.

## Dashboard Knowledge page

Select **Knowledge** under **System** in the dashboard sidebar. The page shows the selected project's bundle state and starts one reusable viewer process for that project. Each project is routed through its own `knowledge-<hex>.<dashboard-domain>` origin, so OpenKnowledge's root `/api/*` and `/collab` traffic stays pinned to that project. The proxy accepts a viewer-specific credential minted by an authenticated dashboard request; dashboard cookies, authorization, CSRF tokens, internal headers, and upstream cookies never cross the subprocess boundary.

If the viewer permits framing, its workspace appears directly on the page. If a future viewer version refuses framing through `X-Frame-Options` or Content Security Policy, the page shows an **Open viewer** link to the direct local URL instead.

<Warning>
  Overdeck starts both dashboard and CLI viewers against a disposable snapshot
  outside the canonical bundle. OpenKnowledge can accept edits inside that
  projection, but those writes are discarded and cannot bypass the PR-gated
  `/okf author` path. A v0.34 round-trip test made this boundary necessary by
  changing unrelated YAML formatting during an edit.
</Warning>

To change knowledge, use the portable OKF workflow:

```bash theme={null}
/okf author "focused topic"
/okf sync --topic "focused topic"
/okf validate --strict
```

## Optional MCP registration

Opening the viewer never changes MCP or skill configuration. Overdeck initializes the viewer runtime with `ok init --no-mcp --no-skills`.

To opt in, run the upstream command from the resolved bundle root:

```bash theme={null}
ok init --mcp --no-skills --scope user
```

Choose `--scope project` for repository-local registration or `--scope both` for both locations. OpenKnowledge supports Claude Code (`~/.claude.json` or `.mcp.json`), Codex (`~/.codex/config.toml` or `.codex/config.toml`), and Cursor (`~/.cursor/mcp.json` or `.cursor/mcp.json`). Review the paths reported by `ok init`, then restart the client when required.

## License boundary

`@inkeep/open-knowledge` is licensed GPL-3.0-or-later. Overdeck is MIT-licensed and keeps the viewer at arm's length: it is installed separately, launched as an executable, and accessed over HTTP and WebSocket. No OpenKnowledge code is imported, linked, or bundled into `@overdeck/*`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.