Skip to main content

Convert documents to Markdown (MarkItDown), package with Repomix, and serve a Streamlit UI for copyable LLM context.

Project description

Context Packager

Convert documents to Markdown (MarkItDown), package into a single LLM-ready context (Repomix), and use a sleek Streamlit UI to copy/download.

1. Quick start (uv)

macOS/Linux (full extras)

sh -c 'command -v uv >/dev/null 2>&1 || (curl -LsSf https://astral.sh/uv/install.sh | sh); PATH="$HOME/.local/bin:$PATH" uvx --python 3.12 --refresh --from "git+https://github.com/ruizmr/resume-context-builder.git@main?extra=full" resume-ui'

Windows (full extras)

powershell -NoProfile -ExecutionPolicy Bypass -Command "if (-not (Get-Command uv -EA SilentlyContinue)) { iwr https://astral.sh/uv/install.ps1 -UseBasicParsing | iex }; $env:Path = \"$env:USERPROFILE\.local\bin;$env:Path\"; uvx --python 3.12 --refresh --from 'git+https://github.com/ruizmr/resume-context-builder.git@main?extra=full' resume-ui"

Use the sidebar to upload files or point to a folder. Download/copy packaged chunks. Check "Include in knowledge base" to persist chunks and use the built-in search.

For smoother live reload and file watching, the full extras include Watchdog.

KB persistence defaults to a local SQLite file at ~/.context-packager-state/context.db. To use a shared DB, set CONTEXT_DB_URL before launching, for example on Linux/macOS:

export CONTEXT_DB_URL="sqlite:////absolute/path/to/context.db"
resume-ui

2. Install a shortcut (one-time)

Creates a persistent resume-ui command on your PATH.

macOS/Linux (full extras)

sh -c 'command -v uv >/dev/null 2>&1 || (curl -LsSf https://astral.sh/uv/install.sh | sh); PATH="$HOME/.local/bin:$PATH" uv tool install --python 3.12 --force "git+https://github.com/ruizmr/resume-context-builder.git?extra=full" && echo "Installed. Next time just run: resume-ui"'

Windows (full extras)

powershell -NoProfile -ExecutionPolicy Bypass -Command "if (-not (Get-Command uv -EA SilentlyContinue)) { iwr https://astral.sh/uv/install.ps1 -UseBasicParsing | iex }; $env:Path = \"$env:USERPROFILE\.local\bin;$env:Path\"; uv tool install --python 3.12 --force \"git+https://github.com/ruizmr/resume-context-builder.git?extra=full\"; Write-Host 'Installed. Next time just run: resume-ui'"

Next runs after install:

resume-ui

Available commands after install:

# Launch UI (Home + Manage knowledge)
resume-ui

# Convert to Markdown then upsert to KB (cron-friendly)
context-ingest "/path/to/input_dir" "/path/to/markdown_out_dir"

# Upsert existing Markdown into KB
context-upsert "/path/to/markdown_out_dir"

# Scheduler (persistent)
# Add a job that ingests every hour
context-scheduler add hourly_ingest "/path/to/input_dir" --md-out "/path/to/markdown_out_dir" --interval 60
# Or cron syntax
context-scheduler add nightly_ingest "/path/to/input_dir" --md-out "/path/to/markdown_out_dir" --cron "0 2 * * *"
# List jobs
context-scheduler list
# Remove job
context-scheduler remove hourly_ingest
# Start scheduler (blocking)
context-scheduler start

One-shot (no install):

# UI
sh -c 'command -v uv >/dev/null 2>&1 || (curl -LsSf https://astral.sh/uv/install.sh | sh); PATH="$HOME/.local/bin:$PATH" uvx --python 3.12 --refresh --from "git+https://github.com/ruizmr/resume-context-builder.git@main?extra=full" resume-ui'

# Ingest (convert + upsert)
sh -c 'command -v uv >/dev/null 2>&1 || (curl -LsSf https://astral.sh/uv/install.sh | sh); PATH="$HOME/.local/bin:$PATH" uvx --python 3.12 --refresh --from "git+https://github.com/ruizmr/resume-context-builder.git@main?extra=full" context-ingest "/path/to/input_dir" "/path/to/markdown_out_dir"'

Database configuration:

# SQLite (default)
# ~/.context-packager-state/context.db

# Postgres
export CONTEXT_DB_URL='postgresql+psycopg://user:pass@host:5432/dbname'
resume-ui

3. Troubleshooting PATH

  • macOS/Linux: ensure ~/.local/bin is on PATH (e.g., add export PATH="$HOME/.local/bin:$PATH" to your shell rc).
  • Windows: ensure %USERPROFILE%\.local\bin is on PATH, then open a new terminal.

If resume-ui is not found right after install

  • Quick fix (macOS/Linux):
source "$HOME/.local/bin/env" || { echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc; }
  • Run via absolute path once:
"$HOME/.local/bin/resume-ui"
  • Windows PowerShell:
& "$env:USERPROFILE\.local\bin\resume-ui.exe"

4. Reset/nuke cached install (uv)

If you’re not seeing the latest UI changes:

# Remove cached venvs and archives
uv cache prune

# Remove previously installed tool shim (optional)
uv tool uninstall resume-ui || true

# Reinstall and pin to main
sh -c 'command -v uv >/dev/null 2>&1 || (curl -LsSf https://astral.sh/uv/install.sh | sh); PATH="$HOME/.local/bin:$PATH" uvx --python 3.12 --refresh --from "git+https://github.com/ruizmr/resume-context-builder.git@main?extra=full" resume-ui'

5. Scheduler visibility and continuous sync

  • Jobs added via UI or context-scheduler add are mirrored in a lightweight jobs table for display.
  • Every execution (scheduled or one-off) creates a job_runs record with:
    • status: queued, running, success, failed, cancelled
    • progress: 0-100, processed/total files, chunks upserted
    • recent log tail and last message
  • In the UI Manage knowledge tab:
    • Add job with Daily/Weekly/Monthly/Interval/Cron.
    • Run now for ad-hoc runs.
    • View recent runs with progress and cancel running jobs.

Environment notes:

  • Set CONTEXT_DB_URL to persist job/run history in a shared DB.
  • APScheduler jobs are still stored in apscheduler_jobs table via SQLAlchemyJobStore for durability.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

context_packager-0.2.0.tar.gz (41.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

context_packager-0.2.0-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file context_packager-0.2.0.tar.gz.

File metadata

  • Download URL: context_packager-0.2.0.tar.gz
  • Upload date:
  • Size: 41.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for context_packager-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b68c2214bef12c7e2c796f8cae46570ec94cbf626bc25250b768eed7758d6b4c
MD5 ccf4155b9ff2c615dedc342fc51c99ea
BLAKE2b-256 2a6e72939ab0913b3bc070a8a6bac6b72d8f5d69256d9d4c6de8f64938ca40f2

See more details on using hashes here.

File details

Details for the file context_packager-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for context_packager-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3335352ef917e7a9873c92baf640eb6fb3a81c93b0be8619a1d7b78d8455bbd8
MD5 8e44c2ce81bb6fc842d4e83aac8243b4
BLAKE2b-256 8bc01c9f214a6d19e4ac9e875028dd2b432a211bf5224e43c83f3cd0fc5ad59e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page