Website: https://princey9.github.io/NoteNest/
Demo: https://princey9.github.io/NoteNest/demo/
Pricing: https://princey9.github.io/NoteNest/pricing/
Repo: https://github.com/Princey9/NoteNest
Releases: https://github.com/Princey9/NoteNest/releases/latest
NoteNest is a clinical note prep toolkit that works offline to protect sensitive details with placeholders and produce usable summaries. It converts messy notes into a patient-friendly view and clinician-ready structured outputs (SOAP or 5C’s), and it includes Cloak Mode for scan/protect/report workflows.
- Protects sensitive details (names, emails, phones, IDs, DOB, addresses) using placeholders.
- Clinician-ready outputs: SOAP or 5C’s, selectable.
- Patient-ready output: complaint-first, clear, and actionable.
- Offline-first: no network calls, no paid APIs.
- Exam-ready: reproducible checks, static GitHub Pages demo, and release workflow.
cargo run --quiet -- convert - --clinician soap --style protected --format text <<'NOTE'
ER note (messy): JOHN O?? 43M chest tightness x2d, worse stairs + SOB. wife Mary 0176-12345678 called.
email john.osmith@gmail.com MRN 883920 DOB 12/03/1982 addr 12 Hauptstrasse 80331 Muenchen.
pmh HTN/DM2; meds metformin 500 bid + ramipril 5mg od; nkda.
vitals BP168/96 HR108 T37.2. ecg ?st-depr. trop 0.08 ng/mL.
plan: send ED; repeat trop 3h; ASA; consider heparin; f/u cardio.
NOTEpython3 -m http.server 8001 --directory docsflowchart LR
A[Raw clinical note] --> B[Normalize & clean]
B --> C[Protect sensitive fields]
C --> D[Extract clinical fields]
D --> E[Fill typed templates]
E --> F[Text outputs]
E --> G[JSON outputs]
E --> H[Coverage report]
- Normalize: whitespace cleanup, bullet normalization, junk trimming.
- Protect: deterministic placeholder replacement.
- Extract: heuristic detection (symptoms, duration, meds, vitals, tests, plan, etc.).
- Render: outputs are generated from typed structures only.
flowchart TB
CLI[CLI: notenest] --> Pipeline[Core pipeline]
Pipeline --> Protect[Protect module]
Pipeline --> Extract[Extract/Summary module]
Pipeline --> Render[Render module]
Render --> TextOut[Text output]
Render --> JsonOut[JSON output]
Web[docs/ demo JS] --> Mirror[Client-side mirror of pipeline]
Mirror --> DemoOut[Demo outputs]
- Patient View (complaint-first, plain language, actionable).
- Clinician View (SOAP or 5C’s toggle).
- Protected placeholders (Protected/Masked/Hidden/Removed/ styles).
- Coverage report (fields found/missing + protected counts).
- Cloak Mode: scan/protect/report for safer sharing.
- NoteNest replaces sensitive fields with placeholders like
[EMAIL_PROTECTED]. - Runs locally only. No network calls.
- Designed for safe sharing and auditability.
- SOAP: S (Subjective), O (Objective), A (Assessment), P (Plan).
- 5C’s: Chief complaint, Course, Context, Concerns, Coping.
- Toggle with
--clinician soapor--clinician 5cs.
Commands are available under notenest cloak:
scan— PHI scan summary by type (counts only).protect— generate protected outputs + JSON/CSV/MD reports.config init/config validate— YAML config scaffold and checks.report— export run summary.git-hook install— optional hook that runs scan before commit.
Examples:
cargo run --quiet -- cloak scan ./sample_notes
cargo run --quiet -- cloak protect ./sample_notes -o ./out_cloak
cargo run --quiet -- cloak config init -o notenest-cloak.yml
cargo run --quiet -- cloak report ./out_cloak --format csv
cargo run --quiet -- cloak git-hook install --mode pre-commit --paths "*.txt"notenest convert <input|-> \
[--clinician soap|5cs] \
[--format text|json|both] \
[--out <dir>] \
[--placeholder-style protected|masked|hidden|removed|angle] \
[--patient] [--redact] [--all] [--offline]notenest batch <input_dir> [--glob "*.txt"] [--out <dir>] [--all] [--offline]notenest self-checknotenest cloak scan <path> [--config <yaml>] [--csv <file> --col <name>...]
notenest cloak protect <path> -o <out_dir> [--config <yaml>] [--mapping <file>] [--mapping-pass <env:...>] [--format text|json|both] [--emit-structured]
notenest cloak config init [-o <path>]
notenest cloak config validate [--path <yaml>]
notenest cloak report <run_dir_or_run_id> [--out <dir>] [--format csv|json|md]
notenest cloak git-hook install [--mode pre-commit] [--config <yaml>] [--paths <glob>...]Patient View headings (always in order):
- What you came in with
- What it could mean
- What we found in your note
- What to do next (checklist)
- Questions to ask your clinician
- When to seek urgent care
- Disclaimer
Clinician View:
- SOAP (S/O/A/P) or 5C’s (Chief complaint / Course / Context / Concerns / Coping)
Coverage summary:
- fields_found, missing, protected_counts
ER note (messy): JOHN O?? 43M chest tightness x2d, worse stairs + SOB. wife Mary 0176-12345678 called.
email john.osmith@gmail.com MRN 883920 DOB 12/03/1982 addr 12 Hauptstrasse 80331 Muenchen.
pmh HTN/DM2; meds metformin 500 bid + ramipril 5mg od; nkda.
vitals BP168/96 HR108 T37.2. ecg ?st-depr. trop 0.08 ng/mL.
plan: send ED; repeat trop 3h; ASA; consider heparin; f/u cardio.
Expected output structure (headings only):
- Placeholder style
- Protected note
- Patient View
- Clinician View
- Coverage summary
From Releases (latest): https://github.com/Princey9/NoteNest/releases/latest
Linux aarch64 (required):
curl -L -o notenest-aarch64.tar.gz \
https://github.com/Princey9/NoteNest/releases/latest/download/aarch64-unknown-linux-musl.tar.gz
tar -xzf notenest-aarch64.tar.gz
./notenest --helpLinux x86_64 (bonus):
curl -L -o notenest-x86_64.tar.gz \
https://github.com/Princey9/NoteNest/releases/latest/download/x86_64-unknown-linux-musl.tar.gz
tar -xzf notenest-x86_64.tar.gz
./notenest --help- Visit the live demo: https://princey9.github.io/NoteNest/demo/
- Choose a mode: Summarize or Cloak.
- Select placeholder style and clinician format.
- Paste a messy note or choose a sample.
- Use Copy/Download buttons for outputs.
Rust core:
src/lib.rs— public API exportssrc/main.rs— thin CLI entrysrc/cli.rs— clap definitionssrc/notenest/— pipeline (protect, extract, render, types)src/cloak/— ClinCloak scan/protect/report enginesrc/util/— FS helpers
Static site:
docs/index.htmldocs/pricing/index.htmldocs/demo/index.htmldocs/assets/app.jsdocs/assets/styles.css
Fixtures:
fixtures/templates/*.schema.jsonfixtures/examples/*.example.json
Acceptance tests (run from repo root):
cargo fmt --check
cargo clippy -- -D warnings
cargo test
scripts/check_pages.shCLI sanity example:
echo "Pt here w chest pain x2d tel +49..." | cargo run --quiet -- convert - --clinician soap --style protected --format textSettings → Pages → Source: main branch, /docs folder.
Tagging a version triggers the GitHub Actions workflow at .github/workflows/main.yml to build and publish binaries. Download links on the site point to Releases/latest.
Tag example:
git tag v0.2.0
git push origin v0.2.0- GitHub repo: https://github.com/Princey9/NoteNest
- GitHub Pages: https://princey9.github.io/NoteNest/
- Files:
Cargo.toml,src/main.rs,src/lib.rs(optional) - Linux aarch64 binary: from https://github.com/Princey9/NoteNest/releases/latest
- Optional extra binaries (x86_64)
- Workflow file:
.github/workflows/main.yml
- Cargo.toml not found: run commands from repo root.
- Port already in use: pick another port, e.g.
python3 -m http.server 8002 --directory docs. - zsh comments: remove trailing
# ...if pasting into shell. - GitHub Pages caching: hard refresh or wait a few minutes after pushing.
NoteNest — offline clinical note prep toolkit with protected placeholders, patient view, clinician SOAP/5C’s, and Cloak Mode scans. Live demo: https://princey9.github.io/NoteNest/