# SpringNote: an AI-assisted notebook that writes your daily, weekly and monthly reports

> SpringNote is a Flutter and Rust desktop notebook for Windows and macOS that turns quick jottings into structured daily, weekly and monthly reports using an OpenAI-compatible model. It is AGPL-3.0 licensed, and the last push to the repository was on 2026-09-11.

**Radiant303/SpringNote** — SpringNote is a note-taking tool for the lazy. Just jot things down, and AI tidies up the scattered pieces for you, making recording effortless. 

- Repository: https://github.com/Radiant303/SpringNote
- Website: https://radiant303.github.io/SpringNote/
- Stars: 548 · Forks: 52
- Language: Dart
- License: AGPL-3.0
- Published: 2026-09-14 · Updated: 2026-09-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/radiant303-springnote

## What SpringNote actually solves, and for whom

Most note tools stop at storage. You write something, it sits in a list, and the work of turning those entries into something readable is still yours. SpringNote's README frames the problem in exactly those terms: writing one thing down is easy, but organising many scattered notes together takes time, and that is the reason many people give up on a journaling habit.

The project's answer is to remove the organising step. You record thoughts and daily moments whenever you like, and the app asks a model to assemble them into daily, weekly and monthly reports. A second feature called Memories lets you search and chat with past notes rather than scrolling through them.

The intended user is a desktop user, specifically on Windows or macOS. The README lists a custom Windows title bar, system tray integration, launch on boot, global shortcuts, a desktop status widget and system font switching among the polished desktop features. There is no mobile or web client described. If your note-taking happens on a phone during a commute, this is not the shape of tool you are looking at.

## Capture, organise, reflect: how the pieces fit together

The repository describes the model as a cycle: capture, organize, reflect, grow, illustrated in the README with ASCII art of scattered thoughts converging into the app. The implementation of that cycle is visible in the feature list.

Capture happens in a quick input box on the home dashboard. The dashboard also carries an activity heatmap, a summary card for today, and a Workhorse Clock that tracks work hours against a custom daily salary and shows the resulting hourly rate as a desktop widget. That clock is a separate concern from note generation, but it feeds the same record stream.

Organisation is the AI step. The app generates structured content from what you jotted down, and the note editor supports daily, weekly and monthly notes with Markdown editing, preview, code block highlighting and AI completion suggestions. On startup, the app fills in missing weekly or monthly reports based on the daily or weekly notes that already exist. That startup behaviour is the part worth understanding before you trust the output: report generation is triggered by the app launching, not only by you pressing a button.

Reflection is Memories, a chat interface over your saved records with a visible thinking process, tool call display and Markdown rendering. The statistics panel reports records, activity, model calls and data overviews across time ranges, which is the closest thing to an audit trail for how often the model was actually invoked.

## Installing SpringNote and configuring DeepSeek as the model provider

The README does not document a package manager or a build-from-source path for end users. It points to the Releases page, so the install step is a download.

```bash
# Per the README, download the build from the Releases page:
# https://github.com/Radiant303/SpringNote/releases/latest
```

Before first use, the README asks you to confirm the data directory. Daily, weekly and monthly notes, images and related configs are all saved around that directory, so picking a location you back up is part of setup rather than an afterthought.

The AI configuration is the step most likely to trip people up, and the README walks through it with DeepSeek as the example. You add a provider and set its BaseURL to the beta endpoint:

```text
https://api.deepseek.com/beta
```

The README explains why: the beta path is used because of DeepSeek's FIM API requirements. For other OpenAI-compatible APIs, you fill in the BaseURL according to your provider's documentation.

Next you add the model manually. The README uses `deepseek-v4-flash` as the example and notes that DeepSeek's beta endpoint does not support listing models, which is why the model has to be typed in rather than picked from a list. After adding it, you edit the model and manually check the completion capability option, then select it as the default. The README adds a consequence worth remembering: if a model does not support completion, it will not appear in the completion model list at all.

With that done, the first real use is creating a note from the home page, opening it in the notebook to edit the Markdown, and then trying Memories with a question about your saved work records. Notebook search only covers the currently selected note type, so a search while the daily tab is open will not surface weekly entries, and you need at least two characters before results appear.

## The completion capability flag is a real failure mode

The configuration flow hides a sharp edge. You have to manually tick the completion capability option on a model, and the README states plainly that a model without completion support will not show up in the completion model list. That means the inline AI completion suggestions in the editor depend on a checkbox you set by hand, not on the app probing the endpoint.

If you add a model, forget the flag, and then wonder why suggestions never appear, the app has no way to tell you that the model was filtered out. The symptom is silence. The same applies to providers whose BaseURL does not expose model listing: you are typing model identifiers from memory, and a typo produces the same absence rather than an error message.

There is a second constraint in the report generation design. Because the app fills in missing weekly and monthly reports on startup from existing daily or weekly notes, the quality of a monthly report depends entirely on how complete the daily entries were. If you wrote nothing for a week, there is nothing to aggregate, and the app will not invent it. SpringNote removes the organising step, not the recording step. Anyone hoping to skip writing entirely has misread what the tool does.

Finally, the data directory is a single local location holding notes, images and configs. The README does not describe sync, multi-device conflict handling or rollback, so treat that directory as the source of truth and back it up yourself.

## Where SpringNote sits next to Obsidian and Joplin

The obvious comparison is Obsidian, and the difference is where the intelligence lives. Obsidian is a local Markdown vault with a plugin ecosystem; the organising work is done by plugins you choose and configure, and the vault is plain files you can move anywhere. SpringNote makes the model a first-class part of the loop: reports are generated from your notes, and Memories is a chat interface over them rather than a search box. The trade-off is that SpringNote's value degrades sharply if you never configure a provider, whereas Obsidian works fully offline with no model at all.

Joplin is the other reference point. It is built around sync across devices and a broad client range, and its organising primitives are notebooks, tags and search. SpringNote's primitives are dates: daily, weekly, monthly. That is a narrower model, and it is the reason report generation works at all, because the app knows what a week is. If your notes do not map onto a calendar, that structure becomes a constraint rather than a feature.

Neither of those tools ships a Workhorse Clock or an earnings widget, and neither treats a salary calculation as part of the note-taking surface. That is a genuinely unusual combination, and it is also a signal about the intended user: someone tracking work and output together, not a general-purpose knowledge base builder.

## Licence, maintenance and the cost of upgrading

SpringNote is licensed under AGPL-3.0. The practical implication of that identifier, as opposed to a permissive licence, is that if you modify the code and make it available to users over a network, the AGPL's source-disclosure terms are generally understood to apply. Whether that matters depends on what you intend to do with the code, and it is worth reading the licence text or asking someone qualified rather than relying on a summary.

On maintenance: the repository is not archived, and the last push was on 2026-09-11. The release history shows 1.0.9 on 2026-09-11, 1.0.8 on 2026-08-14 and 1.0.7 on 2026-08-07, so the cadence over that window was roughly one release a month. Release notes for 1.0.9 mention daily, weekly and monthly report image sending to AI; 1.0.8 added Memories tool orchestration and ISO week support; 1.0.7 added a global signature and multi-language support.

The upgrade cost is dominated by the data directory and the model configuration rather than by migration scripts. The repository contains an `update/` directory at the top level and a `CHANGELOG.md`, so the project does track changes, but the README does not document a rollback path if a new version behaves badly. If you are running this on a machine you depend on, copy the data directory before upgrading. The `docs/` directory and the project homepage carry usage instructions beyond the README, which is where to look for anything the README leaves out.

## Conclusion

SpringNote suits people who already write short notes and want an OpenAI-compatible model to assemble them into daily, weekly and monthly reports without doing the organising themselves, and who are comfortable running a desktop app on Windows or macOS. It is the wrong tool if you need a mobile client, a web version, or a note store you can sync across devices without pointing it at a model provider. Before committing, verify three things: that your provider exposes a BaseURL that supports the completion behaviour the app expects, that the data directory you pick is one you are willing to back up, and that AGPL-3.0 fits how you intend to use or redistribute the code.

## FAQ

### What AI providers does SpringNote support?

The README uses DeepSeek as the configuration example and states that for other OpenAI-compatible APIs you fill in the BaseURL according to your provider's documentation. The repository topics also list chatgpt, claude, gemini and deepseek.

### Which platforms can run SpringNote?

The repository topics and README centre on macOS and Windows, and the feature list describes desktop-specific behaviour such as a custom Windows title bar, a system tray icon and launch on boot. No mobile or web client is described.

### Why does a model I added not appear in the completion model list in SpringNote?

The README states that a model which does not support completion will not appear in the completion model list, and that you must manually check the completion capability option when editing the model. DeepSeek's beta endpoint also does not support listing models, so the model has to be added by hand.

### Where does SpringNote store my notes?

The README asks you to confirm the data directory before first use, and states that daily, weekly and monthly notes, images and related configs are all saved around that directory. No sync behaviour is documented.

### What licence is SpringNote released under?

The repository lists AGPL-3.0, and the README badge shows License AGPL-3.0.

### How often are SpringNote reports generated?

The README states that on startup the app fills in missing weekly and monthly reports based on existing daily or weekly notes. You can also create daily, weekly and monthly notes directly in the editor.

## Sources

- [License: AGPL-3.0](https://github.com/Radiant303/SpringNote/blob/main/LICENSE)
- [Project website](https://radiant303.github.io/SpringNote/)
- [Radiant303/SpringNote on GitHub](https://github.com/Radiant303/SpringNote)
- [README](https://github.com/Radiant303/SpringNote/blob/main/README.md)
- [Releases](https://github.com/Radiant303/SpringNote/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/radiant303-springnote
