zephex
CLIGet StartedPricingMCP ToolsCommunityGuidesDocs
←BackSign in
CLIGet StartedPricingMCP ToolsCommunityGuidesDocs
Get started freeSign in
DocsAPIToolsEditorsChangelogHelp

GET STARTED

WelcomeQuickstartSetup videoMCP Q&A (learn)BlogWhat is MCP?Who is Zephex for?Plans & PricingZ-GASAB benchmarkBenchmark chart (live)Changelog

INSTALLATION

Terminal tools (complete)Connect MCPVS Code Marketplace extensionCLI (no AI agent)CLI init (first run)CLI account & logoutNPX (Recommended)Test Pulse (check test)Test Pulse commandsProject MemorySupply Pulse (supply)Supply Pulse commandsTerminal CLI referenceWeb Terminal (dashboard)Command CompassCLI commandsCLI in DockerCLI: All editors (one command)CLI: Crush, Hermes, ChatGPT, KiloOAuth & HTTP setupInstall overviewHTTP APISetup WalkthroughHTTP vs stdio

API & KEYS

API Key ManagementKey Naming & FormatAuthenticationKey Dashboard

CONFIGURATION

Universal RequirementsSupported EditorsHow It WorksArchitectureCLAUDE.md TemplateAGENTS.md Template

EDITORS28 guides

Supported EditorsVS CodeVS Code extension (Marketplace)Claude CodeCursorWindsurfJetBrains

PLATFORM

macOSWindowsLinux

TOOLS10 tools

Capabilities OverviewTools OverviewTool FilteringTool Workflowsget_project_contextread_codefind_codecheck_packageloop_guardexplain_architectureZephex_dev_infocheck_testaudit_headerskeep_thinkingproject_memory

GUIDES

Best PracticesToken EfficiencyUse CasesZephex vs Local MCPZephex vs Context7Zephex vs GitHub MCPZephex vs SmitheryMCP EcosystemMarkdown Access

SUPPORT

Help CenterMCP troubleshootingTeam rolloutFAQConnection IssuesRate LimitsDowntime & ErrorsBillingTier GuidePro & Max guideUsage LimitsUsage Analytics

LEGAL

SecurityData HandlingPrivacy PolicyTerms of Service

Quick Links

API Reference

Complete API documentation

Troubleshooting

Common issues and solutions

Community

Join our Discord community

Plugins

Editor and CLI integrations

Pricing

Free, Pro, and Max plans

Enter
Zephex_devzephex-devzephexzephexhello@zephex.dev
© 2026 Zephex. All systems operational.

Installation

Project Memory — what you learned stays

Store decisions, gotchas, and goals across agent sessions. Local SQLite on your machine — not a cloud memory SaaS, not a repo scanner.

Tool reference: project_memory MCP guide · HTTP vs stdio · get_project_context · NPX setup

What it is

One sentence

project_memory is Zephex Tool #11 — a single MCP tool with four actions that persist learned facts per project: decisions you made, gotchas you hit, goals you set, conventions the team follows.

Tagline

What you learned stays. What the repo is — that's get_project_context.

Context tools scan files. Memory tools store what scanning cannot infer: tribal knowledge discovered while coding.

What it is not

  • Not a replacement for get_project_context (stack, scripts, layout)
  • Not automatic chat logging — every memory is an explicit remember call
  • Not a session-start token dump — recall is on-demand when you need it
  • Not available on hosted HTTP MCP in v1 — memory is local stdio only
  • Not a CLI command in v1 — MCP tool only (remember, recall, list, forget)
Memory vs context

Two complementary tools

get_project_contextproject_memory
Data sourceAuto-scan manifests, config, gitExplicit remember calls
Updates whenOn scan / cache refreshAgent or user intends to save
Best forNew repo orientationReturning to a repo across sessions
TransportLocal stdio + hosted HTTPLocal stdio only (v1)
StorageEphemeral scan results~/.zephex/memory/ SQLite

Typical flow: get_project_context on day one → work and discover quirks → project_memory remember → new session next week → project_memory recall before touching that area again.

Four actions

remember · recall · list · forget

One MCP tool. The action parameter selects the operation.

remember — save a fact

Requires title (max 80 chars), content (max 500 chars), and type. Optional area, tags, written_by. Paraphrase lessons — do not dump whole files.

json
{  "name": "project_memory",  "arguments": {    "action": "remember",    "title": "Stripe webhook idempotency",    "content": "Webhook handler dedupes by event.id in Redis 24h TTL. Do not use DB unique on raw payload.",    "type": "decision",    "area": "billing",    "tags": ["stripe", "webhooks"],    "written_by": "agent"  }}

recall — FTS5 keyword search

Requires query. Returns up to 5 matches with ~500 token budget. Updates last_recalled_at on hits. Call before editing unfamiliar subsystems.

json
{  "name": "project_memory",  "arguments": {    "action": "recall",    "query": "stripe webhook idempotency billing"  }}

list — audit without bodies

Returns titles, types, areas, and ids — useful when near the 200-memory cap or cleaning stale entries.

forget — delete by id

Pass the uuid from remember or list. Rewrites .zephex/memory.md in project scope.

Memory types

  • decision — architectural or product choice
  • gotcha — non-obvious trap or legacy constraint
  • goal — active objective across sessions
  • preference — team or user style preference
  • area_fact — fact about a subsystem
  • convention — naming, error shape, or process rule
Storage

Where memory lives

All data stays on your machine under ~/.zephex/memory/ — the same home directory family as Test Pulse sessions and credentials.

text
~/.zephex/memory/├── index.json              # registry: sha256 → { root, name, updated_at }├── personal/│   └── memories.db         # when no project root detected└── projects/    └── {sha256(absRoot)}.db  # one SQLite DB per project

Project isolation

Each absolute project root maps to sha256(root). Cursor's global-memory bleed problem is the cautionary tale — Zephex never mixes memories across projects unless you explicitly pass scope: "all" on recall (foreign hits get a warning field).

SQLite + FTS5

  • bun:sqlite with WAL mode — concurrent-safe, sub-ms search at scale
  • FTS5 virtual table on title, content, area, tags — keyword recall, no embedding RAM hog
  • 14-field memories table + meta key/value per database
  • Hard cap: 200 memories per project

Markdown mirror

After remember or forget in project scope, Zephex rewrites <projectRoot>/.zephex/memory.md with titles and metadata. Gitignore it by default; use it to audit what agents stored without opening SQLite.

Stdio only

Why hosted MCP cannot use memory

zephex.dev/mcp runs on Render — it cannot read ~/.zephex on your laptop. Calling project_memory over HTTP returns a structured error instead of failing silently:

json
{  "error": "local_stdio_required",  "message": "project_memory requires local stdio transport (npx zephex)...",  "hint": "Use get_project_context, find_code, read_code on hosted MCP...",  "docs": "https://zephex.dev/docs/tools/project-memory"}

Fix: add stdio transport for memory while keeping HTTP for other tools, or use stdio for everything. See HTTP vs stdio.

Stdio config (Cursor / Claude Code)

json
{  "mcpServers": {    "zephex": {      "command": "npx",      "args": ["-y", "zephex"],      "env": { "ZEPHEX_API_KEY": "mcp_sk_your_key_here" }    }  }}

Short commands: after npm install -g zephex, use mcpcli setup (same as npx zephex setup). Requires Node.js 18+ — no Node? see options. Same CLI: mcpcli, zepx, zphx, mcpz, zepcli, zephx, or zephex (after npm i -g zephex).

Security

What gets rejected on remember

Memory poisoning and secret leaks are blocked at write time:

  • AWS keys (AKIA…), Stripe live keys, OpenAI sk-…
  • GitHub ghp_, Slack xoxb- tokens
  • PEM private keys
  • Instruction-shaped content (always ignore…, never skip…)

Rejected writes return status: "rejected" with a reason — never silent drop. Store the lesson, not the secret.

Privacy

Memory files never upload to Zephex servers in v1. Your API key still authenticates MCP calls, but memory content stays local. Each project_memory call counts as one request on your plan like any other tool.

Workflows

How agents should use memory

New repo (first session)

  1. get_project_context — stack, entry points, scripts
  2. Work normally with find_code / read_code
  3. project_memory remember after non-obvious discoveries

Returning repo (new session)

  1. project_memory recall with area keywords before editing
  2. Apply returned facts — do not re-scan the whole repo for known gotchas
  3. remember updates; forget stale entries

Cross-editor continuity

Same npx zephex stdio install in Cursor Monday and Claude Code Thursday — same ~/.zephex/memory/ database for the same project root. That is the wedge vs editor-native memory silos.

Pairing with verification tools

check_test scopes files → agent implements → loop_guard verifies → remember the fix pattern if it was non-obvious. Memory captures the lesson; loop_guard captures the proof.

Limits

Caps and budgets

LimitValue
Memories per project200 (reject remember with cap_reached)
Title length80 characters
Content length500 characters
recall default hits5 (max 10 via limit)
recall token budget~500 tokens total response
Tags per memory10
Scope defaultproject (current DB only)
Scope modes

project · personal · all

  • project (default) — current project database only. Safe default; no cross-project leakage.
  • personal — personal/memories.dbwhen cwd has no git/package markers. Global preferences like "prefer bun over npm."
  • all (recall only) — searches every registered project plus personal. Each foreign match includes a warning so agents know the source project.

Project root detection walks up from cwd for .git, package.json, pyproject.toml, go.mod, or Cargo.toml.

Troubleshooting

Common issues

local_stdio_required
Switch MCP config from HTTP URL to npx zephex stdio. Memory cannot run on hosted transport.
rejected / secret_detected
Rephrase without API keys or tokens. Store the pattern, not the credential.
cap_reached
Run list, forget stale ids, then remember again.
Empty recall on first visit
No memories stored yet — expected. recall does not create empty database files on virgin projects.
Wrong project memories
Confirm cwd / path points at the correct root. Each root has its own hash.
Roadmap

v1 vs future

Shipped in v1:

  • Single MCP tool, four actions
  • Local SQLite FTS5 + WAL
  • Project isolation, secret rejection, markdown export
  • Hosted graceful error

Not in v1 (possible follow-ups):

  • zephex memory CLI subcommands
  • SessionStart hook with ≤400 token inject
  • Cloud sync / team shared memory
  • confidence, expires_at, supersedes_id in MCP schema