The open workspace for humans and AI.
Noura is an open-source, local-first desktop workspace where everything is a plugin. Combine notes, tasks, projects, and AI chat in one workspace. Keep your work in ordinary files you can edit, back up, and use without Noura.
Try Noura · Documentation · Contribute
Notes, tasks, projects, calendar, folders, and AI are first-party plugins. Choose the combination you need for each workspace in Settings.
Start with notes for writing, then add tasks and projects to organize the work around them. Turn plugins on or off without deleting their files. Plugins use shared capabilities to work with your files and contribute commands or AI context.
Write project notes, track tasks, and give your AI assistant context from the same workspace:
- Notes: write and edit Markdown
- Tasks and projects: track priorities, due dates, and progress on project boards
- Calendar: view scheduled work by month, week, or day
- Search: find content across your workspace with full-text search
- AI chat: connect your provider, choose workspace context, and approve tool actions
- External AI tools: read and update notes and tasks through Model Context Protocol (MCP)
Use Noura alongside your existing tools:
- Open files: keep notes, tasks, projects, and chat history as Markdown with structured metadata
- Local use: read and edit your workspace offline, without a Noura account or hosted service
- External editing: edit, move, and rename files with other tools; review conflicts when changes overlap
- AI permissions: choose your provider and authorize sending workspace content before an in-app AI request
- Credentials: Noura stores provider credentials in your operating system’s credential store
Run the desktop app from source. Install these prerequisites:
- Bun 1.3.14
- Rust 1.91 or newer
- Tauri 2 platform prerequisites for your operating system
git clone https://github.com/lobbystack/noura.git
cd noura
bun install
bun run tauri devCreate a workspace, add a note, and open the note’s Markdown file in your editor.
The browser workspace build also requires the Rust Wasm target and the wasm-bindgen CLI version that matches the Rust dependency:
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --version 0.2.127 --lockedRun the development checks from the repository root:
bun run check
bun run test
bun run build
bun run format:checkFollow the desktop verification guide for the full checks and workspace workflows.
To work on the marketing website, start its development server:
bun run dev:websiteOpen http://127.0.0.1:5174 in your browser.
Your workspace is a folder with a manifest at .noura/workspace.yaml. Notes, tasks, projects, and chats use Markdown with structured metadata in frontmatter. You can move or rename a file without changing its stable identifier.
Noura commits workspace files to disk before reporting a successful change. You can rebuild its SQLite search index and metadata cache from those files. The desktop app and MCP server use the same Rust services:
flowchart LR
desktop["Noura desktop"] --> core["Local core"]
tools["MCP tools"] --> core
core <--> files["Workspace files"]
core --> index["Rebuildable SQLite index"]
Read the workspace format for file layouts and the local-core architecture for write and recovery behavior.
Start with the directory for the part you want to work on:
| Directory | Purpose |
|---|---|
apps/app |
SvelteKit and Svelte 5 interface for the desktop app, account pages, share viewer, and experimental browser workspace |
apps/website |
Marketing website |
apps/server |
Experimental sync service that hosts the browser build of apps/app |
packages |
Typed workspace client, shared types, editor, AI runtime, and plugin contracts |
crates/local-core |
Rust file operations, validation, indexing, watching, and credentials |
crates/mcp-server |
MCP adapter over local-core services |
plugins |
First-party workspace modules |
src-tauri |
Tauri 2 desktop shell and native bridge |
Start with the documentation guide, or use these references for implementation details:
- Workspace format
- Local-core architecture
- AI runtime and permissions
- Plugin capabilities
- Desktop verification guide
- Server setup
Read the contributor conventions before changing code. Keep pull requests focused, include tests for behavior changes, and run the development checks.
For workspace-format changes, update the shared conformance fixtures so Rust and TypeScript accept the same files.
Use GitHub issues for questions, bug reports, and feature requests. Follow the security policy to report a vulnerability.
Noura uses the MIT license. See third-party notices for dependency attributions.