Skip to main content

If you are not writing it, you should at least read it.

Project description

vibemark

Track how much code you have actually read, by file and by LOC. vibemark scans your repository for source files, stores progress in a local state file, and provides simple commands to update or visualize your reading status.

Installation

The main way to use vibemark is via PyPI under the vibemark package:

  • pipx install vibemark
  • pip install vibemark
  • uv tool install vibemark (recommended)

Quickstart

  • Scan the repo and initialize progress:
    • vibemark scan
  • Show overall progress and largest remaining files:
    • vibemark stats
    • vibemark stats --top 30 / vibemark stats --all
    • vibemark stats --no-table (totals only)
    • vibemark stats --format csv|tsv (machine-readable output)
  • Mark a file as fully read:
    • vibemark done src/vibemark/cli.py
  • Set partial progress for a file:
    • vibemark set src/vibemark/cli.py 120
  • Exclude a folder for a run (glob):
    • vibemark scan --exclude "src/vendor/*"
  • Persistently exclude a folder (saved in .vibemark.json):
    • vibemark exclude add "src/vendor/*"

More commands

  • vibemark update re-scan and optionally reset changed files
  • vibemark update --reset-changed yes|no skip per-file prompts (default: ask)
  • vibemark reset path/to/file.py mark a file unread
  • vibemark export-md export a markdown checklist
  • vibemark exclude remove|list|clear
  • vibemark ext add|remove|list|clear
  • vibemark --version

How it works

vibemark looks for files matching the configured extensions (default: py) under the repo root, applies default exclusions (e.g., .git/, .venv/, build/), and writes state to .vibemark.json in the root directory. You can add saved exclude globs like src/vendor/* or pass --exclude to a single scan. You can also include other extensions via --ext or the vibemark ext subcommands. Use vibemark update to rescan and optionally reset progress for changed files. For finer control, scan/update accept --loc-mode (physical|nonempty) and --include-empty.

Development

  • Run the CLI:
    • uv run vibemark --help
  • Run tests:
    • uv run pytest

Requirements

  • Python 3.13+
  • uv for running and building from source

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

vibemark-1.4.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

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

vibemark-1.4.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file vibemark-1.4.0.tar.gz.

File metadata

  • Download URL: vibemark-1.4.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vibemark-1.4.0.tar.gz
Algorithm Hash digest
SHA256 fb53f273821530a73b4e03b80535c3ad9b4f9b6d9f0a882358dd4c55455cb46c
MD5 d9e79f7ab731fe8ebc7b2c934a20359f
BLAKE2b-256 14ae6a194a90ac8fc154628b495d506c8a5211dfb9b66b0b671330102a63ab12

See more details on using hashes here.

File details

Details for the file vibemark-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: vibemark-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vibemark-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8d9553c8179b4c85a5c928458a119ea98f178fa9851325aa98e291ebc754dffc
MD5 95e9b4016a8ec164b6ef38f2082947d4
BLAKE2b-256 7ceb0a4f81ac362b86ca37006aa37704214fc5ec77803923303a0800c1911332

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