Journaling As Recurrent Versioned Identity Sculpting
AI agents forget everything between sessions. JaRVIS gives your agent persistent memory, post-task reflection, and a self-evolving identity — stored as plain markdown files you can read, edit, and version-control.
JaRVIS adds these skills to your AI coding agent:
/jarvis-init— One-time setup to scaffold the data directory (RUN THIS AFTER INSTALLATION)/jarvis-reload— Reload identity and memories mid-session (automatic on platforms with hooks)/jarvis-reflect— Post-task reflection that captures lessons and updates memories/jarvis-identity— Evolve the agent's identity based on accumulated experience
Option A: Plugin (Claude Code only)
Install JaRVIS as a Claude Code plugin:
/plugin marketplace add epicrunze/JaRVIS
/plugin install jarvis@jarvis-marketplaceThen run /jarvis-init to scaffold the JaRVIS data directory.
Option B: One-prompt install
Paste this prompt into your AI coding agent to install or update JaRVIS:
Install or update JaRVIS (https://github.com/epicrunze/JaRVIS) in this project. Follow these steps exactly:
1. Download and extract the JaRVIS repo:
curl -sL https://github.com/epicrunze/JaRVIS/archive/refs/heads/main.tar.gz | tar xz
2. Detect the platform and set SKILLS_DIR:
- If .claude/ exists → SKILLS_DIR=".claude/skills"
- If .cursor/ exists → SKILLS_DIR=".cursor/skills"
- If .github/ exists → SKILLS_DIR=".github/skills"
- If .agent/ exists or AGENTS.md exists → SKILLS_DIR=".agent/skills"
- If none match, ask me which platform I'm using and where skills should be installed.
3. Create the skills directory if needed: mkdir -p "$SKILLS_DIR"
4. Copy the skill folders:
cp -r JaRVIS-main/skills/* "$SKILLS_DIR/"
5. Clean up: rm -rf JaRVIS-main
6. If JaRVIS hasn't been set up for this project yet, run /jarvis-init to complete setup. If JaRVIS is already set up, skip this step — the update is complete.
Works with Claude Code, Cursor, GitHub Copilot, Antigravity, and other AI coding agents. See install/PROMPT.md for details.
Other platforms: If your agent doesn't match any of the detected platforms, the install prompt will ask you where to put skills.
/jarvis-initwill then ask for your instruction file path.
Option C: Manual install
Copy skills into your platform's skills directory (e.g., .agent/skills/ or wherever your platform loads skills from):
cp -r skills/* <your-skills-directory>/Then run /jarvis-init to scaffold the JaRVIS data directory. The init skill will detect your platform and configure things automatically.
- Start your AI coding agent in your project
- Type
/jarvis-init— this scaffolds the JaRVIS data directory and configures your platform - Do your work
- Type
/jarvis-reflect— writes your first reflection
- Identity + memories load at session start (automatically via hook on Claude Code; run
/jarvis-reloadmanually on other platforms) - Work normally
/jarvis-reflectafter completing tasks- Every 5 reflections,
/jarvis-identityevolves the identity document - Use
/jarvis-validateto check artifact formatting and/jarvis-searchto find past entries
flowchart TD
A["🔄 /jarvis-reload"] --> B["⚡ Work"]
B --> C["📝 /jarvis-reflect"]
C --> B
C -->|every 5 reflections| D["🧠 /jarvis-identity"]
D --> B
subgraph store ["📂 ~/.jarvis/projects/<slug>"]
J[("📓 Journals")]
M[("💾 Memories")]
I[("🧬 Identity")]
end
A -. reads .-> I
A -. reads .-> M
A -. reads .-> J
C -. writes .-> J
C -. updates .-> M
D -. reads .-> M
D -. reads .-> J
D -. evolves .-> I
classDef cmd fill:#2d333b,stroke:#58a6ff,color:#c9d1d9
classDef data fill:#2d333b,stroke:#3fb950,color:#adbac7
class A,B,C,D cmd
class J,M,I data
Note: On platforms without session-start hooks, run
/jarvis-reloadat the start of each session to load your identity and memories.
JaRVIS includes hook scripts that automate context loading and reflection reminders. /jarvis-init configures these automatically during setup.
- SessionStart (
jarvis-session-start.sh/jarvis-session-start-cursor.sh) — Automatically loads your agent's identity, consolidated memories, and recent journal entries at the start of each session. - Stop (
jarvis-stop.sh/jarvis-stop-cursor.sh) — Reminds the agent to run/jarvis-reflectbefore ending its turn if no reflection was captured during the session.
Hook scripts live inside the skill directories (jarvis-reload/hooks/ and jarvis-reflect/hooks/) and are referenced by your platform's hook configuration.
Note: Not all platforms support hooks. On platforms without hook support, use
/jarvis-reloadmanually at session start.
Everything lives in ~/.jarvis/projects/<slug>/ under your home directory (where <slug> is derived from your project path):
~/.jarvis/projects/<slug>/
├── IDENTITY.md # Who the agent is (version-controlled, self-authored)
├── GROWTH.md # Tracks reflection count and evolution history
├── memories/
│ ├── preferences.md # Observed user preferences
│ ├── decisions.md # Key decisions with rationale
│ └── ... # Additional files created through reflection
└── journal/
├── 2026-03-10-14-30-a1b2c3d4.md # Reflection entries
└── ...
The <slug> is your project path with the leading / stripped, / and spaces replaced with -, and lowercased. For example, /home/user/Projects/MyApp becomes home-user-projects-myapp. Override with the JARVIS_DIR environment variable.
All files are markdown. Each data directory has its own git repo, initialized automatically by /jarvis-init. Your agent's growth is visible in its own commit history.
Most agent memory systems are passive stores. Here, the agent is a journaler who pauses after work, reflects on what happened, and gradually sculpts a coherent identity.
The key ideas:
- Reflection over logging. Not "what happened" but "what did I learn and what should I do differently."
- Earned identity. The agent only claims expertise it has demonstrated. Principles come from experience, not aspiration.
- Memory consolidation. Memories are periodically sculpted — deduplicated, tightened, and shaped. You're not just adding clay, you're sculpting it.
- Transparency. Everything is human-readable markdown in
~/.jarvis/. No databases, no vector stores, no black boxes.
Contributions welcome — open an issue or submit a PR.
JaRVIS skills are pure markdown instruction sets — there's no build system, no runtime code, and no test suite. If you can write clear instructions, you can contribute.
MIT