Skip to main content

Agent and CLI to manage EC2 instances running self-hosted LLM inference: warm up an instance and serve an LLM, then hibernate it on idle to power ongoing inference workloads such as ADLC. Built on ec2-cli for the underlying EC2 machine lifecycle.

Project description

ec2bedrock-cli

Agent and CLI to manage EC2 instances running self-hosted LLM inference: warm up an instance and serve an LLM, then hibernate it on idle to power ongoing inference workloads such as ADLC. Built on ec2-cli for the underlying EC2 machine lifecycle.

What you get

  • An agent-first CLI cited from teken (afi-cli) — the runtime package has no third-party dependencies.
  • A mesh identityculture.yaml (suffix + backend) and the matching prompt file (CLAUDE.md for backend: claude).
  • The canonical guildmaster skill kit (11 skills) under .claude/skills/, vendored cite-don't-import. See docs/skill-sources.md.
  • A build + deploy baseline — pytest, lint, the agent-first rubric gate, and PyPI Trusted Publishing wired into GitHub Actions.

Quickstart

uv sync
uv run pytest -n auto                 # run the test suite
uv run ec2bedrock whoami  # identity from culture.yaml (command is `ec2bedrock`; dist is `ec2bedrock-cli`)
uv run ec2bedrock learn   # self-teaching prompt (add --json)
uv run teken cli doctor . --strict    # the agent-first rubric gate CI runs

Milestone 1 — cost estimator (offline)

All commands below are offline / dry-run (no AWS calls). compare and decide encode the recommendation in the exit code: ec2 = 0, token-provider = 20, mixed = 21. Note that 0 doubles as "recommend EC2" and generic success — a router that needs an unambiguous verdict should parse --json (the recommendation/decision field) rather than rely on exit code 0 alone; the non-zero codes (20/21) are unambiguous, and 1/2 remain user/environment errors.

ec2bedrock profile list
ec2bedrock profile show qwen27b-awq-l40s
ec2bedrock estimate --profile qwen27b-awq-l40s --hours 8 --days 22
ec2bedrock compare --profile qwen27b-awq-l40s --input-tokens 300000000 --output-tokens 60000000 --provider-input-price 0.58 --provider-output-price 3.01
ec2bedrock decide --workload meeting-mode --input-tokens 3000000 --output-tokens 500000 --sensitive --json

CLI

Verb What it does
whoami Report this agent's nick, version, backend, and model from culture.yaml.
learn Print a structured self-teaching prompt.
explain <path> Markdown docs for any noun/verb path.
overview Read-only descriptive snapshot of the agent.
doctor Check the agent-identity invariants (prompt-file-present, backend-consistency).
cli overview Describe the CLI surface itself.

Every command supports --json. Results go to stdout, errors/diagnostics to stderr (never mixed). Exit codes: 0 success, 1 user error, 2 environment error, 3+ reserved.

Make it your own

  1. Rename the package ec2bedrock/ and the ec2bedrock-cli CLI/dist name throughout pyproject.toml, the package, tests/, sonar-project.properties, and this README.md. The name is hard-coded in ~100 places, so list every occurrence first — see the git grep discovery command in CLAUDE.md, the authoritative rename procedure.
  2. Edit culture.yaml with your suffix and backend.
  3. Rewrite CLAUDE.md for your agent and run /init.
  4. Re-vendor only the skills you need from guildmaster (see docs/skill-sources.md).

See CLAUDE.md for the full conventions (version-bump-every-PR, the cicd PR lane, deploy setup).

License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ec2bedrock_cli-0.5.0.tar.gz (155.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ec2bedrock_cli-0.5.0-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

Details for the file ec2bedrock_cli-0.5.0.tar.gz.

File metadata

  • Download URL: ec2bedrock_cli-0.5.0.tar.gz
  • Upload date:
  • Size: 155.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ec2bedrock_cli-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c344ccd7d2196b650152008e2594ba53c7cef218609fa3fcc0407802e6577a11
MD5 d93f22ad659e2ca8205e248a25207af1
BLAKE2b-256 1da373e17ab72c926b473b539fcd58c1af8f9529ef3b5d0c810c2101db54a110

See more details on using hashes here.

File details

Details for the file ec2bedrock_cli-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: ec2bedrock_cli-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 38.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ec2bedrock_cli-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c85745481b386be0cc43966f89eaf9d9be887de3aff76e958090a5c8e3b8084f
MD5 7d4f35b0d9e007c276efed1271654aec
BLAKE2b-256 a97ca8fb8b528a7a04e4295664c47a480b3bcf1d1550e68a1ace85ba641159df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page