Offline-first, branch-aware hackathon presentation generator
Project description
HackLuminary v2.3
Offline-first, branch-aware presentation system with a NotebookLM-style local Studio and production deck renderer.
Highlights
- Hybrid workflow:
studiofor drafting +generatefor exports - Source-grounded citations with snippet/line provenance
- Evidence explorer with search/filter/sort and per-slide evidence pinning
- Self-contained offline HTML deck output
- Presenter mode with notes, timer, progress timeline, jump controls
- Slide outline + reorder controls with keyboard shortcuts
- One-click Studio quality fixes (
Fix This,Fix All) for common quality errors - Bundle artifacts (
notes.md,talk-track.md) for presenter prep - Conservative offline visual pipeline (auto image selection + evidence-linked captions)
- JSON schema
2.2withmedia_catalogand per-slidevisuals - Strict local runtime by default (no CDN, no cloud calls in generate/validate/studio). Remote image fetching (Wikimedia Commons) is opt-in via
--remote-imagesorimages.remote.enabled = true.
Commands
hackluminary generate [PROJECT_DIR]hackluminary validate [PROJECT_DIR]hackluminary studio [PROJECT_DIR]hackluminary doctor [PROJECT_DIR]hackluminary init [PROJECT_DIR]hackluminary presetshackluminary sample [TARGET_DIR]hackluminary models listhackluminary models install <alias>hackluminary images scan [PROJECT_DIR]hackluminary images report [PROJECT_DIR] --jsonhackluminary images benchmark CORPUS_DIRhackluminary package devpost [PROJECT_DIR] --output PATHhackluminary telemetry enable [PROJECT_DIR] --endpoint URLhackluminary telemetry status [PROJECT_DIR]hackluminary telemetry flush [PROJECT_DIR]hackluminary telemetry disable [PROJECT_DIR]
Installation
Recommended
pipx install .
Development
python -m pip install -e '.[dev]'
Optional local AI dependencies
python -m pip install -e '.[ml]'
Release Build Dependencies
python -m pip install -e '.[release]'
Quick Start
Launch Studio
hackluminary studio . --base-branch main
Generate deck outputs
hackluminary generate . --preset demo-day --images auto --output deck --bundle
Validate quality gates only
hackluminary validate . --mode deterministic
generate options
--project-dir PATH--output PATH--format html|markdown|json|both--preset quick|demo-day|investor|hackathon-judges|hackathon-finals--slides title,problem,solution,demo,impact,tech,future,delta,closing--max-slides N--docs PATH(repeatable)--theme default|dark|minimal|colorful|auto|custom--mode deterministic|ai|hybrid--images off|auto|strict--image-dirs PATH(repeatable, project-relative)--max-images-per-slide 0..2--visual-style evidence|screenshot|mixed--remote-images(opt in to Wikimedia image fetching; off by default for offline-first runs)--base-branch NAME--no-branch-context--strict-quality/--no-strict-quality--open--copy-output-dir PATH--logo PATH--bundle--debug
Setup And Onboarding
hackluminary doctor .
hackluminary init .
hackluminary presets
hackluminary sample
doctorverifies local setup, project health, git context, model readiness, and Studio assets.initwriteshackluminary.tomlusing an interactive wizard.samplecreates a runnable demo project for first-time users.
Binary Distribution
On a tagged release (v*), the workflow builds and publishes:
- standalone macOS binaries (
macos-x64,macos-arm64) - standalone Windows binary (
windows-x64) - standalone Linux binary (
linux-x64) - wheel + source distribution to PyPI via Trusted Publishing (OIDC), gated by
twine check - the same wheel + sdist attached to the GitHub Release
- generated Homebrew formula + Winget manifests
- checksum verification before publish
- signing gate enforcement for macOS/Windows artifacts (override via
ALLOW_UNSIGNED_RELEASE=1secret)
PyPI publishing requires a configured Trusted Publisher
for this repository and a GitHub pypi environment; until that is configured on PyPI, the
publish-pypi job will fail closed rather than silently skipping.
GitHub release automation lives in:
.github/workflows/release.yml
Direct install scripts
macOS/Linux:
bash install/install.sh
Windows PowerShell:
powershell -ExecutionPolicy Bypass -File install/install.ps1
Optional environment overrides for installers:
HACKLUMINARY_REPO(defaultch1kim0n1/HackLuminary)HACKLUMINARY_VERSION(defaultlatest)HACKLUMINARY_INSTALL_DIR(custom install location)
studio options
--project-dir PATH--base-branch NAME--theme default|dark|minimal|colorful|auto--port INT--read-only--debug
Configuration (hackluminary.toml)
Precedence:
- CLI flags
- Project config
- User config (
~/.config/hackluminary/config.toml) - Defaults
Sections:
[general]:mode,format,theme,max_slides,strict_quality,logo[git]:base_branch,include_branch_context[ai]:enabled,backend,model_alias,max_tokens,top_p,temperature[output]:copy_output_dir,open_after_generate[images]:enabled,mode,image_dirs,max_images_per_slide,min_confidence,visual_style,max_image_bytes,allowed_extensions[images.remote]:enabled(defaultfalse— offline-first; settrueor pass--remote-imagesto opt in),provider(wikimedia),timeout_sec,max_image_bytes,cache_dir[telemetry]:enabled,anonymous,endpoint(opt-in only; local event file by default)[studio]:enabled,default_view,autosave_interval_sec,port,read_only[ui]:density,motion,code_font_scale,presenter_timer_default_min[features]:studio_enabled,production_theme_enabled,presenter_pro_enabled[privacy]:telemetry=false
Custom Branding
You can override the built-in themes to match your project's brand identity.
-
Custom Colors: To use custom colors, set
theme = "custom"in the[general]section of yourhackluminary.tomlfile. Then, define your color palette in the[theme.custom]section. You can override any of the following default theme keys:bgpanelpanel_alttextmutedaccentaccent2warningdangerokoverlay
-
Logo: To add a logo to your title slide, specify the path to your logo file in the
logofield of the[general]section inhackluminary.toml. You can also use the--logocommand-line option.
JSON schema 2.2
Top-level fields:
schema_versionmetadatagit_contextslidesevidencemedia_catalogquality_report
Slide additions:
claims[]:{ text, evidence_refs, confidence }notesvisuals[]:{ id, type, source_path, alt, caption, evidence_refs, confidence, width, height, sha256 }
Evidence additions:
source_pathsource_kindstart_lineend_linesnippetsnippet_hash
Studio Session
Studio persists workspace state in:
.hackluminary/studio/session.json
Includes slide ordering, draft overrides, note blocks, pinned evidence, presenter state, and last validation.
Automatic session snapshots are written to .hackluminary/studio/snapshots/ for crash recovery.
Testing
python -m pytest
Browser Support
Studio and exported decks target current:
- Chrome
- Edge
- Safari
- Firefox
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hackluminary-2.3.0.tar.gz.
File metadata
- Download URL: hackluminary-2.3.0.tar.gz
- Upload date:
- Size: 112.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d36626ffdecc70595897d655a7f4280d7d616c2cf7f846d9edf6da4f19aa7e92
|
|
| MD5 |
3b99cc49c6bc988cc878d15d0445d78b
|
|
| BLAKE2b-256 |
347ca8d493e40d22cbb9cfd21547c3b28756e7bed47c59c8ab82a057a91952b1
|
File details
Details for the file hackluminary-2.3.0-py3-none-any.whl.
File metadata
- Download URL: hackluminary-2.3.0-py3-none-any.whl
- Upload date:
- Size: 106.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfdfb504b3a59e18641abe512e439b03ac969c9f26e6e614e4d6e9e79060fa9d
|
|
| MD5 |
f3dad433bf04bd5a9846f15bda929183
|
|
| BLAKE2b-256 |
21c4427fdd423b39bca8e3389502fb5c07daed6d3f891509a60e71c6f32660f8
|