Skip to content

Repository files navigation

Disciple

A calm, local-first personal organizer for Linux.

Disciple keeps your notes, habits, projects, calendar, and conversations in one quiet native application. Everything lives in a local SQLite database on your own machine — no account, no server, no sync, no tracking. An optional AI assistant can chat and carry out clear organizer requests, but the whole app works without it.

Built with GTK4 and Libadwaita.

Today, light theme

What it does

  • Today — a focused look at the habits due today, today's events, and your active projects.
  • Calendar — a real month grid with a selected-day agenda and simple local events.
  • Habits — daily or specific-weekday routines with completion history and a non-negotiable emphasis.
  • Projects — lightweight projects that link to your notes.
  • Notes — fast full-text search, tags, and project links.
  • Assistant Context — a visible, editable list of the personal facts the assistant is allowed to use. Nothing becomes "memory" behind your back.
  • Chat — talk normally, or ask Disciple to create a note, add a habit, schedule an event, and more. Reversible changes offer one-click Undo; destructive ones ask first.
Chat Calendar
Chat Calendar

Local-first and private

  • All data is stored in a plain SQLite database in your user data directory. You can copy, back up, or delete it yourself.
  • No account, no cloud, no telemetry, no analytics.
  • The optional AI provider is the only thing that ever touches the network, and only when you configure one and send a message.
  • Your API key is stored only in the Linux keyring (Secret Service), never in a file, the database, chat history, logs, or backups.

Install

Packaged builds and their uninstall steps are documented in INSTALL.md. In short:

Flatpak (any distribution):

flatpak install --user disciple-1.1.6.flatpak
flatpak run io.github.disciple.Disciple

Fedora RPM:

sudo dnf install disciple-1.1.6-1.fc44.noarch.rpm

Debian / Ubuntu:

sudo apt install ./disciple_1.1.6-1_all.deb

Then launch Disciple from your application menu — no terminal needed.

Run without AI

Notes, habits, projects, the calendar, Today, backups, and archives all work with no API key and no network. AI simply adds conversation and natural-language organizer requests on top.

Enable AI

AI is optional. To turn it on:

  1. Open Settings → AI Provider.
  2. Keep Groq selected, create a free API key at console.groq.com/keys, and paste it into the API key field.
  3. Click Save, then optionally Test Connection. Saving alone never sends a paid request.
  4. Use Refresh Models to list available models, or type one in.

Your key is saved in the Linux keyring. Disciple only ever shows a masked placeholder afterward.

Custom OpenAI-compatible endpoints

Choose Custom OpenAI-compatible to point at any OpenAI-style endpoint, including a local llama.cpp server:

  • Base URL, for example http://127.0.0.1:8080/v1
  • Leave the API key empty for a local endpoint
  • Enter or refresh the model name

Disciple never downloads, launches, or manages models.

Environment overrides

For scripted launches, environment variables take precedence over saved settings:

export DISCIPLE_LLM_BASE_URL="http://127.0.0.1:8080/v1"
export DISCIPLE_LLM_MODEL="your-model-id"
export DISCIPLE_LLM_API_KEY="optional-key"

The assistant

Disciple's assistant is meant to feel like a calm, helpful person: short, direct answers rather than essays. You can adjust its tone and behavior in Settings → Assistant instructions, with factory defaults you can restore at any time. Core safety rules (never faking a change, never leaking your key, always confirming permanent deletion) are fixed and cannot be edited away.

Requests are kept small and cheap: bounded conversation history, at most a few opted-in context notes, and only the organizer actions relevant to what you asked. There are no background jobs and nothing keeps running after you close the window.

Where your data lives

Install Database
RPM / DEB / source ~/.local/share/disciple/disciple.db
Flatpak ~/.var/app/io.github.disciple.Disciple/data/disciple/disciple.db

Uninstalling a package never deletes this directory. Remove it yourself to erase your data.

Backup and restore

Settings → Backup and restore exports everything to one readable JSON file. Restore validates the file first and writes a timestamped safety copy of your current database before replacing anything. Backups never contain your API key. (Your edited assistant instructions are included in backups, as ordinary settings.)

Development

# Fedora
sudo dnf install python3 python3-gobject gtk4 libadwaita \
    python3-dateutil python3-keyring python3-pytest

git clone <this-repo> disciple && cd disciple
PYTHONPATH=src python3 -m disciple
python3 -m pytest

Tests use temporary and in-memory databases and never touch your real Disciple data.

Build packages

See PACKAGING.md for the wheel, Flatpak, RPM, and Debian build steps and the release checklist.

Known limitations

  • Calendar is internal only — no CalDAV or external synchronization.
  • Recurring calendar events are reserved in the schema but not exposed.
  • Backups are manual; there is no automatic or cloud backup.
  • Fullscreen fine-tuning depends on your window manager.

License

GPL-3.0-or-later.

See PRODUCT.md for product decisions, ARCHITECTURE.md for the implementation map, CHANGELOG.md for release history, and SECURITY.md for the security model.

About

A calm, local-first personal organizer for Linux — notes, habits, projects, calendar, and an optional AI assistant. Built with GTK4/Libadwaita.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages