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.
@@ -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,5 @@
1
+ """heru - Unified CLI for AI coding agents. One command, any engine."""
2
+
3
+ from heru.__version__ import __version__
4
+
5
+ __all__ = ["__version__"]
@@ -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