Thanks for helping. The project is young, so small, focused contributions are the most useful.
sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 # Debian/Ubuntu
make test # headless core tests, no GTK or network needed
make run # run from the source tree
make start # dev loop on a demo project, restarts on every saveFlatpak users get the GTK and libadwaita of the GNOME runtime, not yours. Before submitting UI work, run the same dev loop inside that runtime (the version is read from the Flatpak manifest):
flatpak install --user flathub org.gnome.Platform//51 # once
make start-flatpakNew to developing inside the GNOME SDK? Justin's Building GNOME Apps with Rust, Part 1: Getting Started walks through the setup; the toolchain differs, the runtime workflow is the same.
- Core stays headless.
gknowledge/core/must not import GTK. UI code lives ingknowledge/ui/. - Offline first. Every feature must work with the offline provider; remote providers are optional.
- User data is sacred. Never rewrite user-authored notes or frontmatter; generated content is marked and reviewable.
- No silent network use. Anything leaving the machine needs explicit user consent.
- Follow the GNOME HIG and keep Flatpak sandboxing in mind (use portals, not broad filesystem access).
- Tests for core changes, in
tests/. - AI-assisted contributions are welcome, but say so in the PR description and make sure you understand the code you submit. Flathub and GNOME Circle have policies on AI-generated code.
- No CLA. Contributions are under the project's MIT license.
See TODO.md and issues labelled good first issue. Larger direction is in ROADMAP.md.
Be respectful. Harassment and personal attacks are not tolerated; maintainers may remove comments or contributors that violate this. We follow the spirit of the Contributor Covenant 2.1.