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.
- Download
character-sheet.htmlandinstructions.md: click each link, then the download icon (top right). - Create (or open) your AI project: e.g. claude.ai → New Project.
- Upload
instructions.mdto project knowledge: Project sidebar → Add content → Add files. Replace the old version if updating. - Paste the quickstart prompt below and start talking.
- At the end of your session, ask:
"Update my data.json based on our conversation." - Add
data.jsonto project knowledge: same as step 3. (If updating: remove the old version first, then upload the new one.) - Import into the app: open
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.
- Start a new chat: in your AI project. The AI already has your context from project knowledge.
- Journal: brain dump freely, or pick a mode (see below).
- End the session: Ask your AI to "Update my data.". For smaller sessions this produces a Partial update to keep token usage low.
- Replace
data.jsonin project knowledge: remove the old version, upload the new one. - Sync the app: click
↑, 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. |
- User onboarding - Improved (less overwhelming) new user experience
- Diagramming relationships - between quests, skills, enemies, etc
- Skill trees - structured skill progression with branching paths
- Export to PDF - a read-only view of your sheet
- Quest dependencies - unlock side quests when others complete
- Themes / skins - alternate visual styles beyond the default dark RPG look
- Sync / backup - optional encrypted export or cloud sync (without compromising local-first principles)?
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.jsonis 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.- Your
data.jsonandmigration.jsonare the sensitive parts. They contain any sensitive data you've journalled - treat them like a private diary.character-sheet.htmlandinstructions.mdare identical for all users and safe to share freely. - Think before syncing
data.jsonormigration.jsonto cloud storage. Uploading to Google Drive, Dropbox, or iCloud means trusting that provider with your journal.character-sheet.htmlandinstructions.mdare fine to sync. - AI is optional. The app works fully offline as a plain tracker. For full privacy, use a local model like Ollama and paste its output manually - nothing ever leaves your machine.
- Use Firefox if possible, since it isolates each local HTML file's storage. In Chrome and Edge, all local files share the same origin, so a malicious local file you open could read your data.
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.