- Do you maintain your notes in markdown?
- Ever felt uneasy that all your chats with ChatGPT, Claude, and others are spread in several providers? Want to keep them in the same place, possibly in a Git repo?
- Want to integrate your note-taking with your LLM provider of choice?
- Want a CLI, Desktop, and mobile app?
If so, then this project is for you.
Welcome to ChatNotes, an AI-friendly multi-LLM markdown-based note-taking app. It's still new and scrappy, but usable.
Here's the sample config I've been using with my notes:
$ cat ~/Code/Notes/.chatnotes/config.toml
version = 1
secrets_provider = "keyring"
ignores = [ "**/.git", "**/.obsidian" ]
[storage]
notes_dir = "."
chats_dir = ".chatnotes/chats"
[provider]
default = "openai"
[providers.openai]
model = "gpt-5.5"
models = ["gpt-5.5", "gpt-4o-mini"]
api_key_name = "OPENAI_API_KEY"Each workspace gets it own config file. Or one may have a global one in
~/.chatnotes/config.toml.
Needless to say, feel free to leave your thoughts and suggestions as GitHub issues.
- Keeps chats and notes together in one place
- Stores chats as JSON and notes as Markdown so the data stays portable
- Lets you use multiple LLM providers instead of locking you into one
- Supports a terminal app and a desktop app
- Lets you write and browse notes while chats are open beside them
- Streams assistant responses into the active conversation
- Supports creating, renaming, deleting, and linking chats and notes
- Supports note continuation chats through
/chatand the note Chat button - Supports search across chats, notes, and workspace-relative paths
- Supports theme selection in the desktop app
- Supports a compact desktop sidebar that can collapse for focused reading
- Multiple providers; currently, only OpenAI is supported
- iOS app
- Syncing
For setup, repository structure, configuration, commands, and development details, see DEVELOPMENT.md.
Apache-2.0. See LICENSE.

