Metadata-Version: 2.4
Name: scripteer
Version: 2.0.0
Summary: Dependency-light building blocks for cohesive Python command-line tools
Author: Pokanop Apps LLC
License-Expression: MIT
Project-URL: Homepage, https://github.com/pokanop/scripteer
Project-URL: Documentation, https://github.com/pokanop/scripteer/tree/main/docs
Project-URL: Repository, https://github.com/pokanop/scripteer
Project-URL: Issues, https://github.com/pokanop/scripteer/issues
Keywords: cli,command-line,console,framework,toolkit,scaffolding,developer-tools
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Topic :: System :: Shells
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: ai-keyring
Requires-Dist: keyring<26,>=25.7; extra == "ai-keyring"
Provides-Extra: rich
Requires-Dist: rich<15,>=13.9.4; extra == "rich"
Provides-Extra: dev
Requires-Dist: build==1.6.1; extra == "dev"
Requires-Dist: pytest==9.1.1; extra == "dev"
Requires-Dist: pytest-cov==7.1.0; extra == "dev"
Requires-Dist: mypy==2.4.0; extra == "dev"
Requires-Dist: ruff==0.16.10; extra == "dev"
Requires-Dist: diff-cover==10.6.0; extra == "dev"
Requires-Dist: twine==6.2.0; extra == "dev"
Requires-Dist: pip-audit==2.10.1; extra == "dev"
Requires-Dist: jsonschema==4.26.0; extra == "dev"
Dynamic: license-file

# Scripteer

A dependency-light Python **3.11+** runtime for cohesive command-line tools.
This repository prepares the 2.0.0 framework with its compatible runtime, versioned data contracts,
an opt-in [deterministic project generator](docs/generator.md),
[offline tool/collection scaffolds](docs/scaffolds.md), and a
[verified bootstrap and transactional tool manager](docs/bootstrap.md).
Optional [BYOK AI authoring](docs/ai-proposals.md) uses explicit disclosure and
reviewed proposals; manual generation works entirely offline.

> Distribution, Python import and CLI are all **`scripteer`** (owner-approved
> name, POK-645, 2026-10-11). Version 2.0.0 is the first published release (the
> identity migration takes the major bump); the PyPI
> project is registered and each release follows the
> [release runbook](docs/RELEASING.md) and the
> [identity, migration and publication guide](docs/scripteer-launch.md). The
> pre-rename clean break is documented there; no affiliation with other
> similarly named projects is implied.

## Try the release candidate

Start with [candidate installation and migration](docs/scripteer-launch.md).
Then see the
[CLI/API reference](docs/cli-reference.md), [registry-author guide](docs/registry-author.md),
[generator upgrades](docs/generator-upgrades.md), [migration/rollback](docs/migration.md)
and [support matrix](docs/support.md). [Certification](docs/certification.md)
records artifact/platform/performance evidence; [identity and migration](docs/scripteer-launch.md)
records the selected identity and the pre-rename clean break.

## Build and try

```sh
python -m venv .venv
# Activate .venv using your shell's platform-specific activation command.
python -m pip install '.[dev]'
python -m build
python -m pip install dist/scripteer-2.0.0-py3-none-any.whl
scripteer --version
python -m scripteer --help
```

The `scripteer` command exposes doctor, registry/catalog, tool lifecycle and
staged manager self-update. See [bootstrap instructions](docs/bootstrap.md) for
pinned release inputs, no-PATH installation, repair and rollback. Bare invocation
shows help without modifying state; unknown commands fail with argparse exit 2.

```python
import scripteer as sk

sk.success("Ready")
result = sk.run(["git", "status", "--short"])
print(result.out)
```

There are **no mandatory runtime dependencies**, including no `requests`.
Install `.[rich]` from a checkout for optional Rich 13 rendering; without it,
plain-text output, progress, tables and diagnostics still work.

For opt-in automation-safe JSON, themes, shared progress and prompts, see
[output contracts](docs/output.md) and [customization example](examples/output.py).
Legacy helpers keep their existing behavior.

Validate authored tools with `scripteer validate PROJECT`; see
[conformance checks and installed assistant guidance](docs/conformance.md).
Optional [AI proposals](docs/ai-proposals.md) provide explicit context preview,
static review/diffs and hash-approved application, without running proposed code.
Static checks never execute project code or certify it safe.

See [runtime API](docs/runtime.md), [versioned contracts](docs/contracts.md),
[component ownership](docs/architecture.md),
[compatibility policy](docs/compatibility.md), [contributing](CONTRIBUTING.md)
and [security](SECURITY.md). MIT; attribution and extraction provenance are in
[NOTICE.md](NOTICE.md).
