Skip to main content

Projectum

Everything that piles up around a folder of work — projects, playlists, todos, notes — in one window, connected.

CI Release PyPI License: MIT Sponsor

No servers, no account, no telemetry. Your data is a JSON file sitting next to your work.

projectum.wleeaf.dev

Projectum — projects view, dark theme

How it works

Point Projectum at a folder. Every subfolder becomes a project you can mark done or tested, tag, pin, and annotate with live-rendered Markdown. The same window holds your todos, a notebook of notes, and your YouTube study playlists (fetched with yt-dlp, watched-state per video). All of it lives in one .projectum.json inside the folder — it travels with your work and diffs cleanly in Git.

Then there are relations: link anything to anything — a project to a playlist, a todo to a span of days, a note to a project. Date relations come together on the Calendar, a month view where scheduled work draws as bars across the weeks.

Calendar — Midnight theme
Calendar — anything linked to a date shows on that day; spans draw as bars. (Midnight)
Playlists — Light theme
Playlists — paste a URL, tick videos off, keep notes per video. (Light)
Notes — Paper theme
Notes — live Markdown; syntax markers hide until your cursor enters the phrase. (Paper)
Todo — Gruvbox theme
Todo — quick folder-scoped tasks, schedulable on the calendar. (Gruvbox)

Install

Use a virtual environment with 64-bit CPython 3.10 or newer. The compatible Python version also depends on your OS and the available PySide6 wheels; see installation requirements and troubleshooting.

Linux / macOS:

python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install projectum
.venv/bin/projectum

Windows (PowerShell or Command Prompt):

py -m venv .venv
.venv\Scripts\python -m pip install --upgrade pip
.venv\Scripts\python -m pip install projectum
.venv\Scripts\projectum

Or a package manager:

brew install --cask wleeaf/tap/projectum                                   # macOS
scoop bucket add wleeaf https://github.com/wleeaf/scoop-bucket && scoop install projectum   # Windows
yay -S projectum                                                           # Arch (AUR)

Or grab a standalone build from the latest release:

Platform File Notes
Linux Projectum-x86_64.AppImage chmod +x, run — bundles Python, Qt, yt-dlp
Windows Projectum-windows-x64.exe unsigned: SmartScreen → More info → Run anyway
macOS Projectum-macos.dmg unsigned: right-click → Open

Or from source: git clone, pip install -r requirements.txt, python main.py.

Projectum keeps itself up to date: when a new release ships it installs in place and offers a one-click restart (off by a toggle in Settings).

Highlights

  • Filesystem-first projects — size, last-modified, git branch and dirty state per project, read off the UI thread. Tags with sidebar filters, pin, drag to reorder, expand a folder of repos into nested projects.
  • Live Markdown everywhere — headings, bold, code, lists, links render as you type; markers stay hidden until the cursor enters the phrase. The document underneath is always plain Markdown.
  • Relations — undirected, untyped links between any two things, including dates, date spans, and bare durations ("2 weeks"). Backlinks show up on both sides; the detail panels show clickable chips.
  • Command palette (Ctrl+K) across projects, playlists, videos, tags, and notes.
  • 19 themes, dark and light — every one CI-checked against WCAG contrast floors, switching crossfades. Any font, any size.
  • Resilient — atomic saves; metadata for a renamed or deleted folder is parked and restored when it comes back.
Keyboard shortcuts
Shortcut Action
Ctrl+K Command palette
Ctrl+1 … Ctrl+5 Switch tab (Projects / Playlists / Todo / Calendar / Notes)
Ctrl+O Open a folder
Ctrl+F Focus the sidebar search
Ctrl+D Toggle the selected project's done state
Ctrl+T Jump to Todo and start a new task
Ctrl+N Focus the project notes editor
Ctrl+R Refresh the current folder
Esc Close a popup

Where your data lives

  • Per-folder: <folder>/.projectum.json — projects, playlists, tags, notes, ordering. Commit it next to your work or .gitignore it. Writes are atomic.
  • Global: ~/.config/projectum/ — window state, theme, and links.json, the relation graph. Relations can cross folders, so they live here rather than in any one folder's file — the one part of your data that doesn't travel with a folder.

Development

Dependencies are PySide6-Essentials, yt-dlp, and the standard library. CI lints, byte-compiles, runs the test suite, and boots the window headless on Linux/macOS/Windows across Python 3.10–3.14. It also installs the wheel and source distribution in a clean environment and boots the installed entry point outside the checkout before publishing to PyPI.

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt pytest
QT_QPA_PLATFORM=offscreen pytest -q     # tests
python main.py                          # run

Packaging recipes (AppImage, Flatpak, AUR) live in packaging/, the release process in RELEASING.md.

Support

Projectum is free and MIT-licensed, and stays that way. If it's useful, you can sponsor it on GitHub — completely optional.

License

MIT — © 2026 wleeaf.

Metadata

Release files for projectum 2.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for projectum 2.4.1
File Size Uploaded Provenance
projectum-2.4.1.tar.gz 138.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for projectum 2.4.1
File Interpreter ABI Platform
projectum-2.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 256.0 kB

Release files / projectum-2.4.1.tar.gz

Download URL projectum-2.4.1.tar.gz
Size 138.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3171100b3c240e074612037c66092442cf7faf827c5ad27df6eabcceecb2e286
BLAKE2b-256 checksum
How to use checksums
d3a41f9efcf45a5e6cd104296e3500dbdaedc56283597e18e67e31d6037bed6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release files / projectum-2.4.1-py3-none-any.whl

Download URL projectum-2.4.1-py3-none-any.whl
Size 117.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
39964b440938cae2b6eb26147317fe61e62cb443916e3e86c27ea10be564c38d
BLAKE2b-256 checksum
How to use checksums
808f2dc40d365f1864f1f44d0b8a6362a6f1cfe83c0f8a6ec9320729bd207207
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Security for projectum 2.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for projectum-2.4.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page