AI prompts
base on โจ AI-powered markdown editor - leverage LLMs with your documents - 100% local or in the cloud <div align="center">
<a href="https://www.takeniftynotes.net/">
<img src="https://github.com/user-attachments/assets/82041555-ba66-400e-a899-8f9c1bc70bcf" height="384">
</a>
# Rocketnotes
[](https://github.com/fynnfluegge/rocketnotes/actions/workflows/build-main.yaml)
[](https://github.com/fynnfluegge/rocketnotes/actions/workflows/deploy.yaml)
[](https://github.com/fynnfluegge/rocketnotes/actions/workflows/docker-build-and-publish.yaml)
[](https://github.com/fynnfluegge/rocketnotes/actions/workflows/electron-build-and-publish.yaml)
[](https://opensource.org/licenses/Apache-2.0)
</div>
<div align="center">
<a href="https://trendshift.io/repositories/12090" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12090" alt="fynnfluegge%2Frocketnotes | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div>
Rocketnotes is a web-based Markdown note taking app with native AI feature integrations like chat, text completion, voice-to-text transcriptions and agentic document archiving.
It utilizes a [100% Serverless RAG pipeline](https://medium.com/@fynnfluegge/serverless-rag-on-aws-bf8029f8bffd) built with
[langchain](https://github.com/langchain-ai/langchain),
[langgraph](https://langchain-ai.github.io/langgraph),
[faiss](https://github.com/facebookresearch/faiss),
[sentence-transformers](https://github.com/UKPLab/sentence-transformers),
[Ollama](https://github.com/jmorganca/ollama).
## How to use
- [Sign Up](https://takeniftynotes.auth.eu-central-1.amazoncognito.com/login?response_type=code&client_id=tt3v27pnqqh7elqdvq9tgmr9v&redirect_uri=https://app.takeniftynotes.net) for free and use it as a web or Electron app
- Run it 100% [locally with Docker](INSTALLATION.md#run-with-docker)
- Check [Contribution Guide](CONTRIBUTING.md#contributing-guide) how to setup a local dev environment
- Self-hosting on AWS
<div align="center">

</div>
## โจ Features
- ๐ **Code Syntax Highlighting**: For developers and technical users to save and read code snippets in a clean, readable format.
- ๐ **Katex and Mermaid Support**: Embed complex mathematical formulas (Katex) and create diagrams or flowcharts (Mermaid) directly within your documents.
- ๐ณ **Hierarchical Document Tree**: Organize documents in a nested structure with drag-and-drop functionality to easily restructure your knowledge base.
- ๐ **Document Sharing**: Collaborate by sharing specific documents with others.
- ๐ **Content Search**: A fast and efficient way to find specific notes by searching for keywords within their content.
- ๐ฆ **Semantic Search**: Goes beyond keyword search to understand the meaning behind your query and find the most conceptually related notes.
- โ๏ธ **Copilot-like Text Completion**: The AI suggests ways to complete your sentences or paragraphs, speeding up the writing process.
- ๐ค **Chat with Your Documents**: Ask questions in natural language and get answers synthesized from your own documents.
- โจ **Multi-LLM Support**: Seamlessly switch between different Large Language Models, with current support for OpenAI, Anthropic and Together AI models.
- ๐ฅ **Zettelkasten with Agentic Archiving**: An AI agent analyzes snippets from your "inbox" and intelligently files them into the most relevant existing document.
- ๐ฃ๏ธ **Voice-to-Text Note Taking**: Dictate your notes instead of typing them.
- ๐ฆ **Local Mode with Docker**: Run the entire application on your own machine using Ollama for 100% local and private AI processing.
- โ๏ธ **MCP Server Integration**: Integrate your knowledge base as MCP to use it with any LLM application.
- ๐ฎ **Neovim Plugin**: Integrate your note-taking directly into the Neovim code editor.
## ๐ ๏ธ Tech Stack
- **Frontend**: Angular, TypeScript, Electron
- **Backend**: Go, Python
- **AI**: Langchain, Langgraph, Faiss
- **Infrastructure**: AWS, Docker
- **Database**: DynamoDB
- **Storage**: S3
## ๐ฌ Chat with your documents
- ๐ค Use LLMs together with vector embeddings to chat with your documents.
<div align="center">
<img width="812" alt="Screenshot 2025-06-14 at 16 40 53" src="https://github.com/user-attachments/assets/5051be74-9e7d-41c4-bc2b-a1d9d5c75606" />
</div>
## โ๏ธ LLM-powered text completions
<div align="center">
<img src="https://github.com/user-attachments/assets/ee8bc520-71fd-498d-b7f1-042a28884446" width="680">
</div>
## ๐ป Code documents with syntax highlighting
- Create useful code snippets in your favourite programming language with syntax highlighting.
<div align="center">
<img width="812" alt="Screenshot 2025-06-14 at 15 11 32" src="https://github.com/user-attachments/assets/c0bf47bd-644d-4a34-83dd-2344905bff5f" />
</div>
## โก Superfast Document Search
- ๐ Search through all your documents by content.
- ๐ Get autosuggestions for all documents matching your search pattern - superfast!
<div align="center">
<img width="768" src="https://github.com/fynnfluegge/rocketnotes/assets/16321871/0d1582fa-120f-4cc5-89c2-a490cc1a750a" width="800">
</div>
## ๐ณ Hierarchical Document Tree
- ๐ Save your documents hierarchically with unlimited depth of subdocuments.
- ๐๏ธ Structure your documents with drag and drop.
- ๐ Pin favourite documents for fast top-level access.
<div align="center">
<img width="800" alt="Screenshot 2025-06-14 at 15 35 24" src="https://github.com/user-attachments/assets/06f714aa-09bd-43de-bbdf-169f454b0a13" />
</div>
## ๐ฅ Zettelkasten inbox with agentic archiving
- โ๏ธ Save your daily note snippets into zettelkasten inbox by typing or voice recording.
<div align="center">
<img width="640" alt="Screenshot 2025-07-08 at 22 15 47" src="https://github.com/user-attachments/assets/6fbf86ce-4e2f-42b2-b6dc-fd32ce2ffe2f" />
</div>
- ๐ค Insert note snippets into most relevant documents by AI agent workflows.
<div align="center">
<img width="640" alt="Screenshot 2025-07-08 at 22 18 07" src="https://github.com/user-attachments/assets/bd5e7a7b-17fb-48eb-861d-da7241a02fc2" />
</div>
## โญ๏ธ Star History
<div align="center">
<img src="https://api.star-history.com/svg?repos=fynnfluegge/rocketnotes&type=Date" width="600" />
</div>
## ๐ Contributing
A good way to do the first contribution are the [good first issues](https://github.com/fynnfluegge/rocketnotes/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).
On some of the issues are already linked PRs with comments in the code what has to be done. These PRs can be picked up if not assigned to someone yet.
The most comfortable way to get started is to open the project in a ready-to-code Gitpod workspace with all packages & tools preinstalled and a running database with sample data.
<div align="center">
<a href="https://gitpod.io/#https://github.com/fynnfluegge/rocketnotes">
<img src="https://gitpod.io/button/open-in-gitpod.svg" height="48">
</a>
</div>
If you prefer to setup the project on your local machine see [Contributing Guide](CONTRIBUTING.md#contributing-guide) and learn all required steps to run it locally in development mode.
Don't hesitate to open an issue for getting some feedback about a potential bug or if you desire a missing feature.
It is appreciated to check over current [issues](https://github.com/fynnfluegge/rocketnotes/issues) and provide feedback to existing ones or even raise a PR which solves an issue.
Any contribution is welcome!
## ๐ Troubleshooting
- ### Apple could not verify โrocketnotesโ is free of malware that may harm your Mac or compromise your privacy.
- This happens since the `dmg` file was not build with an official Apple developer license. To circumvent this, open Settings -> Privacy & Security -> Security -> "rocketnotes" was blocked to protect your Mac -> Open Anyway
", Assign "at most 3 tags" to the expected json: {"id":"12090","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"