letta-filesystem-to-memfs
This skill migrates deprecated Letta Filesystem folder and file uploads to MemFS by extracting documents to markdown, chunking them into stable files, and…
Identity proven by GitHub's verified organisation badge (letta-ai)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- MIT (permissive)
- Pin
- 6785511pinned Oct 9, 2026
- Context cost
- about 1,200 tokenswhen the skill loads
- GitHub stars
- 148on letta-ai/skills
- Scripts
- 3 scripts
What it does
“Migrates deprecated Letta Filesystem folders/files to MemFS using markdown document corpora, chunking, local lexical search, and QMD semantic search via the memfs-search skill. Use when replacing folders.files.upload, working with PDFs or document QA, or emulating open_file, grep_file, and search_file behavior.”
Generated summary from the skill's own text
This skill migrates deprecated Letta Filesystem folder and file uploads to MemFS by extracting documents to markdown, chunking them into stable files, and providing lexical and semantic search via CLI tools. It replaces the old folders.files.upload workflow with a git-backed markdown memory structure that supports PDFs, directories, and URLs.
When to use it
- Replacing deprecated Letta Filesystem folder uploads with MemFS
- Building document QA systems with PDF or markdown corpora
- Implementing grep_file and search_file behavior in MemFS
- Ingesting multiple documents with semantic and keyword search
When not to
- Storing large unstructured binary files without extraction
- Migrating from active Filesystem APIs still in production
- Handling scanned PDFs without OCR preprocessing
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add letta-ai/skills --skill letta-filesystem-to-memfsInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install letta-ai/skills letta-filesystem-to-memfs@6785511e7d3913d9ec598435a77ae637cd45fc89Installs the commit we checked (6785511).
Copy by hand
Download the folder at 6785511 and put it in .claude/skills/letta-filesystem-to-memfs for Claude Code and in .agents/skills/letta-filesystem-to-memfs for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "letta-filesystem-to-memfs" by Letta. Source, pinned to commit 6785511e7d3913d9ec598435a77ae637cd45fc89: https://github.com/letta-ai/skills/tree/6785511e7d3913d9ec598435a77ae637cd45fc89/letta/letta-filesystem-to-memfs 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/letta-filesystem-to-memfs/ for Claude Code and .agents/skills/letta-filesystem-to-memfs/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/letta/letta-filesystem-to-memfs
SKILL.md at the pin
--- name: letta-filesystem-to-memfs description: Migrates deprecated Letta Filesystem folders/files to MemFS using markdown document corpora, chunking, local lexical search, and QMD semantic search via the memfs-search skill. Use when replacing folders.files.upload, working with PDFs or document QA, or emulating open_file, grep_file, and search_file behavior. license: MIT --- # Letta Filesystem to MemFS Use this skill when a user wants the old Letta Filesystem behavior: upload documents, chunk them, attach them to an agent, and let the agent search/open them. MemFS is not the same product. It is git-backed markdown memory. To mimic the old workflow, use the bundled CLI: 1. Extract PDFs/docs to markdown text. 2. Chunk the text into stable markdown files under `documents/<corpus>/<doc>/chunks/`. 3. Write a small pinned index under `system/filesystem/<corpus>.md`. 4. Index only the corpus chunk files in QMD for semantic search. 5. Review the MemFS git diff. Commit only if asked. ## Quick workflow ```bash # Set this to the skill directory shown in the skill load header. SKILL_DIR="/path/to/letta-filesystem-to-memfs" # From any directory. MEMORY_DIR should point at the target agent's memfs repo. uv run --with pymupdf \ "$SKILL_DIR/scripts/letta_fs_to_memfs.py" ingest \ --memory-dir "$MEMORY_DIR" \ --corpus product-docs \ --source ./docs/ \ --source ./guide.pdf \ --source https://arxiv.org/pdf/2310.08560 cd "$MEMORY_DIR" git status --short git diff --stat ``` Search the chunk corpus lexically: ```bash uv run "$SKILL_DIR/scripts/letta_fs_to_memfs.py" search \ --memory-dir "$MEMORY_DIR" \ --corpus product-docs \ "memory hierarchy" \ -n 5 ``` Semantic search with QMD. The CLI creates a corpus-scoped QMD collection over chunk files only: ```bash uv run "$SKILL_DIR/scripts/letta_fs_to_memfs.py" qmd setup \ --memory-dir "$MEMORY_DIR" \ --corpus product-docs uv run "$SKILL_DIR/scripts/letta_fs_to_memfs.py" qmd query \ --memory-dir "$MEMORY_DIR" \ --corpus product-docs \ "memory hierarchy" \ -n 5 ``` Use `qmd reindex` after changing corpus files, and `qmd search` / `qmd vsearch` when you specifically want keyword-only or vector-only search. ## Layout The ingest script writes: ```txt system/filesystem/<corpus>.md Pinned index and operating instructions for the corpus. documents/<corpus>/manifest.md Corpus manifest. documents/<corpus>/<doc-slug>/manifest.md Per-document metadata and chunk table. documents/<corpus>/<doc-slug>/chunks/chunk-0001.md Chunk content with frontmatter metadata. documents/<corpus>/chunks.jsonl Machine-readable chunk export for custom indexing or debugging. ``` ## Old API mapping | Old Filesystem | MemFS mimic | |---|---| | `folders.create` | `--corpus <name>` creates `documents/<corpus>/` | | `folders.files.upload` | `letta_fs_to_memfs.py ingest --source <file-or-directory-or-url>` | | OCR/chunk/embed job | Extract + chunk locally; `qmd setup` / `qmd reindex` for semantic search | | `agents.folders.attach` | Enable MemFS, then review and sync repo changes when appropriate | | `open_file` | Read chunk markdown files by path | | `grep_file` | `rg` or `letta_fs_to_memfs.py search` | | `search_file` | `letta_fs_to_memfs.py qmd query` over the corpus chunk collection | ## Heuristics - Use `system/filesystem/<corpus>.md` for the small always-visible index only. - Do not pin full documents into `system/`; it will bloat the prompt. - Keep chunks outside `system/`, usually under `documents/<corpus>/...`. - Passing a directory to `--source` recursively ingests supported files (`.pdf`, `.md`, `.txt`, `.json`, `.csv`, `.html`, `.xml`). - Use `--glob` / `--exclude` for messy directories. Defaults exclude `.git`, `node_modules`, `.venv`, and `__pycache__`. - URL downloads default to `--max-download-mb 100`; set `0` for unlimited. - Re-ingesting the same document slug replaces that document's old chunk directory, so stale chunks do not survive chunk-size changes. - Use chunk sizes around 2,000-4,000 characters with 200-500 character overlap. - Use the CLI's `qmd` subcommands when the user needs semantic search over many chunks. - Preserve source URLs, checksums, page markers, chunk numbers, and corpus names in the generated files. ## CLI reference ```bash uv run --with pymupdf "$SKILL_DIR/scripts/letta_fs_to_memfs.py" ingest --help uv run "$SKILL_DIR/scripts/letta_fs_to_memfs.py" search --help uv run "$SKILL_DIR/scripts/letta_fs_to_memfs.py" qmd setup --help uv run "$SKILL_DIR/scripts/letta_fs_to_memfs.py" qmd query --help ``` Compatibility wrappers remain for older examples: ```bash uv run --with pymupdf "$SKILL_DIR/scripts/ingest_documents.py" --memory-dir "$MEMORY_DIR" --corpus docs --source ./docs uv run "$SKILL_DIR/scripts/search_corpus.py" --memory-dir "$MEMORY_DIR" --corpus docs --query "refund policy" ``` ## PDF notes The ingest script uses PyMuPDF when it sees a PDF. Run it with `uv run --with pymupdf ...`. For scanned PDFs or complex tables, use the `tools/extracting-pdf-text` skill first, then ingest the extracted markdown/text file with this skill. See `references/design.md` for design notes and edge cases.
From letta-ai/skills at 6785511, shown as plain text under its license: MIT (permissive). The license text is in letta/letta-filesystem-to-memfs/LICENSE.
View SKILL.md on GitHub at 6785511Files
- SKILL.md5.2 KB · 727e932c6c3b
- LICENSE1.3 KB · 032d0725dc33
- references/
- design.md3.2 KB · 4c42f45cb6bb
- scripts/
- ingest_documents.py251 B · dbe59623ee0d
- letta_fs_to_memfs.py28 KB · 12c59fa3657d
- search_corpus.py251 B · 672af023efa3
6 files, 38 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 6785511More from Letta
acquiring-skills
Enables the agent to discover and install skills from multiple registries including Hermes Skills Hub, ClawHub, GitHub, and community repositories.
Agents not labelled yet · about 3.1K tokens · pinned 6 days ago
browser-use
Control a real browser using Chrome DevTools Protocol over WebSocket to navigate pages, interact with UI, fill forms, scrape sites, and capture screenshots or…
Claude Code, Codex, Cursor +4 · about 3.2K tokens · pinned 6 days ago
Context Doctor
Context Doctor investigates and repairs an agent's context including memory, system prompt, and skills by analyzing observed behavior as evidence.
Claude Code, Codex, Cursor +3 · about 1K tokens · pinned 6 days ago
creating-mods
This skill creates and edits mod files that extend local Letta instances with tools, slash commands, event handlers, custom model providers, permissions, and…
Claude Code, Codex, Cursor +4 · about 2.4K tokens · pinned 6 days ago
creating-skills
This skill guides developers in creating modular packages that extend Letta Code agent capabilities with specialized knowledge, workflows, tool integrations…
Contains scripts
Claude Code, Codex, Cursor +3 · about 4.5K tokens · pinned 6 days ago
curating-memory-palace
This skill lets the agent maintain a Memory Palace, a structured dashboard view that shows the user what the agent is working on, what it could do next, and…
Agents not labelled yet · about 3.1K tokens · pinned 6 days ago
Related in AI and agents
databricks-unstructured-pdf-generation
This skill generates synthetic PDF documents from HTML and pairs them with test questions for RAG evaluation datasets on Databricks Unity Catalog.
by DatabricksOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 1.6K tokens · pinned 6 days ago
twilio-enterprise-knowledge
This skill adds retrieval-augmented generation (RAG) to AI agents using Twilio Enterprise Knowledge, enabling semantic search across your organization's…
by TwilioOfficial publisher
Claude Code, Codex, Cursor +4 · about 3.2K tokens · pinned 6 days ago
vectara-agents
This skill enables developers to build AI agents on the Vectara platform using retrieval-augmented generation (RAG).
by VectaraOfficial publisher
Claude Code, Codex, Cursor +3 · about 8K tokens · pinned 6 days ago
agent-builder
Agent Builder orchestrates the creation, modification, testing, and publishing of n8n Agents.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.3K tokens · pinned 6 days ago
intent-recognition
Classifies automation requests by determining which primitive owns the top-level control flow (workflow, agent, needs clarification, or out-of-scope) and…
by n8nOfficial publisher
Claude Code, Codex, Cursor +4 · about 6.9K tokens · pinned 6 days ago
planned-task-runtime
This skill manages follow-up interactions with a background task execution system, handling task completion synthesis, failure replanning, workflow building…
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.2K tokens · pinned 6 days ago
Open roles at Letta
4 open roles on the jobs board
- Research Engineer / Scientist, Post-Training
San Francisco, California, United States (On-site)
- Research Engineer / Scientist, Self-Improvement
San Francisco, California, United States (On-site)
- Software Engineer, Agent Harness
San Francisco, California, United States (On-site)
- Research Engineer / Scientist, Memory
San Francisco, California, United States (On-site)