Metadata-Version: 2.4
Name: scaffy-cli
Version: 0.1.0
Summary: A coding-assistant agent that lives in your terminal.
Project-URL: Homepage, https://github.com/scaffolder/scaffy
Project-URL: Issues, https://github.com/scaffolder/scaffy/issues
Project-URL: Changelog, https://github.com/scaffolder/scaffy/blob/main/README.md
Author-email: Goran Angelkovski <goran@scaffolder.io>
License-Expression: MIT
License-File: LICENSE
Keywords: agent,ai,cli,coding-assistant,scaffolder
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Requires-Python: >=3.10
Requires-Dist: click>=8.1
Description-Content-Type: text/markdown

# scaffy

> **Status: v0.1 is a publishable skeleton.** The CLI is wired up, the
> `Agent` class exists, and the project is installable from PyPI. Real
> coding-assistant behavior (LLM calls, tool use, etc.) is **not** in
> this version — the `Agent` is a deterministic stub. The point of
> releasing 0.1 is to lock in the distribution name, the package
> layout, and the release pipeline. Subsequent versions will replace
> the stub with real agent logic.

`scaffy` is the console script for the **scaffy-cli** package: a
coding-assistant agent that will eventually live in your terminal.
This repository ships the package skeleton only.

## Install

```bash
pip install scaffy-cli
# or, with uv:
uv tool install scaffy-cli
```

## Usage

```text
$ scaffy --version
scaffy, version 0.1.0

$ scaffy hello
Hello from scaffy v0.1.0!

$ scaffy run "explain this codebase"
[stub:stub] echo: explain this codebase
```

### Subcommands

| Command | Description |
| --- | --- |
| `scaffy --version` | Print the installed version. |
| `scaffy hello` | Print a friendly banner. |
| `scaffy run PROMPT` | Send a prompt to the agent. In v0.1 this is a stub. |
| `scaffy run PROMPT --model NAME` | Same, with a named model. |
| `scaffy run PROMPT --verbose` | Also log the prompt to stderr. |

### Environment

- `SCAFFY_LOG` — log level for the package logger (`DEBUG`, `INFO`,
  `WARNING`, `ERROR`). Defaults to `WARNING`.

## Development

Requirements: [`uv`](https://docs.astral.sh/uv/).

```bash
git clone https://github.com/scaffolder/scaffy
cd scaffy
uv sync --all-extras

uv run ruff check .
uv run ruff format --check .
uv run ty check src
uv run pytest -q
```

## Release process

1. Bump `__version__` in `src/scaffy/__init__.py`.
2. Tag the commit: `git tag vX.Y.Z && git push --tags`.
3. The `release.yml` workflow builds the sdist + wheel and publishes
   to PyPI via [Trusted Publishing](https://docs.pypi.org/trusted-publishers/).
   The `pypi` GitHub environment requires manual approval, so a
   pushed tag alone will not ship code.

## License

MIT — see [LICENSE](LICENSE).
