A hackable CLI note-taking app built in Rust with a web server, TUI interface, command palette, AI integration, and graph visualization.
- Command-line Interface: Create and organize markdown notes from your terminal
- Terminal UI (TUI): Browse and edit notes with a nice terminal interface
- Web Interface: Access your notes through a modern React web application
- AI Integration: Summarize notes and extract keywords with GPT-4
- Graph Visualization: See connections between notes and tags
- Hackable Architecture: Designed to be easily extended and customized
- Rust (latest stable version recommended)
- Bun.js (for web UI development)
# Clone the repository
git clone https://github.com/your-username/nrs.git
cd nrs
# Build the Rust application
cargo build --release
# Install the binary
cargo install --path .
# Build the web UI
cd web-ui
bun install
bun run build# Create a new note
nrs new "My New Note"
# Launch the TUI interface
nrs tui
# Start the web server
nrs serve
# Or specify a custom port
nrs serve --port 8080| Key | Function |
|---|---|
↑/↓ or j/k |
Navigate between notes |
Tab |
Switch between Notes/Preview/AI tabs |
n |
Create a new note |
e |
Edit current note in $EDITOR |
/ |
Search notes |
: |
Command palette |
t |
Toggle tag display |
r |
Refresh note list |
h |
Show help |
q |
Quit |
To use AI features, set your OpenAI API key:
export OPENAI_API_KEY=your-api-key-hereIn the TUI, use these commands:
:summarize- Generate a summary of the current note:keywords- Extract keywords from the current note
Access the web interface at http://localhost:4321 after starting the server with nrs serve.
src/- Rust source codemain.rs- Entry point and CLI definitionnotes.rs- Core note functionalitytui.rs- Terminal UI implementationweb.rs- Web server and APIai.rs- AI integration with OpenAIcommands.rs- Command handlers
web-ui/- React web interfacesrc/- TypeScript and React componentspublic/- Static assets
cd web-ui
bun install
bun run dev # Development server
bun run build # Production buildMIT
Note: This project is a learning exercise in Rust development. Expect occasional bugs and high CPU usage during development.