Skip to main content

open-harness

The full open-harness suite in a single pip install. Installs all five code-quality tools at once: linelens, dupelens, secretlens, testlens, scopelens.

Part of the open-harness monorepo. Español abajo.

Same suite, other ecosystems: the binaries shipped here are also published on npm (@open_harness/open-harness) for Node/TypeScript projects and on Packagist (open-harness/open-harness) for PHP/Composer projects. Pick the registry that matches your stack — the underlying tools and config formats are identical.

Install

pip install open-harness-suite

pip resolves the dependency tree and downloads the right native wheel per platform for each tool (Linux x86_64, macOS arm64, macOS x86_64, Windows x86_64).

What you get

Tool Purpose
linelens File length linter — flags files over a configurable line limit.
dupelens Code duplication detector (Rabin-Karp, language-agnostic).
secretlens Secret and credential detector (AWS keys, GitHub tokens, JWT, PEM, …).
testlens Test coverage detector — finds source files without tests, 9 languages.
scopelens Per-PR file- and line-budget gate over git — counts the branch-vs-base diff at pre-commit.

After install, all five binaries live in your venv's bin/:

linelens   check
dupelens   check
secretlens check
testlens   check --lang python
scopelens  check

Configure from pyproject.toml

Each tool will read its config from [tool.<name>] inside your pyproject.toml (planned, see roadmap). Today, configuration goes in <tool>.json files at the repo root:

// linelens.json
{ "default": { "maxLines": 100 } }

Precedence per tool: --config <path> > dedicated *.json > pyproject.toml table > built-in defaults.

Run all five as a single CI gate

# GitHub Actions / GitLab CI / etc.
- pip install open-harness-suite
- linelens   check --fail
- dupelens   check --fail
- secretlens check --fail
- testlens   check --fail --lang python
- scopelens  check --fail
# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: linelens
        name: linelens
        entry: linelens check --fail --no-color
        language: system
        pass_filenames: false
      - id: dupelens
        name: dupelens
        entry: dupelens check --fail --no-color
        language: system
        pass_filenames: false
      - id: secretlens
        name: secretlens
        entry: secretlens check --fail --no-color
        language: system
        pass_filenames: false
      - id: testlens
        name: testlens
        entry: testlens check --fail --lang python
        language: system
        pass_filenames: false

Per-tool docs

Each tool ships in three ecosystems with identical behavior. Pick the registry that matches your project's stack:

Tool PyPI (Python) npm (Node/TS) Packagist (PHP)
linelens open-harness-linelens @open_harness/linelens open-harness/linelens
dupelens open-harness-dupelens @open_harness/dupelens open-harness/dupelens
secretlens open-harness-secretlens @open_harness/secretlens open-harness/secretlens
testlens open-harness-testlens @open_harness/testlens open-harness/testlens
scopelens open-harness-scopelens @open_harness/scopelens open-harness/scopelens

Español

La suite completa de open-harness en un solo pip install. Instala los cinco tools de calidad de código: linelens, dupelens, secretlens, testlens, scopelens.

Parte del monorepo open-harness.

Instalación

pip install open-harness-suite

pip descarga automáticamente la wheel nativa correcta para tu plataforma por cada tool (Linux x86_64, macOS arm64, macOS x86_64, Windows x86_64).

Qué incluye

Los 5 binarios disponibles en el bin/ de tu venv tras el install: linelens, dupelens, secretlens, testlens, scopelens.

Configurá desde pyproject.toml

Cada tool leerá su config desde [tool.<name>] dentro de tu pyproject.toml (roadmap). Hoy la configuración va en archivos <tool>.json en la raíz del repo.

CI / pre-commit

Sirve con GitHub Actions, GitLab CI o el framework pre-commit (snippets arriba).

License

MIT — see the main repository.

Download files

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

Source Distribution

open_harness_suite-0.3.5.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

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

open_harness_suite-0.3.5-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file open_harness_suite-0.3.5.tar.gz.

File metadata

  • Download URL: open_harness_suite-0.3.5.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for open_harness_suite-0.3.5.tar.gz
Algorithm Hash digest
SHA256 8db26c3cecd0f8b8b99bef9f26553c29c5608b26d5581612fa421eb0ec5f166a
MD5 be92d7ad6020c01f05dc50d5a7766c8c
BLAKE2b-256 d09370121430d48cced1e7014470cc513527d6e291ded6bf19261cf5ced5b26b

See more details on using hashes here.

File details

Details for the file open_harness_suite-0.3.5-py3-none-any.whl.

File metadata

File hashes

Hashes for open_harness_suite-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 29fc8d7e74e45572a727fe01374f2cf9d36583efcd01cb0cd8fd4abf6b210463
MD5 ec48a589f42ea2aefc0ee9189d787823
BLAKE2b-256 848a8c64b8d3a32fadffa951b0c030bd6e046d22f9efc4ec13f53d13a4ed7ad7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.5 This release

2 files

0.3.4

2 files

0.3.3

2 files

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