Skip to content

Optional Downloads

OpenParallax ships as a single static binary with everything needed to run a fully functional agent. Three optional downloads enhance specific subsystems but are not required:

DownloadSizeAddsCommand
sqlite-vec extension~1MBNative in-database vector queries for semantic memoryopenparallax get-vector-ext
MCP serversvariesExternal tool integrations via the Model Context Protocolopenparallax mcp install <name>
Skill packs~10KB eachDomain-specific guidance for specific tasksopenparallax skill install <name>

The init wizard offers the sqlite-vec download automatically. The others are opt-in.

Tier 1 ML Classifier — Deactivated

The in-process DeBERTa ONNX classifier has been deactivated due to model quality issues (high false positive rate on legitimate actions) and a Go runtime incompatibility with Landlock kernel sandboxing. Shield's Tier 1 runs with 79 heuristic rules. A retrained model and CGo sidecar binary are the immediate next priority on the roadmap. When the sidecar ships, set shield.classifier_mode: sidecar to re-enable ML classification.

sqlite-vec Extension

What it adds

Without the extension, OpenParallax's memory subsystem uses a built-in pure-Go cosine-similarity searcher: every query iterates through all stored embeddings and computes similarity in Go. This works fine for small workspaces (<10K memories) but slows down as the corpus grows.

With the extension, vector queries run inside SQLite using sqlite-vec's optimized index structures. Sub-millisecond lookups regardless of corpus size, and the query planner can combine vector search with FTS5 full-text filters in a single SQL statement.

What gets downloaded

openparallax get-vector-ext downloads the latest sqlite-vec release for your platform from github.com/asg017/sqlite-vec/releases into ~/.openparallax/extensions/sqlite-vec.{so,dylib,dll}.

The extension is a runtime-loaded SQLite plugin — not statically linked. The main binary stays CGo-free; the extension is loaded only if it exists, and only if the workspace's memory store opens with extension loading enabled.

After downloading

Restart the engine. The memory indexer detects the extension and uses it for new embeddings. Existing embeddings continue to work via the built-in searcher; both code paths produce identical results, just at different speeds.

MCP Servers

What they add

Model Context Protocol servers expose external tools to the agent — RSS readers, GitHub APIs, Notion databases, web scrapers, vector stores, anything someone has wrapped in an MCP server. Once installed, MCP tools appear under mcp:<server-name> in the load_tools meta-tool, alongside the built-in tool groups.

What gets downloaded

openparallax mcp install <name> fetches a prebuilt MCP server binary from github.com/openparallax/mcp releases (auto-selects the right artifact for your OS and architecture) and drops it into ~/.openparallax/mcp/<name>/<binary>.

bash
openparallax mcp install rss              # RSS feed reader
openparallax mcp install github           # GitHub API integration
openparallax mcp list                     # List installed MCP servers
openparallax mcp remove <name>            # Uninstall

After installing

The mcp install command prints the YAML you need to add to your workspace config.yaml:

yaml
mcp:
  servers:
    - name: rss
      command: ~/.openparallax/mcp/rss/rss-mcp

After editing the config, restart the engine. The agent can now load MCP tools via load_tools(["mcp:rss"]).

Custom MCP servers

You are not limited to the openparallax/mcp registry. Any MCP-compliant binary works — point mcp.servers[].command at your own binary path and the engine will spawn it as a subprocess on startup. See Configuration → MCP for the full server config schema.

Skill Packs

What they add

Skills are markdown documents that give the agent domain-specific guidance for particular tasks. A "git" skill might explain your team's branching strategy and commit message conventions. A "compliance" skill might list the data-handling rules for HIPAA workflows. The agent loads skills on demand via the load_tools meta-tool, so skill content only enters the LLM context when relevant.

What gets downloaded

openparallax skill install <name> fetches a skill from github.com/openparallax/skills into ~/.openparallax/skills/<name>/SKILL.md. The repo is curated; each skill has its own directory with a SKILL.md file containing YAML frontmatter and markdown body.

bash
openparallax skill install developer        # software engineering best practices
openparallax skill install writer           # writing and editing
openparallax skill install ops              # devops and infrastructure
openparallax skill list                     # list installed skills

Workspace-local skills override globals: place a SKILL.md under <workspace>/skills/<name>/ to use a custom version for that workspace only.

See Custom Skills for the schema and how to author your own.

Where everything lives

~/.openparallax/
├── models/
│   └── prompt-injection/
│       ├── model.onnx
│       ├── tokenizer.json
│       └── libonnxruntime.so       (or .dylib / .dll)
├── extensions/
│   └── sqlite-vec.so               (or .dylib / .dll)
├── mcp/
│   ├── rss/
│   │   └── rss-mcp                 (binary)
│   └── github/
│       └── github-mcp              (binary)
├── skills/
│   ├── developer/
│   │   └── SKILL.md
│   └── ops/
│       └── SKILL.md
└── <workspace-name>/               (one per agent)
    ├── config.yaml
    ├── SOUL.md / IDENTITY.md / etc.
    ├── security/
    └── .openparallax/
        ├── openparallax.db
        ├── audit.jsonl
        └── canary.token

The first four (models/, extensions/, mcp/, skills/) are shared across all workspaces. Each agent's workspace is independent.

Removing optional downloads

Each download can be removed manually by deleting its directory:

bash
rm -rf ~/.openparallax/models/prompt-injection/   # removes ONNX classifier
rm -rf ~/.openparallax/extensions/                # removes sqlite-vec
openparallax mcp remove <name>                    # removes one MCP server (also: rm -rf ~/.openparallax/mcp/<name>/)
rm -rf ~/.openparallax/skills/<name>/             # removes one skill

After removing the classifier, Shield gracefully falls back to heuristic-only mode on the next engine start. After removing sqlite-vec, the memory indexer falls back to the built-in searcher. After removing an MCP server, the agent loses access to its tools but otherwise runs normally. After removing a skill, the agent simply no longer has access to it.