The safe option, again
I keep asking for one more quarter of savings before I commit.
AI reflection partner
Find recurring patterns across your Journal Archive, trace them to dated entries, and challenge the reading in conversation.
One difficult week reads like a mood. The same hesitation across three years reads like a decision that keeps moving away.
I keep asking for one more quarter of savings before I commit.
The planning creates a sense of motion without the risk of a decision.
It is the first time in years I chose motion over modeling.
Fictional proof
Switch between five real product views using fictional data. The static demo performs no model call and stores nothing in your browser.
A Life Report names the dated entries behind an interpretation, so you can compare the reading with the original writing instead of treating it as a verdict.
An Entry Reference is a dated journal entry named as support. It is not an independently verified citation.
Explore the fictional Life ReportRecurring pattern: the reason changes while the delay stays constant.
One globally active Perspective shapes future Entry Reflections, Life Reports, and Conversations. Change it any time in Prompt Workshop.
Warm first, then clear when the pattern is hard to miss.
Turns supported patterns into decisions and small next steps.
Names contradiction and avoidance without attacking identity or worth.
Separates observation from interpretation with minimal editorializing.
Keeps instructions you write yourself when they do not exactly match a preset.
The reading is a starting point you can push back on. The reply engages with your objection using journal context instead of automatically agreeing.
YouThe report says I avoid decisions. That feels harsh.
UnflincherSaving was responsible. The entries also show the target moved every time you got close.
Start with an existing Douban archive or write directly in Unflincher. Both become one Journal Archive.
Import
The supported archive import is an untouched Tofu Chrome extension export handled by the CLI importer. No spreadsheet reformatting is required.
Read the import guideWrite
Skip import when you have no Douban archive. Entries added from the Write page join the same Journal Archive.
See the self-hosted appPrivacy and setup
Unflincher is single-user and self-hosted. Entries, prompts, generated reflections, reports, and Conversations stay in your local SQLite database.
Stored locally
SQLite stores entries, prompt versions, generated output, and Conversation history on the host you control.
External processing
GitHub Copilot is the only model integration. The selected model receives the content listed below for the feature you use.
When its separate model passes preflight, the first message of a new general Conversation is also sent once to generate a short session title. Otherwise the date title remains.
The complete request must fit the selected model's context window. Unflincher fails clearly instead of silently dropping older entries or Conversation history.
Unflincher is not therapy, does not diagnose or treat, and does not impersonate a licensed professional. It does not replace professional care or relationships with other people.
The public demo contains only fictional data and performs no model calls, tracking, cookies, storage, or writable operations.
The public site is hosted on GitHub Pages and is subject to GitHub's platform logging and privacy practices.
Source available for noncommercial use under PolyForm Noncommercial 1.0.0.
The short version of what the product does, what it sends, and where its boundaries are.
Unflincher is an evidence-grounded AI reflection partner for people with years of journal entries. It reads across your Journal Archive, finds recurring patterns, points back to dated entries, and lets you challenge the interpretation in Conversation.
A Perspective is the globally active stance used for future Entry Reflections, Life Reports, and Conversations. Choose Companion, Coach, Challenger, Analyst, or Custom in Prompt Workshop. Changing it does not rewrite existing generated content.
A Life Report is a cross-year synthesis of recurring patterns, changes, contradictions, and goals. It names dated Entry References so you can compare the interpretation with the original writing.
The supported archive import is an untouched Douban diary Excel export from the Tofu Chrome extension, handled by the CLI importer. You can also write entries directly in Unflincher. There is no browser upload or generic spreadsheet importer.
Entries, prompts, generated output, and Conversation history stay in local SQLite. GitHub Copilot is the only model integration. Depending on the feature, it receives the full Journal Archive or selected entry context, active or draft instructions, applicable Conversation history, and the current message. A separate model may receive the first general Conversation message once to generate a short title. The complete request must fit the selected model's context window, and Unflincher fails clearly instead of silently dropping older content.
Unflincher is source available for noncommercial use under PolyForm Noncommercial 1.0.0. Commercial use requires a separate license.
Unflincher is not therapy, does not diagnose or treat, and does not impersonate a licensed professional. It does not replace professional care or relationships with other people.
Explore the fictional product first, then decide whether to run Unflincher on a host you control.