The real value of character-sheet is the character you build away from it.
Most journalling disappears into a void. Insights get forgotten, negative patterns repeat, and any progress feels invisible.
character-sheet turns self-reflection into an RPG. Earn XP for understanding yourself — skills developed, patterns named, and achievements unlocked.
Chat with your AI, paste back the JSON, watch your character sheet update. No AI? Edit fields directly — it works fully standalone too.
🎮 Try the live demo (no download needed)
🔒 Private by default. A single .html file and some JSON — no server, no accounts, no telemetry. Your data stays on your machine. If you use an AI to journal, check your provider’s privacy settings. Local models like Ollama work for fully offline journalling. Full security details ↓
🤖 Works with any AI — Claude, ChatGPT, Gemini, or any local model. Prefer no AI? Edit fields directly in the app and export your data.
🚧 Early work in progress. All feedback welcome: open an issue, start a discussion, or find me on GitHub.
Follow these same steps whether you’re setting up for the first time or updating to a new version after significant changes. To check for updates, go to Help → Check for updates within the app.
[OPTIONAL] AI-enhanced workflow: pair the app with an AI that has persistent project context (e.g. Claude Projects) for the full journalling experience. The app also works fully standalone: edit fields directly without any AI involved.
character-sheet.html and instructions.md: click each link, then the download icon (top right).instructions.md to project knowledge: Project sidebar → Add content → Add files. Replace the old version if updating."Update my data.json based on our conversation."data.json to project knowledge: same as step 3. (If updating: remove the old version first, then upload the new one.)character-sheet.html, click ↑ (bottom right), paste the JSON, Import.I'm setting up character-sheet, a gamified personal life dashboard. I've attached instructions.md which explains the data format.
Start by asking me what's going on in my life right now - what I'm working on, what's on my mind, what I'm trying to change. Keep it conversational, ask one thing at a time, and follow the thread. Never push me to share more than I want to.
Once you have a reasonable picture, generate my data.json using the format in instructions.md. We can fill in the gaps over time through regular sessions.
[OPTIONAL] Want to populate more of your sheet in one go? Try the Deep Dive - a structured interview covering all main fields. There are also copyable session starter prompts inside the Journal tab of the app itself.
[OPTIONAL] For richer session prompts, upload journalling-prompts.md to project knowledge alongside instructions.md. This powers Guided mode and other structured session types.
data.json in project knowledge: remove the old version, upload the new one.↑, paste the JSON, Import.On mobile? Ask your AI to write the JSON as a file instead of pasting it inline: much easier to handle. “Write my updated data.json as a downloadable file.” Then download it and use the ↑ data.json button in the import modal to select the file. See Mobile workflow.
You can also edit fields directly in the app and use ↓ Export to get updated JSON to paste back to your AI, to ensure it has your latest data.
| Tab | What it shows |
|---|---|
| Combat | Status check-in (Focus / Energy / Interest / Purpose) and regular quest trackers |
| Balance | The four elements (Air / Fire / Water / Earth), scored, detailed, and charted over time |
| Quests | Main quest, side quests with progress, completed quests |
| Skills | Core skills radar (Rest, Movement, Nutrition, Connection), all skills ranked by priority, XP history |
| Enemies | Active negative patterns, limiting beliefs, compulsions, distortions, and the graveyard. Bosses are root patterns; minions are symptoms. |
| Allies | Everything working for you: loot, spells, liberating beliefs, and flow sources |
| Achievements | Titles (insights, deeds, transmutations, surrenders) and character classes |
| Journal | Progression timeline, last session read, session starters, and chapter entries |
See wiki.md for a detailed breakdown of each tab.
Stay in Freeflow (default) or invoke any mode mid-session just by naming it.
| Mode | Trigger phrase | Best for |
|---|---|---|
| 💧 Freeflow | (default) | Following energy wherever it goes |
| 🔥 Coach | "coach mode" |
Specific goal, accountability, clear plan |
| 🌬️ Introspection | "introspection mode" |
Blindspots, patterns, what you keep avoiding |
| 🌍 Guided | "guided mode" |
Not sure where to start - AI leads with prompts |
| ⏩ Catch-up | "catch-up mode" |
Been a while - fast, broad sweep |
| 🪞 Debrief | "debrief mode" |
Review what’s about to be written to JSON |
The AI controls all XP - and the main way to earn it is through journalling. Brain dump what’s been happening, what you’ve worked through, what you’ve noticed about yourself, and the AI will reflect it back as progress on your sheet: updated quests, new skills, achievements unlocked, enemies named or defeated.
Made a breakthrough? Call it out and make the case for why it deserves recognition. Think something was undervalued? Push back. This process does two things at once: it forces you to articulate what actually changed (which deepens the insight), and it builds a habit of being genuinely grateful for positive changes rather than glossing over them. You gain XP, new classes, and titles just by recognising your own growth in freeflow journalling sessions.
It’s a conversational mirror, not a vending machine. You could of course easily cheat this system and defeat yourself in the process!
| File | What it is |
|---|---|
| character-sheet.html | The app. Open in your browser. |
| instructions.md | Upload to your AI project knowledge. |
| deep-dive.md | Structured interview for a fuller first session. |
| journalling-prompts.md | Optional. Upload to project knowledge for deeper session prompts. |
| wiki.md | Full documentation for each tab. |
| tips.md | Token usage, persistence, and updating. |
| journalling-threat-model.md | Privacy risk breakdown across all journalling approaches. |
The immediate focus is getting the app in front of real users, collecting feedback, and fixing bugs. Feature requests and bug reports welcome - open an issue.
character-sheet is free and always will be. If it’s been useful to you, you can sponsor the project on GitHub.
I pledge 10% of anything received to the Center for Humane Technology, a nonprofit working to ensure AI and social media serve human wellbeing rather than exploit it.
character-sheet is not a replacement for professional mental health support. If you’re struggling, please reach out to a qualified professional.
data.json is your private diary. Nothing leaves your machine unless you send it. Any AI provider you journal with (Claude, ChatGPT, etc.) may store, review, or use what you share for training. Check their privacy settings to opt out.data.json and migration.json are the sensitive parts. They contain any sensitive data you’ve journalled - treat them like a private diary. character-sheet.html and instructions.md are identical for all users and safe to share freely.data.json or migration.json to cloud storage. Uploading to Google Drive, Dropbox, or iCloud means trusting that provider with your journal. character-sheet.html and instructions.md are fine to sync.Full journalling threat model - a detailed breakdown of privacy risks across every journalling approach, and where character-sheet fits in.
“We are longing for an understanding of the universe around us when we barely understand the universe within our minds.” - Northlane
AI supercharged journalling and made self-reflection genuinely useful for me, but every conversation started mostly from scratch. The real insights lived in chat logs I’d never reread. I wanted somewhere to see that reflection clearly, own it, and build on it over time.
I’m a professional cyber security consultant with real concerns about trusting any company with deep personal data. character-sheet was inspired by Obsidian.md and the principle that users should own their knowledge on their own devices. The app is a single HTML file with no server, no telemetry, and no accounts, and if you want to go further, pair it with a local LLM like Ollama so no journal content ever leaves your machine.
If social media can use gamification to hold attention and keep people scrolling, I’d rather use the same tools to help people understand and improve themselves.
Ultimately, I built this because I wanted it to exist. LFM.
If you’re a designer who finds character-sheet useful and has ideas for a logo or visual identity, I’d love to hear from you.