
Product
Socket Threat Intel Now Shows Which Malware Campaigns Were Blocked or Detected
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.
@ghostpaw/codex
Advanced tools
Standalone belief and memory engine for Node.js — SQLite, zero dependencies, with a built-in LLM tool facade
Local, evidence-backed memory for AI agents. One SQLite file, zero runtime dependencies.
Codex stores what an agent believes as claims with a source, a certainty, evidence counts, decay and an honest revision history. Agents search before they remember, confirm or correct instead of appending, and see which beliefs are stale, fading or weakly evidenced. It runs as a TypeScript library, an MCP server, a CLI and an Agent Skill, all generated from the same seven tools.
Website: ghostpaw.dev/agent-memory
Requires Node.js 24+ (uses the built-in node:sqlite).
Every client below starts the same stdio server: npx -y @ghostpaw/codex mcp.
Beliefs live in ~/.ghostpaw/codex.db unless the GHOSTPAW_CODEX_DB
environment variable (absolute path) or --db <path> says otherwise.
Claude Code
claude mcp add ghostpaw-codex -- npx -y @ghostpaw/codex mcp
or as a plugin, which also installs the skill:
/plugin marketplace add GhostPawJS/codex
/plugin install ghostpaw-codex@ghostpaw-codex
Codex CLI (~/.codex/config.toml)
[mcp_servers.ghostpaw-codex]
command = "npx"
args = ["-y", "@ghostpaw/codex", "mcp"]
Cursor (.cursor/mcp.json), Claude Desktop (claude_desktop_config.json)
or a project .mcp.json:
{
"mcpServers": {
"ghostpaw-codex": {
"command": "npx",
"args": ["-y", "@ghostpaw/codex", "mcp"]
}
}
}
Claude Desktop users can also install server.mcpb from the
latest GitHub release.
A Dockerfile is included for container hosts:
docker build -t ghostpaw-codex . && docker run -i --rm -v codex:/data ghostpaw-codex.
The server speaks MCP 2026-07-28 (stateless, server/discover) and the
initialize-based revisions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05.
npx -y @ghostpaw/codex remember_belief --claim "Deploys go out on Tuesdays" --source explicit --category procedure
npx -y @ghostpaw/codex search_codex --query "when do we deploy"
npx -y @ghostpaw/codex tools # list tools
npx -y @ghostpaw/codex describe revise_belief
Install globally for the ghostpaw-codex binary: npm i -g @ghostpaw/codex.
ghostpaw-codex mcp starts the stdio server.
SKILL.md (repo root) and skills/codex/SKILL.md follow the
Agent Skills format and ship in the npm package.
Copy skills/codex/ into your agent's skills folder, or print it:
npx -y @ghostpaw/codex skill > SKILL.md
npm install @ghostpaw/codex
import { DatabaseSync } from 'node:sqlite';
import { initCodexTables, read, write } from '@ghostpaw/codex';
const db = new DatabaseSync('codex.db');
initCodexTables(db);
const { id } = write.remember(db, {
claim: 'The API uses GraphQL with a REST fallback.',
source: 'explicit',
category: 'fact',
});
write.confirmBelief(db, id);
write.correctBelief(db, id, {
claim: 'The API uses GraphQL exclusively; REST was retired.',
source: 'observed',
category: 'fact',
});
read.recall(db, 'graphql api'); // ranked, lineage-aware
read.listFlags(db); // stale, fading, low-trust, single-evidence
Wire the same tools into any LLM SDK. Each tool carries a JSON Schema:
import { tools } from '@ghostpaw/codex';
for (const tool of tools.codexTools) {
// tool.name, tool.description, tool.inputSchema, tool.handler(db, input)
}
Or embed the MCP server in your own process:
import { createCodexMcpServer } from '@ghostpaw/codex/mcp';
const server = createCodexMcpServer({ dbPath: './codex.db' });
A markdown memory file works until it doesn't:
It stays local: one file you can copy, back up or inspect with any SQLite tool. No server, no API key, no network.
| Tool | What it does |
|---|---|
search_codex | Hybrid lexical and semantic recall across active beliefs |
review_codex | Dashboards: flags, status, trends, log |
inspect_codex_item | One belief in full: metrics, lineage, nearby beliefs |
remember_belief | Capture a claim with source, category and provenance |
revise_belief | Confirm, correct, forget, defer or merge |
retire_belief | Hard-delete for privacy or cleanup |
dismiss_proximity | Mark two nearby beliefs as intentionally distinct |
Results are structured (outcome: success | no_op | needs_clarification | error) with entities, next-step hints and recovery advice. The MCP server,
CLI, SKILL.md and plugin manifests are generated from this registry
(npm run surfaces) and drift-checked in CI.
Measured with npm run bench on Node 24.14.0, Linux, Intel Xeon (shared
cloud vCPU), 10,000 beliefs in a file-backed database:
| Operation | p50 | p95 |
|---|---|---|
search_codex (tool) | 3.6 ms | 5.0 ms |
MCP tools/call search, stdio framing included | 3.8 ms | 4.2 ms |
read.recall | 3.7 ms | 4.8 ms |
inspect_codex_item | 3.5 ms | 3.8 ms |
write.remember (includes proximity scan) | 4.5 ms | 5.6 ms |
review_codex | 11.7 ms | 13.2 ms |
Cold start (process spawn to first response, median): --version 26 ms,
MCP server/discover 24 ms, first search against the 10,000-belief file
53 ms. Seeding 10,000 beliefs takes 2.2 s on disk.
Gzip sizes and cold-start medians are budgeted in budgets.json and enforced
by npm run check.
| Concept | Purpose |
|---|---|
| Belief | A claim held with certainty, evidence, provenance, decay and revision lineage |
| Dismissal | A record that two semantically close beliefs are intentionally distinct |
| Flag | A derived attention signal: stale, fading, low-trust, single-evidence or gap |
| Proximity | Semantic nearness between beliefs, detected on write |
| Lineage | The revision chain from corrections and supersessions, with version diffs |
State is derived, never toggled: freshness, strength, review priority and flags are computed at read time.
| Import | Contents |
|---|---|
@ghostpaw/codex | initCodexTables, read, write, tools, skills, soul, all types |
@ghostpaw/codex/mcp | createCodexMcpServer, serveCodexMcp, generic MCP server helpers |
ghostpaw-codex (bin) | CLI: tools, describe, call, per-tool flags, mcp, skill |
dist/mcp-server.js | Standalone stdio MCP server entry (used by the MCP Bundle and the Dockerfile) |
SKILL.md, skills/codex/ | Agent Skill with 17 workflow references |
ESM and CommonJS, with type declarations for both.
| Document | Audience |
|---|---|
| HUMAN.md | Developers using the read / write API |
| LLM.md | Agent builders wiring soul, tools and skills |
| docs/README.md | Architecture: model, invariants, scoring, source layout |
| docs/entities/ | Per-entity manuals with exact public API listings |
| CHANGELOG.md | Release history |
npm install
npm run check # types, lint, zero-deps, tests, build, surfaces, size, API, consumer, startup, ratchet
npm run bench # hot-path benchmarks at 10,000 beliefs
npm run surfaces # regenerate SKILL.md, plugin manifests, server.json, mcpb manifest
npm run check is the single gate, locally and in CI. Size budgets
(budgets.json) and the public API snapshot (api-surface.json) can only
grow with an explicit approval tag in the commit message. The repo is pinned
to Node 24.14.0 via .nvmrc.
If this package helps your project, consider sponsoring its maintenance:
FAQs
Standalone belief and memory engine for Node.js — SQLite, zero dependencies, with a built-in LLM tool facade
The npm package @ghostpaw/codex receives a total of 0 weekly downloads. As such, @ghostpaw/codex popularity was classified as not popular.
We found that @ghostpaw/codex demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.

Security News
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.

Threat Research
/Security News
Socket uncovered secret-stealing workflows that ran in LiteLLM’s GitHub repository 11 days before the supply chain attack on PyPI and Docker.