I liked Obsidian. I liked Cursor. But I kept switching between the two and never fully settled in either. Obsidian's markdown editing felt great, but it had no AI chat that felt native to me, and honestly I spent way too much time finding the best theme and best plugins. Cursor, on the other hand, had the AI sidebar I wanted, but it's a code editor and writing long-form text in it was exhausting.
I wanted one app that did both. And I didn't want to pay for another subscription just to get AI in my notes.
So I started building Cushion. Not as some grand plan, just to solve my own problem. When I needed dictation, I added local speech-to-text. When I wanted to chat with AI while writing, I integrated OpenCode (with MCP, skills, agents, the whole thing). Diagrams? Excalidraw. PDFs? Built a viewer. NotebookLM? Plugged it in. It kept growing from there.
It was only for me at first. But at some point I figured, why not open source it. So here it is. Use it, fork it, break it apart, whatever you want. Would love feedback to keep growing Cushion !!
Report
@aleexc12Β This hits close to home. We have been building something pretty similar for a while now and the frustration you described, jumping between Obsidian for writing and Cursor for AI, is exactly what pushed us to start too. The difference in what we are building is that ours leans heavily into focus, less features, more intentional flow, the kind of environment where you actually finish what you started. But seeing Cushion come together this way, especially the way you just kept adding things as you personally needed them, is the most honest way to build. Congrats on open sourcing it. Would love to exchange notes sometime.
Report
This is good, even i use both and have to jump between them.
One question though: How does AI chat handle context, is it only for currently open file?
Context isn't limited to the open file. It runs on opencode under the hood, so the agent can grep or read across your codebase as needed. For the open file specifically: the agent always knows which file you're focused on, but only pulls its content if relevant. That way it keeps the context window lean. We're also planning to give the agent a tool to fetch backlinks for any markdown file, since LSP doesn't work on .md. The idea is for the agent to traverse the link graph autonomously, finding and pulling in related notes as context on demand, similar to how Obsidian maps connections between files.
Cushion
@aleexc12Β This hits close to home. We have been building something pretty similar for a while now and the frustration you described, jumping between Obsidian for writing and Cursor for AI, is exactly what pushed us to start too. The difference in what we are building is that ours leans heavily into focus, less features, more intentional flow, the kind of environment where you actually finish what you started. But seeing Cushion come together this way, especially the way you just kept adding things as you personally needed them, is the most honest way to build. Congrats on open sourcing it. Would love to exchange notes sometime.
This is good, even i use both and have to jump between them.
One question though: How does AI chat handle context, is it only for currently open file?
Cushion
@prateek_kumar28 Heyy !!
Context isn't limited to the open file. It runs on opencode under the hood, so the agent can grep or read across your codebase as needed. For the open file specifically: the agent always knows which file you're focused on, but only pulls its content if relevant. That way it keeps the context window lean.
We're also planning to give the agent a tool to fetch backlinks for any markdown file, since LSP doesn't work on .md. The idea is for the agent to traverse the link graph autonomously, finding and pulling in related notes as context on demand, similar to how Obsidian maps connections between files.