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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8db26c3cecd0f8b8b99bef9f26553c29c5608b26d5581612fa421eb0ec5f166a
|
|
| MD5 |
be92d7ad6020c01f05dc50d5a7766c8c
|
|
| BLAKE2b-256 |
d09370121430d48cced1e7014470cc513527d6e291ded6bf19261cf5ced5b26b
|
File details
Details for the file open_harness_suite-0.3.5-py3-none-any.whl.
File metadata
- Download URL: open_harness_suite-0.3.5-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29fc8d7e74e45572a727fe01374f2cf9d36583efcd01cb0cd8fd4abf6b210463
|
|
| MD5 |
ec48a589f42ea2aefc0ee9189d787823
|
|
| BLAKE2b-256 |
848a8c64b8d3a32fadffa951b0c030bd6e046d22f9efc4ec13f53d13a4ed7ad7
|