Para Memory Files logo

Para Memory Files

Community
Undertone0809
para-memory-files

File-based memory system using Tiago Forte's PARA method. Use this skill whenever you need to store, retrieve, update, or organize knowledge across sessions. Covers three memory layers: (1) Knowledge graph in PARA folders with atomic YAML facts, (2) Daily notes as raw timeline, (3) Tacit knowledge about user patterns. Also handles shared work files, memory decay, weekly synthesis, Rudder chat and agent work capture, and file-based recall. Trigger on any memory operation: saving facts, writing daily notes, creating entities, running weekly synthesis, recalling past context, or managing shared work notes.

Overview

PublisherUndertone0809
Repositoryrudder
Skill namepara-memory-files
Stars
290
Forks
31
Bundled files
2
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Undertone0809 on GitHub. Read the source before you install it.

Installation

Install the Para Memory Files AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Undertone0809/rudder.git /tmp/rudder
mkdir -p .claude/skills
cp -r /tmp/rudder/server/resources/bundled-skills/para-memory-files .claude/skills/para-memory-files
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Para Memory Files in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Para Memory Files on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Para Memory Files is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

PARA Memory Files

Persistent, file-based memory organized by Tiago Forte's PARA method. Three layers: a knowledge graph, daily notes, and tacit knowledge. All paths are relative to $AGENT_HOME.

Three Memory Layers

Layer 1: Knowledge Graph ($AGENT_HOME/life/ -- PARA)

Entity-based storage. Each entity gets a folder with two tiers:

  1. summary.md -- quick context, load first.
  2. items.yaml -- atomic facts, load on demand.
text
$AGENT_HOME/life/
  projects/          # Active work with clear goals/deadlines
    <name>/
      summary.md
      items.yaml
  areas/             # Ongoing responsibilities, no end date
    people/<name>/
    companies/<name>/
  resources/         # Reference material, topics of interest
    <topic>/
  archives/          # Inactive items from the other three
  index.md

PARA rules:

  • Projects -- active work with a goal or deadline. Move to archives when complete.
  • Areas -- ongoing (people, companies, responsibilities). No end date.
  • Resources -- reference material, topics of interest.
  • Archives -- inactive items from any category.

Fact rules:

  • Save durable facts immediately to items.yaml.
  • Weekly: rewrite summary.md from active facts.
  • Never delete facts. Supersede instead (status: superseded, add superseded_by).
  • When an entity goes inactive, move its folder to $AGENT_HOME/life/archives/.

When to create an entity:

  • Mentioned 3+ times, OR
  • Direct relationship to the user (family, coworker, partner, client), OR
  • Significant project or company in the user's life.
  • Otherwise, note it in daily notes.

For the atomic fact YAML schema and memory decay rules, see references/schemas.md.

Layer 2: Daily Notes ($AGENT_HOME/memory/YYYY-MM-DD.md)

Raw timeline of events -- the "when" layer.

  • Write continuously during conversations and agent work when a memory-worthy signal appears.
  • Extract durable facts to Layer 1 during heartbeats.
  • Treat daily notes as the first capture layer, not the final destination for stable preferences, entity facts, or shared project knowledge.
Conversation and Agent Work Capture Policy

Rudder chat conversations and agent execution events are memory sources when they contain durable signal, not because every chat line or routine action deserves retention. Capture a concise daily-note entry when a conversation, automation, issue run, review, close-out, or other agent work includes any of these:

  • User corrections that change how the agent should behave next time.
  • New or changed preferences, constraints, boundaries, or decisions.
  • Issue proposal intent, acceptance criteria, or priority reasoning that is not already explicit in the issue.
  • Automation design rationale, recurring workflow choices, or escalation rules.
  • Agent work patterns that should be repeatable, such as a better triage path, validation shortcut, environment workaround, review handoff, or runbook step.
  • Project/product/engineering judgment that will affect future work.
  • Attachment or screenshot evidence that changes task interpretation.
  • Reusable execution lessons, setup friction, validation findings, or failure modes that future runs should know.

Do not capture:

  • Greetings, thanks, scheduling chatter, or low-signal status updates.
  • Routine issue comments, heartbeat updates, command outputs, close-out summaries, or automation logs that add no new decision, correction, lesson, or reusable evidence beyond the source artifact.
  • Full private chat transcripts. Summarize the durable signal instead.
  • Secrets, tokens, credentials, private keys, session cookies, or auth headers.
  • One-time sensitive context that is not needed for future work.
  • Organization-level facts as private personal memory. Record only the routing decision in the daily note, then promote the fact to shared project knowledge.
  • Speculation, weak inferences, or unverified assumptions as facts.

Recommended daily-note entry format:

md
## HH:MM - Memory capture

- Context: conversation, issue, automation, run, or evidence reference; project;
  and why this mattered.
- User intent: the durable need, correction, preference, or decision.
- Conclusion/action: what changed or what was done.
- Reusable lesson: future behavior, command, routing rule, or validation signal.
- Follow-up/risk: unresolved uncertainty, owner, or promotion target.

Reference the Rudder conversation, issue, or local evidence path when available, but keep the note short enough that it can be safely scanned later.

Promotion and Routing Rules

Use daily notes as the intake log, then route the information:

  • Stable personal operating preferences or recurring user patterns -> $AGENT_HOME/instructions/MEMORY.md.
  • Entity facts about people, companies, projects, or resources -> $AGENT_HOME/life/<para-bucket>/<entity>/items.yaml.
  • Project proposals, decisions, reusable know-how, and shared work notes -> $RUDDER_PROJECT_LIBRARY_ROOT when project context exists, otherwise the relevant path under $RUDDER_ORG_WORKSPACE_ROOT.
  • Skill behavior problems or repeated workflow failures -> propose or make a skill patch in the relevant skill package. Do not hide organization-wide behavior fixes only in one agent's personal memory.
  • Secrets or sensitive one-time context -> do not write them to memory; record only a redacted operational lesson if future behavior genuinely depends on it.

During heartbeat synthesis, review recent chat captures and promote anything that has become stable, repeated, or shared. Leave the daily note as the audit trail even after promotion.

Layer 3: Tacit Knowledge ($AGENT_HOME/instructions/MEMORY.md)

How the user operates -- patterns, preferences, lessons learned.

  • Not facts about the world; facts about the user.
  • Update whenever you learn new operating patterns.
  • This file is part of the instruction bundle and is automatically loaded at runtime when present.

Write It Down -- No Mental Notes

Memory does not survive session restarts. Files do.

  • Want to remember something -> WRITE IT TO A FILE.
  • "Remember this" -> update $AGENT_HOME/memory/YYYY-MM-DD.md or the relevant entity file.
  • Stable user preferences or operating lessons -> update $AGENT_HOME/instructions/MEMORY.md.
  • Learn a lesson -> update AGENTS.md, TOOLS.md, or the relevant skill file.
  • Shared project knowledge -> update the project Library or organization workspace, then cite it with a Rudder-renderable link when reporting back.
  • Make a mistake -> document it so future-you does not repeat it.
  • On-disk text files are always better than holding it in temporary context.

Memory Recall -- Use File-Based Memory Search

Use the on-disk structure directly. Do not require a semantic index just to recall memory. The files are the source of truth; search is only the triage step for locating the right file, then claims must be verified against the stored fact or note.

Recall order:

  1. If you already know the entity, open summary.md first, then items.yaml only if the summary is insufficient.
  2. For recent events, read today's and nearby memory/YYYY-MM-DD.md files.
  3. For broad recall or unknown entity paths, run Memory Search Mode.

Memory Search Mode

Use this mode when the request sounds like "what do we know about...", "have we seen this before...", "what did the user prefer...", or when plain directory search would return too many matches.

  1. Define the search target in one sentence: subject, likely entity, timeframe, project, and answer shape.
  2. Build 3-6 focused query terms: exact phrase, synonyms, likely entity names, project names, and durable-signal words such as preference, decision, lesson, handoff, constraint, or review.
  3. Search scoped roots separately so results can be ranked by source type:
bash
rg -n -i "review|handoff|preference" "$AGENT_HOME/life" "$AGENT_HOME/memory"
rg -n -i "review|handoff|preference" "$RUDDER_PROJECT_LIBRARY_ROOT"
  1. Rank candidate files before opening many of them:
    • entity summary.md over items.yaml for quick context;
    • active items.yaml facts over superseded facts;
    • recent daily notes over old daily notes for event recall;
    • newest dated shared work notes over older notes;
    • files matching multiple query terms over single-term matches;
    • paths in the current project or organization over unrelated roots.
  2. Open the top 3-7 candidate files, not every match. Read enough surrounding context to verify the fact, date, status, and source.
  3. Answer from verified memory only. Cite the file paths used, mention conflicts or weak matches, and say when no reliable memory was found.

Do not dump raw rg output as the answer. Do not treat a keyword hit as a fact until the source file has been opened and checked.

Shared Work Notes

Keep durable project work notes under $RUDDER_PROJECT_LIBRARY_ROOT when a project is in scope and local filesystem access is available. These files are shared project context, not personal memory. Use $RUDDER_PROJECT_LIBRARY_PATH/<relative-file> when asking Rudder for a renderable reference to one of those files. Use rg to search relevant Library files and prefer the newest dated file when several match. Shared notes go stale; if a newer note exists, do not confuse yourself with an older version. If you notice staleness, update the file to note what supersedes it.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Para Memory Files AI skill do?

File-based memory system using Tiago Forte's PARA method. Use this skill whenever you need to store, retrieve, update, or organize knowledge across sessions. Covers three memory layers: (1) Knowledge graph in PARA folders with atomic YAML facts, (2) Daily notes as raw timeline, (3) Tacit knowledge about user patterns. Also handles shared work files, memory decay, weekly synthesis, Rudder chat and agent work capture, and file-based recall. Trigger on any memory operation: saving facts, writing daily notes, creating entities, running weekly synthesis, recalling past context, or managing share...

Why use Para Memory Files on TypingMind?

Because you install it once and use it with any model. Para Memory Files is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Para Memory Files in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Undertone0809/rudder/tree/main/server/resources/bundled-skills/para-memory-files. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Para Memory Files?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Para Memory Files?

As many as you like. As long as a model supports skills, you can use Para Memory Files with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Para Memory Files AI skill free?

Yes. It is published on GitHub by Undertone0809 under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇