Guide · Agent skill
How to use the StateLog Mood Journal agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
StateLog is an agent skill for Claude that turns short codes such as M4 (mood 4 of 5) or W (workout just done) into a timestamped journal stored on your own machine. It is for people who want mood and habit tracking with almost no typing, and who are comfortable running a small Bun/TypeScript tool locally. By the end of this guide you will know what the skill does, how to install it, how to trigger it, and what it needs to run.
Quick start
- 1Download and unzip. Download the StateLog ZIP from the directory page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder.
- 2Install the state engine. Make sure LIFEOS/TOOLS/State.ts is present at ~/.claude/LIFEOS/TOOLS/ and that the Bun runtime is installed.
- 3Optionally create Config.md. Follow Setup.md to create LIFEOS/USER/CUSTOMIZATIONS/SKILLS/StateLog/Config.md for your personal meanings and streak tracking.
- 4Send your first shorthand. Type a message such as M4 or e4 cf3 and expect a single acknowledgment line.
- 5Log an event. Say "just worked out" or "went for a walk" to reset the matching freshness counter.
- 6Check your status. Ask "how am I tracking" to see each dimension's latest value and age.
What is an agent skill, and what does StateLog do?
An agent skill is a folder of instructions and optional scripts that an AI agent loads when a request matches the skill's description. StateLog is one such skill. Once it is loaded, the agent recognises dimension shorthand and saves it to a log instead of treating it as chat.
Each entry is a letter and a number from 1 to 5, optionally followed by a note. The skill tracks eleven dimensions: H overall, M mood, E energy, S sleep, R relationships, F financial, C creativity, CF creative freedom, W workout, K walk and A affirmation. Eight of these are ratings you give. W, K and A are freshness counters that record how many days have passed since the event.
- Rating dimensions (1-5): H, M, E, S, R, F, C, CF
- Freshness dimensions (days since): W workout, K walk, A affirmation
- Entries are stored in an append-only log, so earlier entries are never overwritten
- The skill acknowledges each entry in one line without follow-up questions
Install the StateLog skill
Download the StateLog ZIP from the directory page and unzip it. You can place the skill in one of two locations: your personal skills folder at ~/.claude/skills/, or a project's .claude/skills/ folder if you want it only for that project.
If you use the Claude apps rather than Claude Code, you can instead upload the skill under Settings → Capabilities → Skills.
The skill also depends on the LifeOS state engine. The engine, State.ts, must be present at ~/.claude/LIFEOS/TOOLS/, and the Bun runtime must be installed because the skill calls bun to run it.
- Personal install: unzip into ~/.claude/skills/
- Project install: unzip into the project's .claude/skills/
- Claude apps: Settings → Capabilities → Skills, then upload
Check the requirements before you start
StateLog needs three things. The Bun runtime must be available, because the skill runs its engine with bun. The State.ts engine must sit at ~/.claude/LIFEOS/TOOLS/State.ts. The skill also runs scripts, so it is not a plain text prompt.
A configuration file is optional. Logging works without it. The file, Config.md, only records what your ratings mean to you and sets your affirmation practice file. Setup.md explains how to create it at LIFEOS/USER/CUSTOMIZATIONS/SKILLS/StateLog/Config.md. Without it, the agent says so once, skips the streak bump and signal resets, and still logs your entry.
- Required: Bun runtime
- Required: LIFEOS/TOOLS/State.ts at ~/.claude/LIFEOS/TOOLS/
- Optional: Config.md for personal meanings and streak tracking
bun ~/.claude/LIFEOS/TOOLS/State.ts currentLog an entry with a natural request
You do not need a special command. Send the shorthand on its own and the skill routes it to logging. A message that is only shorthand is handled quietly. You can also say things like "log my mood" or "just worked out", and the agent will translate them into the right letter.
A rating is always 1 to 5, where 3 is fine and 4 or 5 is the preferred range. The skill only writes a rating when you state one yourself. An event such as a workout resets the W counter but never writes a mood or energy score for you.
- "M4" records mood 4
- "M2 slept badly" records mood 2 with your note
- "e4 cf3" records energy 4 and creative freedom 3 in one message
- "W" or "just worked out" resets the workout counter
- "K" or "went for a walk" resets the walk counter
- "A" or "did my affirmations" resets the affirmation counter
Check how you are tracking
Ask a status question such as "how am I tracking" or "state check-in". The agent reads the current snapshot and shows each dimension's latest value and how old it is. Each dimension has a freshness tier of fresh, aging or stale, and the skill names anything stale or never logged in a single closing line.
For a direct look at the tool output, run the current command. Add --json if you want machine-readable output for your own computation.
- Each dimension shows its latest value and age
- Stale or never-logged dimensions are flagged in one line
- Mood and energy go stale in hours; relationships and financial in days
bun ~/.claude/LIFEOS/TOOLS/State.ts current --jsonSafety notes: scripts, files and network
StateLog runs scripts. Its engine is a local Bun/TypeScript program, and the skill does not use the network. Your data stays in files on your computer: an append-only log.jsonl and a derived current.json, both under LIFEOS/USER/STATE/ within your Claude config folder.
Read the skill's files before you install it if you are not comfortable running local scripts. Note that the skill's description mentions health imports, but the skill does not import health data. It is a personal journal with no clinical basis.
- Runs local scripts: yes
- Uses the network: no
- Data location: LIFEOS/USER/STATE/log.jsonl and current.json
- Not a clinical or medical tool
Tips for getting the most from StateLog
Keep entries short and consistent. Use the same scale every time so that later comparisons between mood, sleep and workouts mean something. Adding a short note with a rating, such as "M2 rough day", keeps the context without any analysis.
If you want life-goal percentage scoring, use the separate Telos skill, not StateLog. Requests about goal gaps such as "health 68%" are routed away from the journal.
- Log in the moment to keep timestamps accurate
- Use notes for context and keep them short
- Send goal-percentage questions to Telos instead
What people use it for
- Logging mood and energy during a workday with one-word messages
- Recording that a workout or walk happened without writing a rating
- Reviewing which dimensions have gone stale before a weekly check-in
- Keeping a timestamped log of sleep and mood to compare later with workouts
Frequently asked questions
How do I install the StateLog agent skill?
Download the StateLog ZIP from the directory page and unzip it into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. In the Claude apps you can upload it under Settings → Capabilities → Skills. You also need the State.ts engine at ~/.claude/LIFEOS/TOOLS/ and the Bun runtime.
What do I need to run StateLog?
You need the Bun runtime, because the skill calls bun to run State.ts, and the engine at ~/.claude/LIFEOS/TOOLS/State.ts. A Config.md file is optional; it only records what your ratings mean and sets an affirmation practice file.
Is StateLog free and what is its licence?
The skill is listed under the MIT licence. Check the repository's licence file for the full terms before reusing or redistributing it.
What do the letters like M, E and W mean?
M is mood, E is energy, S is sleep, R is relationships, F is financial, H is overall, and C and CF cover creativity and creative freedom. These are rated 1 to 5. W, K and A are freshness counters for workout, walk and affirmation, recording days since the event.
Does StateLog send my data anywhere?
The skill does not use the network. Entries are written to LIFEOS/USER/STATE/log.jsonl and a derived current.json on your own computer.
Is StateLog an alternative to Telos or a medical tracker?
No. Telos handles life-goal percentage scoring, and StateLog routes those requests elsewhere. StateLog is a personal journal with no clinical basis, so it is not a medical mood tracker.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
StateLog suits people who use Claude Code or a LifeOS setup and want quick, consistent mood and habit logs they keep on their own machine. It is a poor fit if you need clinical mood tracking, want goal-percentage scoring, or do not want a local log written under your Claude config folder.
Download the skill