Skip to content

Repository files navigation

Diskern

CI License: MIT

Understand your disk before you clean it.

Diskern scans your computer, understands what every file is for, and safely frees up space — explaining exactly what's safe to remove and what would break if you did.

diskern scan grouping findings by verdict, each with the rule that matched and the evidence behind it

Findings are grouped by verdict, and every row carries the rule that matched it. 0 B on the risky rows is deliberate: bytes on files nothing will offer to move don't count toward the reclaimable total.

Principles (non-negotiable)

  1. Read-only by default. Scanning never modifies anything.
  2. Never hard-deletes. Actions move files to a reviewable quarantine; purging quarantine is a separate, explicit user step.
  3. Rules decide, AI narrates. Safety verdicts come from a deterministic, auditable rules database and local evidence — never from a model or a network call. The optional AI layer only explains, in plain language, what the engine already found.
  4. Evidence over confidence. Every finding shows why ("matched rule chrome-cache", "referenced by 3 projects"), not just a percentage.

Layout

crates/diskern-core   engine: scanner, dedup (BLAKE3), rules, risk, graph, quarantine
crates/diskern-cli    `diskern scan <dir>` — the engine from the terminal
app/                  Tauri v2 desktop app (React frontend)
site/                 landing page (GitHub Pages)
docs/                 architecture and release docs

Project docs live in docs/running locally, architecture, the rules database, an FAQ, and release instructions. Each section has its own README: core · cli · app · site

Development

# Engine + CLI — no GUI dependencies needed
cargo test -p diskern-core -p diskern-cli
cargo run -p diskern-cli -- scan ~/Downloads

# Desktop app
cd app && npm install && npm run tauri dev

docs/DEVELOPMENT.md has the full setup: what to install per platform, how to run what CI runs, and what the build failures mean.

Releasing

See docs/RELEASING.md. Short version: set the two updater-key secrets once, then git tag vX.Y.Z && git push --tags.

Contributing

Contributions are welcome — see CONTRIBUTING.md for setup and guidelines, and docs/ARCHITECTURE.md for how the pieces fit together.

Looking for somewhere to start? Issues are labelled by difficulty: level: beginner is scoped to a single file with the reasoning worked out, and teaching Diskern about a cache on your platform is a rules change that needs no Rust at all.

License

MIT. Unless you explicitly state otherwise, any contribution you intentionally submit for inclusion in this work shall be licensed as MIT, without any additional terms or conditions.

About

A disk cleaner that understands your computer instead of guessing.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages