Metadata-Version: 2.4
Name: fullm
Version: 0.1.22
Summary: Shell LLM client control plane for semcod/coru automation.
Author: Semcod
Author-email: Tom Sapletta <tom@sapletta.com>
License-Expression: Apache-2.0
Keywords: llm,shell,aider,claude,codex,automation
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: build<2.0,>=1.0; extra == "dev"
Requires-Dist: pytest<10.0,>=8.0; extra == "dev"
Requires-Dist: ruff<0.16,>=0.11; extra == "dev"
Requires-Dist: twine<7.0,>=6.0; extra == "dev"
Requires-Dist: goal>=2.1.0; extra == "dev"
Requires-Dist: costs>=0.1.20; extra == "dev"
Requires-Dist: pfix>=0.1.60; extra == "dev"
Dynamic: license-file

# sillm


## AI Cost Tracking

![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.1.22-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
![AI Cost](https://img.shields.io/badge/AI%20Cost-$1.26-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-3.6h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)

- 🤖 **LLM usage:** $1.2644 (20 commits)
- 👤 **Human dev:** ~$356 (3.6h @ $100/h, 30min dedup)

Generated on 2026-06-03 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)

---

Shell LLM control plane for the semcod/coru ecosystem.

SILLM owns the shell-client side of LLM automation: clients such as `aider`,
`claude`, `codex`, `gemini`, `qwen-code`, `opencode`, and `devin`. GUI/IDE
chat control stays in `koruide` and the existing Koru autopilot socket path.

## Commands

```bash
sillm clients
sillm drive --client aider --prompt "Refactor ticket PLF-1"          # dry-run
sillm drive --client aider --prompt "Refactor ticket PLF-1" --execute
sillm nlp "aider: napraw testy dla kolejki"                          # NLP -> DSL
sillm validate                                                       # ecosystem hooks + intents
```

`sillm drive` always saves the prompt under `.koru/sillm/prompts/` before it
executes or prints a dry-run plan.

Client notes:

- [`aider`](docs/clients/aider.md)
- [`claude-code`](docs/clients/claude-code.md)
- [`aider Docker autoloop`](docs/clients/aider-docker-autoloop.md)

## Optional ecosystem integrations

PyPI wheels ship only the `dev` extra. Monorepo siblings use local editable installs
(PyPI rejects `file://` URLs in package metadata):

```bash
pip install -e ".[dev]"
pip install -e ../nlp2dsl ../intract ../redsl ../proxym ../llx   # adjust paths for your checkout
```

The `nlp2dsl` bridge is opt-in at runtime:

```bash
export SILLM_NLP2DSL=1
export NLP2DSL_BACKEND_URL=http://localhost:8010
sillm nlp "uruchom claude dla ticketu PLF-123"
```

Without the service, SILLM falls back to a deterministic local parser.

`sillm validate` reports optional package availability and exposes the
`@intract.v1` intent contract used to validate `sillm.drive` DSL before shell
execution.


## License

Licensed under Apache-2.0.
