Help us improve
Share bugs, ideas, or general feedback.
From mori
Seeds memory store from existing material (repos, PDFs, transcripts) via local or HTTP upload with preview, dry-run, and real ingestion modes.
npx claudepluginhub fjwood69/mori --plugin moriHow this skill is triggered — by the user, by Claude, or both
Slash command
/mori:ingestThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. If the user passes `--status`, call `mori-ingest_status` and present the table.
Pulls external context (Linear tickets, repos, or any content) into the second brain. Handles PDFs, images, code, conversations, docs, or raw text.
Ingests content into gnosis-mcp from local files, git history, or web crawls. Supports flags for embedding, pruning, wiping, and forcing re-ingest. Useful for populating a knowledge base for agent queries.
Bulk imports knowledge from files, directories, or URLs into structured backlogs, or captures a single document with a 5-section template (claims, worth-keeping, contested, action, reaction).
Share bugs, ideas, or general feedback.
--status, call mori-ingest_status and present the table.--preview or --dry-run with no source provided, remind them to provide --source <path>.--preview: call mori-ingest_preview with the --source path(s) and any --type or --since arguments. Present the chunk breakdown and cost estimate. Remind the user this is zero-cost — no LLM was called.--dry-run: call mori-ingest with dry_run=true and all provided arguments. Report what would be written and the actual cost incurred (the LLM was called, just nothing committed).mori-ingest with all provided arguments. Report: sources processed, chunks sent, memories written, cost estimate, errors./brief to reload shared memories so the new entries are visible./ingest --preview first to check before committing.When the user passes --content <path>, upload the file directly to the mori-ingestion pod.
Do NOT use the mori-ingest_content MCP tool — it has been removed. Use HTTP multipart upload only.
Requires:
MORI_INGEST_URL env var (set by installer — NOT derived from MORI_URL)MORI_API_KEY env var (same key as MCP auth)JOB=$(curl -sf -X POST "${MORI_INGEST_URL}/api/ingest/upload" \
-H "X-Api-Key: ${MORI_API_KEY}" \
-F "files=@${path}" \
-F "focus=${focus}" \
-F "tier=${tier}" \
-F "tags=${tags}" \
-F "dry_run=${dry_run}")
JOB_ID=$(echo "$JOB" | python3 -c "import sys,json; print(json.load(sys.stdin)['job_id'])")
$r = Invoke-RestMethod -Uri "$env:MORI_INGEST_URL/api/ingest/upload" `
-Method POST `
-Headers @{"X-Api-Key" = $env:MORI_API_KEY} `
-Form @{
files = Get-Item $path
focus = $focus
tier = $tier
tags = $tags
dry_run = $dry_run
}
$JOB_ID = $r.job_id
Poll every 5 seconds until status is complete or failed:
# Linux/macOS
while true; do
STATUS=$(curl -sf "${MORI_INGEST_URL}/api/ingest/job/${JOB_ID}" \
-H "X-Api-Key: ${MORI_API_KEY}")
STATE=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin)['status'])")
[ "$STATE" = "complete" ] || [ "$STATE" = "failed" ] && break
sleep 5
done
echo "$STATUS"
# Windows
do {
$status = Invoke-RestMethod -Uri "$env:MORI_INGEST_URL/api/ingest/job/$JOB_ID" `
-Headers @{"X-Api-Key" = $env:MORI_API_KEY}
if ($status.status -notin "queued","running") { break }
Start-Sleep 5
} while ($true)
$status
Report: memories written, estimated cost, errors. After success, suggest /brief to reload shared memories.
MORI_INGEST_URL not set → tell user to set it (e.g. http://localhost:8969) and re-runMORI_API_KEYfailed → report errors field from job response| User flag | Action |
|---|---|
--source <path> (repeatable) | mori-ingest MCP tool → source list |
--content <path> | HTTP multipart upload to MORI_INGEST_URL |
--type <type> | type (auto, transcripts, git, docs, image) |
--focus <area> | focus (all, decisions, architecture, conventions, gotchas) |
--tier <tier> | tier (working, canonical, ephemeral) |
--tags <tags> | tags (comma-separated string) |
--since <duration> | since (e.g. "30d", "90d") — filesystem mode only |
--dry-run | dry_run=true |
--force | force=true |
--max-cost <amount> | max_cost (float, USD) — filesystem mode only |
--preview | call mori-ingest_preview instead of mori-ingest |
--status | call mori-ingest_status |