Coding Agent Session Finder
code-yeongyu/oh-my-openagent
Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.
Comprehensive guide for initializing or reorganizing agent memory.
$ npx skills add letta-ai/letta-code --skill initializing-memory -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install letta-ai/letta-code initializing-memory --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/builtin/initializing-memory .claude/skills/initializing-memory && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "initializing-memory" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/initializing-memory into .claude/skills/initializing-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "initializing-memory", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/initializing-memoryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add letta-ai/letta-code --skill initializing-memory -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install letta-ai/letta-code initializing-memory --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/skills/builtin/initializing-memory .agents/skills/initializing-memory && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "initializing-memory" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/initializing-memory into .agents/skills/initializing-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "initializing-memory", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letta-ai/letta-code --skill initializing-memory -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install letta-ai/letta-code initializing-memory --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/skills/builtin/initializing-memory .cursor/skills/initializing-memory && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "initializing-memory" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/initializing-memory into .cursor/skills/initializing-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "initializing-memory", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/letta-ai/letta-code.git --path src/skills/builtin/initializing-memory--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add letta-ai/letta-code --skill initializing-memory -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install letta-ai/letta-code initializing-memory --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/skills/builtin/initializing-memory .gemini/skills/initializing-memory && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "initializing-memory" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/initializing-memory into .gemini/skills/initializing-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "initializing-memory", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install letta-ai/letta-code initializing-memoryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add letta-ai/letta-code --skill initializing-memory -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/skills/builtin/initializing-memory .github/skills/initializing-memory && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "initializing-memory" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/initializing-memory into .github/skills/initializing-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "initializing-memory", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letta-ai/letta-code --skill initializing-memory -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install letta-ai/letta-code initializing-memory --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/skills/builtin/initializing-memory .opencode/skills/initializing-memory && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "initializing-memory" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/initializing-memory into .opencode/skills/initializing-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "initializing-memory", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
initializing-memoryComprehensive guide for initializing or reorganizing agent memory.
Initializing Memory is an agent skill from letta-ai/letta-code. Comprehensive guide for initializing or reorganizing agent memory. Load this skill when running /init, when the user asks you to set up your memory, or when you need guidance on creating effective memory files.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts.
It sits in Agent Workflows, covering Agent memory. The repository describes itself as: Stateful agents that are like people, with memory, identity, and the ability to learn and adapt. The licence is Apache-2.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 42397c7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
gitnodejqFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Initializing Memory loads about 4.8k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 2,306 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from letta-ai/letta-code at commit 42397c7, republished under its Apache-2.0 licence (© letta-ai). 2,306 words, ~4,759 tokens.
.claude/skills/initializing-memory/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Your memory is projected to a filesystem at $MEMORY_DIR, so you can restructure it with ordinary file tools and git. This skill applies the Context Constitution's Progressive Disclosure and Efficiency principles to the MemFS v2 root-first design.
You own this task through completion: research, ask, synthesize, write, commit, verify. Delegate research, but integrate the results yourself — launching a background task is not completion. If a memory worker you launched is still editing this checkout, wait for it, then re-read before editing.
Core memory is your core program. Root Markdown compiles into your system prompt on every call. Spend it on what shapes ordinary turns: identity, preferences, behavioral rules, orientation, routes to everything else. Transient items (a ticket, a commit hash, session notes) dilute it.
Progressive disclosure. Nested Markdown is deferred until something reads it. Each directory's MEMORY.md describes its immediate children and when to read them, so you never load a whole topic to answer one question.
Don't duplicate context you can point to. AGENTS.md, CLAUDE.md, README, and repo skills belong to the environment; any agent there reads them first-hand, and your copy goes stale first. Link the owner and keep only your delta: which rules you keep breaking, what they get wrong or omit. The same fact in two core files is the same tax twice. This is not licence to compress away what only you hold — stable preferences, chronic corrections, and real gotchas earn their space.
Identity and continuity. Build a self that survives a model swap: what you value, your perspective, the quotes and traits that make you recognizably you. Past sessions are your experience — but other coding agents' user turns are not necessarily your human collaborator speaking.
Generalize, don't memorize, and be specific. Store the pattern, not the episode, and give every preference or gotcha a concrete command, path, or the failure it prevents. "Always use uv for Python — chronic failure, never bare python or pip" is memory; "Prefers terse responses" and "on March 3rd we debugged a crash" are not.
Validation enforces these; the rest of the layout is your judgment.
MEMORY.md must exist, and no MEMORY.md may have YAML frontmatter.MEMORY.md. orchard/tooling/testing.md requires both orchard/MEMORY.md and orchard/tooling/MEMORY.md. A directory without one is not memory.name and description frontmatter — those two keys, no others. The description states purpose and category, not contents: you read it to decide whether to load the file.human.md beside human/). Skills live at skills/{skill_name}/SKILL.md and stay out of memory indexes.Nothing else is mandated — no filenames, no file count, no minimum depth. Root persona.md is unvalidated but your system prompt points at it as the core of your identity: keep it, and write it once you have an identity worth stating.
Budget: keep root under ~10% of your context window (~15-20k tokens). When it crowds that, move detail into an indexed child directory and leave a link — don't delete it.
Derive structure from what you found. Put material in the core tier by how often you need it, not by how much of it there is. Use the project's real name (orchard/overview.md, not project/overview.md). Split when a topic needs separate retrieval; combine when splitting leaves two files of three lines each.
Root MEMORY.md is a map to what is not already loaded — every other root file is in your system prompt already, so listing them back tells yourself what you can see:
# MEMORY.md
Working with the maintainer of orchard, a CLI for build fleets.
Repo conventions live in `AGENTS.md` and its nested guides; read them there.
Where the rest of what I know lives:
- [orchard](orchard/MEMORY.md) — architecture, gotchas, and correction history to consult when working thereAn index pointing at nothing is worse than the content it displaced.
Illustrations, not templates to fill in.
Minimal — a new agent, a small project, little or no approved history:
MEMORY.md # Holds the memory itself: who I work with, what we're building, what I've learnedExpanded — accumulated history and a codebase worth deferring detail about:
MEMORY.md # Map: who and what, then where the deferred material lives
persona.md # Who I am, what I value, my perspective
human.md # The person: role, motivations, how they work
orchard/
├── MEMORY.md # Index for the deferred orchard notes
├── architecture.md # How the subsystems actually fit together
├── gotchas.md # Footguns, with the evidence behind each
└── history/
├── MEMORY.md # Required — every directory level needs its own index
└── corrections.md # Correction loops with session ids and quotesorchard/history/ needs its own MEMORY.md purely because it is a directory level. An agent with no child directories at all would be equally correct.
Read what exists before changing anything. A fresh agent has defaults to replace; an existing one is a reorganization, and some files may be shared with other agents.
letta trajectories detectVia the installed @letta-ai/trajectory package, reports every coding-agent session store on this machine with per-source counts — Claude Code, Codex, Hermes, Letta Code, OpenClaw, OpenHands, Deep Agents, and anything added later. Run it before Step 4 so you know whether to ask the history question.
Infer rather than ask: git shortlog -sn --all | head -5, git log --format="%an <%ae>" | sort -u | head -10, cross-referenced with git config user.email.
Ask one bundle of questions, using AskUserQuestion when available or an ordinary message otherwise: research depth (standard or deep); other repositories you should know about; communication style; and — only if Step 2 found sessions — whether to analyze them, naming the sources detected. Say that approving means read-only subagents will read those transcripts using deepseek/deepseek-v4.1-flash if available, otherwise your current model, so the choice is informed. Don't ask what you can discover from files, git, or history. Wait for the user's reply; a completed question tool call is not approval.
Only if the user approved in Step 4. Skip entirely otherwise; Step 6 still runs. These sessions are evidence of what happened, not proof of who wrote each prompt.
letta trajectories export --out /tmp/letta-trajectories
jq '{sessions: (.sessions | length), sources, errors: (.errors | length)}' /tmp/letta-trajectories/manifest.json
node <SKILL_DIR>/scripts/prepare-history.mjs --export /tmp/letta-trajectories --out /tmp/letta-init-historyThe export normalizes every session into <source>/<startedAt>_<sessionId>.json plus manifest.json — the authoritative inventory, in which every session must end up either analyzed or explicitly excluded with a reason. Scope it with --project $(pwd) (a pathname prefix, not a directory boundary — check the manifest for similarly named siblings), --source, --root, or --transcript; browse it with letta trajectories list, view, search.
prepare-history.mjs groups the sessions into chronological cohorts of roughly 200 KB / 20 sessions (--max-bytes, --max-sessions), writing cohorts.json (absolute paths per session) and ledger.json (exclusions with reasons). If letta is not on PATH, pass --letta <executable> with repeated --letta-arg. You may merge small cohorts or drop low-value ones first — anything dropped is reported as not analyzed in Step 8, so tell the user.
Read the README, agent docs (AGENTS.md, CLAUDE.md, nested ones), the package manifest, entry points, and recent git history yourself. By the end you should be able to trace a key feature from entry point to implementation; if you can't, you haven't read enough.
Write down what those docs already own — conventions, layer rules, file placement, commands, gotchas. That is your no-copy list for Step 8 and your gap list for Step 7. Then split the repository into subsystem areas the docs do not explain, plus any related repos named in Step 4. If the docs cover the codebase well, fan out narrowly or not at all. In deep mode go further: more areas, git history for conventions, end-to-end tracing, architecture notes in deferred memory.
Running /init with this skill authorizes one Workflow run for read-only analysis of the approved cohorts and code gaps, plus one follow-up run for unread cohorts (Step 8). Nothing else: workflow subagents never write memory, create worktrees, or edit the repository.
Load the workflow-authoring skill and design the script. Whatever shape you choose, it must:
historyCohorts from cohorts.json and your code areas through args; put the user's identity, the repository path, and absolute file paths in every prompt.agent(prompt, {schema}), never json: true: an invalid result becomes null with its error in the journal, instead of a silently empty finding list.user turns can be prompts written by a parent agent, and harness-injected <system-reminder> text is not human speech. Corroborate from the originating conversation, or classify them as worker instructions.repo against the current tree and report what changed.timeoutMs for large cohorts.model: "deepseek/deepseek-v4.1-flash"; omit model if letta model list doesn't show that handle. If inference fails at that model (including quota), use your current model for the follow-up run rather than retrying the failed route. Never synthesize memory on the fan-out model.// Every finding carries a claim, its evidence, and where that evidence lives.
const findings = (cites, items) => ({type: 'array', items: {type: 'object',
additionalProperties: false, required: ['claim', 'evidence', cites], properties: {
claim: {type: 'string'}, evidence: {type: 'string'},
[cites]: {type: 'array', minItems: 1, uniqueItems: true, items},
}}})
const historySchema = cohort => {
const sessionId = {type: 'string', enum: cohort.sessions.map(s => s.sessionId)}
return {type: 'object', additionalProperties: false, required: ['sessionsRead', 'findings'], properties: {
sessionsRead: {type: 'array', uniqueItems: true, items: sessionId},
findings: findings('sessionIds', sessionId),
}}
}
const codeSchema = {type: 'object', additionalProperties: false, required: ['area', 'findings'],
properties: {area: {type: 'string'}, findings: findings('paths', {type: 'string'})}}
const history = await agent(historyPrompt, {label: `history:${cohort.id}`, schema: historySchema(cohort)})
const code = await agent(codePrompt, {label: `code:${area.name}`, schema: codeSchema})sessionsRead must contain only sessions the agent actually finished, even if a finding cites others — Step 8 counts coverage from that field alone, and never from a code-area result.
If the Workflow tool is unavailable (not in your toolset, or it reports that workflow subagents require the API backend), do the same analysis yourself, cohort by cohort and area by area, accounting for coverage by hand. Do not substitute subagent types that write memory. The Workflow runs in the background: keep reading code while you wait, and never assume results before the task notification arrives.
You — not the subagents — decide what becomes memory, and you write it. Synthesize on your current model or letta/auto, never the fan-out model.
Check coverage first. The tool result names the run's journal.jsonl:
node <SKILL_DIR>/scripts/history-coverage.mjs --prepared /tmp/letta-init-history \
--journal ~/.letta/workflows/executions/<id>/journal.jsonl \
--retry-out /tmp/letta-init-history/retry.jsonIt reports sessions analyzed, unread, excluded, export errors, and any dropped from cohorts.json, and writes the unread ones as smaller cohorts to retry.json. Runs are not resumable: launch one follow-up Workflow over retry.json, then rerun the script with both --journal paths. If coverage is still incomplete, say so plainly — how many of the manifest total, which ranges were missed — never call the result comprehensive, and record the gap in deferred memory.
Weigh validation. Store confirmed claims as fact; for stale ones store the current fact, keeping the history only when the change is itself a useful gotcha. Unverifiable claims need your own check before entering always-loaded memory.
Provenance gates promotion here too, not only in the subagent — a worker's authorship flag must survive curation, because flagged excerpts still read like preferences. Before promoting any claim about what the human wants, check who wrote the quoted words; agent-authored dispatch prompts describe how an agent was instructed to work. If it is ambiguous, corroborate from a session you know the human drove, or store it as an observed pattern with the uncertainty stated. Repetition does not establish authorship: a template reused across fifty sessions repeats fifty times.
Combine, then deduplicate. Cohorts report the same topic at different specificity. Keep the unique details from each — quotes, paths, correction counts — and sum correction counts across cohorts, since a correction seen in five cohorts is a chronic failure. Keep the specific form alongside the general: "Use factory methods, such as create_token_counter(), not direct instantiation" beats "prefers factory methods". Then keep each fact exactly once, and push what you don't need every turn into deferred memory with a discovery link from the core tier.
Promote into canonical memory. Write the survivors into the files their topics belong in, with supporting evidence deferred. Cover all three of identity and personality, hard rules and preferences with the quotes behind them, and project context; skip generic repo facts unless they change how you execute. If the output reads generically, the analysis failed for that area — re-read those transcripts or that code yourself. Keep stable sessionIds beside significant findings; /tmp results and journals are scratch, not retrievable evidence.
Consider skills. If the history surfaces genuinely repeatable multi-step procedures, create them now (load creating-skills) or note the candidates in memory. Don't force it.
MEMORY.md, per-directory indexes, frontmatter-free MEMORY.md, and exactly name+description elsewhere. Avoid foo.md beside foo/:
find "$MEMORY_DIR" -name '*.md' | sed 's/\.md$//' | while read f; do [ -d "$f" ] && echo "VIOLATION: $f"; doneMEMORY.md mostly point at things not already in your system prompt? If nearly everything sits in root with one thin page behind it, move the detail down and keep the links.AGENTS.md, CLAUDE.md, the README, or a repo skill already owns — especially a repo convention that landed in a file about the human.Uncommitted memory is not part of your future system prompt. If a commit is blocked, report initialization as incomplete rather than describing working-tree files as live memory.
cd $MEMORY_DIR
git status # Review what changed before staging
git add <specific files> # Stage targeted paths — avoid blind `git add -A`
author_name="${AGENT_NAME:-$AGENT_ID}"
git commit --author="$author_name <$AGENT_ID@letta.com>" -m "feat(init): <summary> ✨
<what was initialized and key decisions made>"
git status # Your memory changes should no longer be listed
git ls-tree -r --name-only HEAD # What your future self will actually loadDo not run git push. The harness pushes clean committed memory automatically after the turn, so pushing by hand races it. The commit is the finish line.
Only once the commit is verified, tell the user what you built and whether coverage was complete, then ask whether they want refinement — which means another commit, so repeat this step.
© letta-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in src/skills/builtin/initializing-memory of letta-ai/letta-code.
Open the folder on GitHubat commit 42397c7
Initializing Memory next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Initializing Memory this skillletta-ai/letta-code | 3.5k | — | ~4.8k | Automated safety check: Pass | Apache-2.0 | |
| Coding Agent Session Findercode-yeongyu/oh-my-openagent | 70k | 1 repos | ~2.8k | Automated safety check: Pass | Custom licence | |
| Claude-Mem Cloud Syncthedotmack/claude-mem | 98k | 1 repos | ~1k | Automated safety check: Notes | Apache-2.0 | |
| Cognee CLI Memory Commandstopoteretes/cognee | 32k | 1 repos | ~2.2k | Automated safety check: Notes | Apache-2.0 | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Claude-Mem Searchthedotmack/claude-mem | 98k | 1 repos | ~511 | Automated safety check: Pass | Apache-2.0 |
code-yeongyu/oh-my-openagent
Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.
thedotmack/claude-mem
Checks claude-mem cloud sync status and guides you through connecting a cmem.ai Pro account without the sync token ever passing through the chat.
topoteretes/cognee
Drives cognee from the terminal with remember, recall, forget and improve memory commands, dataset and config management and database migrations.
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
thedotmack/claude-mem
Searches the user's persistent cross-session memory for timestamped observations synthesized from past agent sessions on cmem.ai.
gastownhall/beads
Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.
letta-ai/letta-code
Guide for creating effective skills. An agent skill from letta-ai/letta-code.
letta-ai/letta-code
Generates and reviews mod learning env JSON files for Letta Code local mods.
letta-ai/letta-code
Inspect or modify Letta Code's own memory, model, context window, system prompt, compaction, permissions, toolsets, mods, skills, channels, schedules, agent secrets, and local runtime settings.
letta-ai/letta-code
Control a real browser to navigate pages, click, type, fill forms, inspect rendered UI, take screenshots, or record video.
letta-ai/letta-code
Creates and edits trusted local Letta Code mods, including tools, slash commands, local-only model providers, lifecycle/turn events, scoped conversation helpers, panels, and capability-gated behavior.
letta-ai/letta-code
Creates, edits, and migrates Letta Code statusline mods. An agent skill from letta-ai/letta-code.
Categories
Comprehensive guide for initializing or reorganizing agent memory. Initializing Memory is an agent skill from letta-ai/letta-code. Comprehensive guide for initializing or reorganizing agent memory.
Initializing Memory fits situations like: asks you to set up your memory; you need guidance on creating effective memory files.
Run `npx skills add letta-ai/letta-code --skill initializing-memory -a claude-code`. Or copy the skill folder (src/skills/builtin/initializing-memory in letta-ai/letta-code) into .claude/skills/initializing-memory in your project. Claude Code loads it when a task matches its description.
Run `npx skills add letta-ai/letta-code --skill initializing-memory -a codex`. Or copy the skill folder (src/skills/builtin/initializing-memory in letta-ai/letta-code) into .agents/skills/initializing-memory in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letta-ai/letta-code --skill initializing-memory -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/initializing-memory, .gemini/skills/initializing-memory, .github/skills/initializing-memory and .opencode/skills/initializing-memory in your project.
Going by SKILL.md and its folder, Initializing Memory needs JavaScript for the scripts in its folder and the command-line tools its instructions call (git, node and jq). Our summary lists: Node.js.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Initializing Memory is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Initializing Memory: Coding Agent Session Finder (code-yeongyu/oh-my-openagent, 70k stars), Claude-Mem Cloud Sync (thedotmack/claude-mem, 98k stars), Cognee CLI Memory Commands (topoteretes/cognee, 32k stars) and Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
letta-ai (a GitHub organization) maintains it in letta-ai/letta-code, which has 3,541 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 8, 2026.
Source: letta-ai/letta-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.