3ngram gives your AI assistant persistent memory and follow-through across sessions. Use these tools in plain language, no function syntax needed.
Tool renames: recall is now search_memories and search is now search_content. The old names still work but are deprecated and will be removed in a future release.
When multiple MCP servers are connected, prefix your request with “3ngram:” or “in 3ngram” so your AI routes to the right tools. If 3ngram is your only MCP server, plain language works fine.
Saving memories
Ask your AI to remember something:
“3ngram: Remember that we chose PostgreSQL for the database”
“Remember in 3ngram: we’re using Railway for deployment”
“3ngram: Remember this as a blocker for the engram project: the staging SSL certs aren’t provisioned”
Memory types
Be specific about the kind of memory:
| Type | Use for |
|---|
commitment | Things you said you’d do, with due dates |
decision | Choices you’ve made and why |
blocker | What’s in your way |
pattern | Recurring behaviors or observations |
preference | Your working style and tooling choices |
context | General background facts |
“3ngram: Save this as a commitment due Friday: deliver the API review”
Recurring commitments
Add a recurrence to make a commitment repeat automatically:
“3ngram: Remember as a commitment due Friday, recurring weekly: write the team status update”
Supported frequencies: daily, weekly, monthly, yearly. Optional: interval (e.g. every 2 weeks) and end date.
When you resolve a recurring commitment, 3ngram creates the next occurrence automatically. See Recurring Commitments for details.
Recalling memories
Ask naturally:
“3ngram: What do you remember about the engram architecture?”
“3ngram: Recall my recent decisions about deployment”
Brief mode
When scanning many memories:
“3ngram: Give me a brief recall of everything about engram”
Returns a compact list with one line per memory: ID, topic, type, and snippet. Then drill into specific ones:
“3ngram: Show me the full content of memories 42 and 44”
Workflow: scan briefly, then read what matters. Keeps conversations focused.
Brief recall output looks like:
[42] architecture-decision — decision — Chose PostgreSQL for main DB
[45] deployment-choice — context — Using Railway for infrastructure
[48] api-review — commitment — Finish the API review by Friday
Filtering
By source
Every memory tracks where it came from:
| Source | Meaning |
|---|
| manual | You or your AI saved it deliberately |
| hook | Auto-captured by Claude Code hooks |
| auto | System-generated (debriefs, consolidation) |
“3ngram: Recall only my manually saved memories about engram”
By scope and project
“3ngram: What blockers do I have for the engram project?”
“3ngram: Brief recall of manual decisions about engram”
Commitments and due dates
Commitments support status tracking and due dates:
| Status | Meaning |
|---|
| open | Active, needs attention (default) |
| waiting | Blocked on external input |
| scheduled | Intentionally deferred for later |
| resolved | Done |
“3ngram: Remember this commitment as waiting: blocked on security review from DevOps”
“3ngram: Save a scheduled commitment due 2026-04-01: migrate to the new API version”
Deferred commitments (waiting/scheduled) are excluded from the default commitments list and won’t trigger stale or overdue alerts.
“3ngram: Show me all commitments including deferred ones”
Resolving and managing
Mark things as done with an optional resolution note:
“3ngram: Resolve memory 42 with note: shipped in PR #85”
Check your status:
“3ngram: Show me my open commitments”
Commitments output:
Open Commitments (2):
[42] Finish the API review (1 day) [project: engram]
[38] Update deployment docs (5 days) [project: engram]
“3ngram: Any overdue commitments?”
“3ngram: Are there stale commitments I should follow up on?”
Every memory is automatically scanned for named entities at save time:
| Entity type | Examples |
|---|
person | Teammates, stakeholders, contacts |
organization | Companies, teams, clients |
project | Codebases, products, initiatives |
tool | Libraries, services, platforms |
concept | Architectural decisions, patterns |
Entity chips appear in search results and the Cmd+K command palette. No setup needed.
Search answers (Cmd+K)
Open the command palette with Cmd+K (or Ctrl+K) and type a question. 3ngram retrieves the top matching memories and documents, then synthesizes a cited answer:
Based on [1] and [2]: You chose PostgreSQL because of pgvector support and Railway’s managed Postgres offering.
Citations are numbered and link back to the source memory. The answer pulls from both memories and indexed content sources.
This also works in the bot via the /ask command.
If Google Workspace is connected, 3ngram can create and export Google Docs directly from your AI chat — draft in your AI, publish to Drive.
See Integrations for connection setup.
Agent actions
Agents can propose external actions that require your approval before execution:
“3ngram: Propose a GitHub comment on issue #42 saying the fix is deployed”
“3ngram: List my pending actions”
“3ngram: Approve action 7”
Supported action types: GitHub comments, Linear issue close. Actions stay pending until you explicitly approve or reject them via decide_action.
Automatic capture (Claude Code only)
If you use Claude Code CLI, 3ngram can auto-capture context via hooks:
| Hook | Event | What it does |
|---|
| Session start | SessionStart | Loads your briefing into session context |
| Post tool use | PostToolUse | Captures git commits as memories |
Auto-captured memories are tagged source=hook so they don’t mix with deliberate saves.
Setup
See Claude Code Hooks for environment variables, script paths, and configuration.
Hooks never block your session (5-second timeout, silent failure). Sessions with no file changes are skipped.
Privacy
Wrap sensitive content in <private> tags to prevent storage:
“3ngram: Remember that the API key is <private>sk-abc123</private> and we use OAuth for auth.”
The private content is stripped before persistence.