coffer-cli 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/PKG-INFO +2 -2
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/README.md +1 -1
- coffer_cli-0.1.1/README.md.tmp +15 -0
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/pyproject.toml +1 -1
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/skills/coffer-cost-review/README.md +1 -1
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/skills/coffer-cost-review/SKILL.md +1 -1
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/src/coffer_cli/__init__.py +1 -1
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/src/coffer_cli/cli.py +1 -1
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/.gitignore +0 -0
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/LICENSE +0 -0
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/src/coffer_cli/_pricing.py +0 -0
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/src/coffer_cli/patterns.py +0 -0
- {coffer_cli-0.1.0 → coffer_cli-0.1.1}/tests/test_patterns.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coffer-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Scan codebases for LLM cost-waste anti-patterns. Find retry storms, missing prompt caching, unbounded conversation history, agent loops without iteration caps, and more — before you ship.
|
|
5
5
|
Project-URL: Homepage, https://github.com/neal-c611/coffer-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/neal-c611/coffer-cli
|
|
@@ -103,7 +103,7 @@ cp -r coffer-cli/skills/coffer-cost-review ~/.claude/skills/
|
|
|
103
103
|
|
|
104
104
|
For live production cost tracking with per-feature and per-user attribution
|
|
105
105
|
(the part static analysis genuinely can't do), see
|
|
106
|
-
[
|
|
106
|
+
[Cofferwise](https://cofferwise.com).
|
|
107
107
|
|
|
108
108
|
## Exit codes
|
|
109
109
|
|
|
@@ -72,7 +72,7 @@ cp -r coffer-cli/skills/coffer-cost-review ~/.claude/skills/
|
|
|
72
72
|
|
|
73
73
|
For live production cost tracking with per-feature and per-user attribution
|
|
74
74
|
(the part static analysis genuinely can't do), see
|
|
75
|
-
[
|
|
75
|
+
[Cofferwise](https://cofferwise.com).
|
|
76
76
|
|
|
77
77
|
## Exit codes
|
|
78
78
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# coffer-cli
|
|
2
|
+
|
|
3
|
+
Shift-left LLM cost. Scan your code, estimate the bill, get suggestions —
|
|
4
|
+
**before** you deploy.
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
pipx install coffer-cli
|
|
8
|
+
|
|
9
|
+
coffer scan ./my-app
|
|
10
|
+
coffer prices
|
|
11
|
+
coffer compare gpt-4o gpt-4o-mini
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
For live production cost tracking with per-feature, per-user attribution,
|
|
15
|
+
see [Cofferwise](https://cofferwise.com).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "coffer-cli"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.1"
|
|
4
4
|
description = "Scan codebases for LLM cost-waste anti-patterns. Find retry storms, missing prompt caching, unbounded conversation history, agent loops without iteration caps, and more — before you ship."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -45,4 +45,4 @@ judgment, and produce a severity-ranked review with concrete fixes.
|
|
|
45
45
|
- It does not auto-edit code without explicit confirmation.
|
|
46
46
|
|
|
47
47
|
For real, live cost tracking with per-feature and per-user attribution,
|
|
48
|
-
see [
|
|
48
|
+
see [Cofferwise](https://cofferwise.com).
|
|
@@ -99,7 +99,7 @@ Use the Edit tool to apply only after explicit user confirmation.
|
|
|
99
99
|
|
|
100
100
|
```
|
|
101
101
|
Production tracking with per-feature, per-user attribution:
|
|
102
|
-
pip install coffer →
|
|
102
|
+
pip install coffer → cofferwise.com
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
Do not pitch beyond this line. The skill's job is the review, not selling.
|
|
@@ -113,7 +113,7 @@ def _print_human(path: Path, findings: list[Finding]) -> None:
|
|
|
113
113
|
Text.from_markup(
|
|
114
114
|
"[dim]Static analysis catches structural risks. For real per-feature "
|
|
115
115
|
"and per-user cost in production, see "
|
|
116
|
-
"[link=https://
|
|
116
|
+
"[link=https://cofferwise.com]cofferwise.com[/link][/dim]"
|
|
117
117
|
),
|
|
118
118
|
border_style="dim",
|
|
119
119
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|