heru 0.0.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.
- heru-0.0.1/.github/workflows/test.yml +18 -0
- heru-0.0.1/.gitignore +28 -0
- heru-0.0.1/.python-version +1 -0
- heru-0.0.1/Makefile +25 -0
- heru-0.0.1/PKG-INFO +53 -0
- heru-0.0.1/README.md +33 -0
- heru-0.0.1/heru/__init__.py +5 -0
- heru-0.0.1/heru/__version__.py +1 -0
- heru-0.0.1/heru/cli.py +28 -0
- heru-0.0.1/pyproject.toml +57 -0
- heru-0.0.1/tests/__init__.py +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
test:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
strategy:
|
|
9
|
+
matrix:
|
|
10
|
+
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/setup-python@v5
|
|
14
|
+
with:
|
|
15
|
+
python-version: ${{ matrix.python-version }}
|
|
16
|
+
- run: pip install uv
|
|
17
|
+
- run: uv sync
|
|
18
|
+
- run: uv run pytest
|
heru-0.0.1/.gitignore
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*$py.class
|
|
4
|
+
*.so
|
|
5
|
+
.Python
|
|
6
|
+
build/
|
|
7
|
+
develop-eggs/
|
|
8
|
+
dist/
|
|
9
|
+
downloads/
|
|
10
|
+
eggs/
|
|
11
|
+
.eggs/
|
|
12
|
+
lib/
|
|
13
|
+
lib64/
|
|
14
|
+
parts/
|
|
15
|
+
sdist/
|
|
16
|
+
var/
|
|
17
|
+
wheels/
|
|
18
|
+
*.egg-info/
|
|
19
|
+
.installed.cfg
|
|
20
|
+
*.egg
|
|
21
|
+
MANIFEST
|
|
22
|
+
.pytest_cache/
|
|
23
|
+
.coverage
|
|
24
|
+
htmlcov/
|
|
25
|
+
.vscode/
|
|
26
|
+
.idea/
|
|
27
|
+
.venv/
|
|
28
|
+
uv.lock
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
heru-0.0.1/Makefile
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
.PHONY: test setup shell coverage publish-build publish-test publish publish-clean
|
|
2
|
+
|
|
3
|
+
test:
|
|
4
|
+
uv run pytest
|
|
5
|
+
|
|
6
|
+
setup:
|
|
7
|
+
uv sync --dev
|
|
8
|
+
|
|
9
|
+
shell:
|
|
10
|
+
uv shell
|
|
11
|
+
|
|
12
|
+
coverage:
|
|
13
|
+
uv run pytest --cov=heru --cov-report=term-missing
|
|
14
|
+
|
|
15
|
+
publish-build:
|
|
16
|
+
uv run hatch build
|
|
17
|
+
|
|
18
|
+
publish-test:
|
|
19
|
+
uv run hatch publish --repo test
|
|
20
|
+
|
|
21
|
+
publish:
|
|
22
|
+
uv run hatch publish
|
|
23
|
+
|
|
24
|
+
publish-clean:
|
|
25
|
+
rm -r dist/
|
heru-0.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: heru
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Unified CLI for AI coding agents. One command, any engine.
|
|
5
|
+
Project-URL: Homepage, https://github.com/alexeygrigorev/heru
|
|
6
|
+
Project-URL: Repository, https://github.com/alexeygrigorev/heru
|
|
7
|
+
Author-email: Alexey Grigorev <alexey@grigorev.name>
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: agents,ai,claude,cli,codex,coding,copilot
|
|
10
|
+
Classifier: Development Status :: 1 - Planning
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# heru
|
|
22
|
+
|
|
23
|
+
Unified CLI for AI coding agents. One command, any engine.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
heru "implement auth" --engine claude --model claude-opus-4-6
|
|
27
|
+
heru "fix the bug" --engine codex --model gpt-5.4-high
|
|
28
|
+
heru --continue abc-123 "add tests"
|
|
29
|
+
heru "write docs"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Supports: codex, claude, copilot, gemini, opencode, goz.
|
|
33
|
+
|
|
34
|
+
All engines output the same normalized JSONL event format, regardless of which engine runs underneath.
|
|
35
|
+
|
|
36
|
+
## Install
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install heru
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Usage
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
heru "your prompt here" # uses default engine
|
|
46
|
+
heru "your prompt" --engine claude # specify engine
|
|
47
|
+
heru "your prompt" --engine codex --model o3 # specify engine and model
|
|
48
|
+
heru --continue <session-id> "continue working" # resume a session
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Part of litehive
|
|
52
|
+
|
|
53
|
+
heru is the engine layer for [litehive](https://github.com/alexeygrigorev/litehive), an autonomous task execution system for software projects.
|
heru-0.0.1/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# heru
|
|
2
|
+
|
|
3
|
+
Unified CLI for AI coding agents. One command, any engine.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
heru "implement auth" --engine claude --model claude-opus-4-6
|
|
7
|
+
heru "fix the bug" --engine codex --model gpt-5.4-high
|
|
8
|
+
heru --continue abc-123 "add tests"
|
|
9
|
+
heru "write docs"
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Supports: codex, claude, copilot, gemini, opencode, goz.
|
|
13
|
+
|
|
14
|
+
All engines output the same normalized JSONL event format, regardless of which engine runs underneath.
|
|
15
|
+
|
|
16
|
+
## Install
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pip install heru
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
heru "your prompt here" # uses default engine
|
|
26
|
+
heru "your prompt" --engine claude # specify engine
|
|
27
|
+
heru "your prompt" --engine codex --model o3 # specify engine and model
|
|
28
|
+
heru --continue <session-id> "continue working" # resume a session
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Part of litehive
|
|
32
|
+
|
|
33
|
+
heru is the engine layer for [litehive](https://github.com/alexeygrigorev/litehive), an autonomous task execution system for software projects.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.1"
|
heru-0.0.1/heru/cli.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"""heru CLI - Unified interface for AI coding agents."""
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
|
|
5
|
+
from heru.__version__ import __version__
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def main():
|
|
9
|
+
parser = argparse.ArgumentParser(
|
|
10
|
+
description="Unified CLI for AI coding agents. One command, any engine.",
|
|
11
|
+
)
|
|
12
|
+
parser.add_argument("prompt", nargs="?", help="The prompt to send to the agent")
|
|
13
|
+
parser.add_argument("--engine", help="Engine to use (codex, claude, copilot, gemini, opencode, goz)")
|
|
14
|
+
parser.add_argument("--model", help="Model override for the engine")
|
|
15
|
+
parser.add_argument("--continue", dest="continue_session", metavar="SESSION_ID", help="Resume a previous session")
|
|
16
|
+
parser.add_argument("--version", "-v", action="version", version=f"heru {__version__}")
|
|
17
|
+
args = parser.parse_args()
|
|
18
|
+
|
|
19
|
+
if not args.prompt and not args.continue_session:
|
|
20
|
+
parser.print_help()
|
|
21
|
+
return 1
|
|
22
|
+
|
|
23
|
+
print(f"heru v{__version__} - coming soon")
|
|
24
|
+
return 0
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
if __name__ == "__main__":
|
|
28
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "heru"
|
|
7
|
+
description = "Unified CLI for AI coding agents. One command, any engine."
|
|
8
|
+
readme = "README.md"
|
|
9
|
+
license = {text = "MIT"}
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
dynamic = ["version"]
|
|
12
|
+
|
|
13
|
+
dependencies = []
|
|
14
|
+
|
|
15
|
+
authors = [
|
|
16
|
+
{name = "Alexey Grigorev", email = "alexey@grigorev.name"}
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
keywords = ["ai", "coding", "agents", "cli", "codex", "claude", "copilot"]
|
|
20
|
+
classifiers = [
|
|
21
|
+
"Development Status :: 1 - Planning",
|
|
22
|
+
"Intended Audience :: Developers",
|
|
23
|
+
"License :: OSI Approved :: MIT License",
|
|
24
|
+
"Programming Language :: Python :: 3",
|
|
25
|
+
"Programming Language :: Python :: 3.10",
|
|
26
|
+
"Programming Language :: Python :: 3.11",
|
|
27
|
+
"Programming Language :: Python :: 3.12",
|
|
28
|
+
"Programming Language :: Python :: 3.13",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[project.scripts]
|
|
32
|
+
heru = "heru.cli:main"
|
|
33
|
+
|
|
34
|
+
[project.urls]
|
|
35
|
+
Homepage = "https://github.com/alexeygrigorev/heru"
|
|
36
|
+
Repository = "https://github.com/alexeygrigorev/heru"
|
|
37
|
+
|
|
38
|
+
[dependency-groups]
|
|
39
|
+
dev = [
|
|
40
|
+
"hatch",
|
|
41
|
+
"pytest",
|
|
42
|
+
"pytest-cov",
|
|
43
|
+
"ruff",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[tool.hatch.build.targets.wheel]
|
|
47
|
+
packages = ["heru"]
|
|
48
|
+
|
|
49
|
+
[tool.hatch.version]
|
|
50
|
+
path = "heru/__version__.py"
|
|
51
|
+
|
|
52
|
+
[tool.pytest.ini_options]
|
|
53
|
+
testpaths = ["tests"]
|
|
54
|
+
|
|
55
|
+
[tool.ruff]
|
|
56
|
+
line-length = 100
|
|
57
|
+
target-version = "py310"
|
|
File without changes
|