Files
Marcos Paulo 7db396618e
Packaging lint / lint (push) Has been cancelled
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
feat(release): packaging for macOS, Windows and Linux; app icon; xtask version/ico; plain launch reopens the last vault or asks for a folder; --version
Packaging is ported from the Craft family (effectcraft): DMG built and smoke-tested on
macOS aarch64, MSI/deb/rpm scripts adapted, thin release.yml and packaging-lint.yml callers.
rfd 0.17 added (native folder dialog; same version the other Craft apps use).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:48:09 -03:00

53 lines
3.1 KiB
Markdown

# NotesCraft
A native, Obsidian-compatible notes app for the Craft suite, written in Rust (egui/eframe). Your vault is a folder of plain `.md` files that stay readable by Obsidian: wikilinks, embeds, callouts, tags, frontmatter, backlinks, full-text search, daily notes and templates, a graph view, canvas and whiteboard files, diagrams (Mermaid subset, including UML), a plugin host (WebAssembly), an MCP server and a CLI so agents can work on the vault.
**Status: pre-alpha.** The engine and most crates are built and tested; the desktop app opens a vault with a file tree, tabs, a read-only note view, backlinks and outline, a command palette and animations. See [ROADMAP.md](ROADMAP.md) for what is done and [SPEC.md](SPEC.md) for the contract.
## Screenshots
| | |
|---|---|
| ![Workspace](docs/screenshots/workspace.png) | ![Workspace, Catppuccin Latte](docs/screenshots/workspace-light.png) |
| ![Search](docs/screenshots/search.png) | ![Source control](docs/screenshots/source-control.png) |
| ![LaTeX math](docs/screenshots/math.png) | ![Vim mode in the source editor](docs/screenshots/editor-vim.png) |
| ![Settings](docs/screenshots/settings.png) | ![4K](docs/screenshots/4k.png) |
Regenerate with the offscreen renderer: `cargo run -p notescraft-ui-egui --example snapshot -- --vault <vault> --out x.png --size 1440x900 --open "note.md" [--tab explorer|search|tags|buffers|source] [--theme id] [--vim] [--source]` (set `HOME` to a scratch directory so the run does not touch your settings).
## Try it
```sh
export PATH="$HOME/.cargo/bin:$PATH" # use rustup's stable toolchain (1.95 or newer)
cargo run -p notescraft -- /path/to/your/vault
```
Without a vault argument, set `NOTESCRAFT_VAULT`. Keys: Cmd/Ctrl+K command palette, Cmd/Ctrl+O quick switcher, Cmd/Ctrl +/-/0 zoom.
Render the UI to a PNG without a window (useful for design checks):
```sh
cargo run -p notescraft-ui-egui --example snapshot -- --vault /path/to/vault --out ui.png --size 1440x900 --open "folder/note.md"
```
## Install
Release builds: `packaging/macos/package.sh` (DMG), `packaging/windows/package.ps1` (MSI), `packaging/linux/package.sh` (deb, rpm, AppImage); see [packaging/README.md](packaging/README.md). `notescraft` with no argument reopens the last vault, or asks for a folder.
## Develop
```sh
cargo xtask ci # fmt --check, clippy -D warnings, tests, layer check
cargo xtask layers # crate dependency layering only
```
Read [AGENTS.md](AGENTS.md) first (rules for people and AI agents), then [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) (crate map and APIs). The workspace follows PhotoCraft and VectorCraft conventions; shared crates come from `craft-libs`.
## Design
The design lives in a PaperCraft project named `NotesCraft` (tokens for Catppuccin Mocha/Latte, workspace, graph, command palette, slash menu, settings, whiteboard, assistant panel, 4K screen). Rounded floating panels on a `canvas` colour, separated by tone, not borders.
## Licence
MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`). Fonts (Inter, JetBrains Mono: SIL OFL 1.1) and icons (Lucide: ISC) keep their own licences, see [ATTRIBUTION.md](ATTRIBUTION.md).