agyloop
Autonomous Google Antigravity / Gemini session runner. Same job as claudeloop: never block on a human, and never treat billing / daily-quota exhaustion as a short waitable RPM/TPM blip.
Install
Python 3.12+.
pip install agyloop
pipx install agyloop
TestPyPI (contributor dry run; runtime deps still come from PyPI):
pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ agyloop
Auth is either GOOGLE_API_KEY (Gemini Developer API) or Application
Default Credentials with a Vertex/Enterprise flag. agyloop doctor reports
the lane; it never guesses. See the
usage guide.
Quickstart
agyloop doctor # pre-flight: auth lane, no interactive hooks
agyloop run handoff.md # seed a session from a plan and run unattended
agyloop resume --last # resume the most recent .agyloop/ run
agyloop resume --conversation <id>
agyloop sessions # local .agyloop/runs registry only
# Mid-run (second terminal, same cwd):
agyloop prompt --now "Also cover the error path"
agyloop prompt --at-break "Then write tests"
agyloop stop # soft-stop the active run
agyloop snapshot
agyloop api --help
Generated Gemini REST is agyloop api
(ADR 0015).
Pace cold Enterprise runs with --ramp N. Drive a live agy binary with
--gateway cli.
Capacity model (RPM vs RPD vs credits)
A 429 RESOURCE_EXHAUSTED is not one thing:
| State | Meaning | Waiting helps? |
|---|---|---|
| RPM / TPM / IPM window | Per-minute throttle | Yes — short probe cadence |
| RPD window | Daily quota | Yes — next Pacific midnight, not a short sleep |
| Credits / spend / billing cap | No balance, spend cap | No clock reset. Probe until a human tops up |
| Auth failure | Bad or revoked credentials | Never — abort |
--no-probe waits only to computed quota boundaries and issues zero probe
requests. --max-turns, --max-wait, and --max-tokens bound a run.
Details: usage.
Never block on a human
ask_question is denied with guidance. Interactive SDK hooks are never
registered. Operator stop / prompt write the run inbox; they do not wait
on stdin. See SECURITY.md.
Permissions
Default SDK path: allow_all() + workspace scope + destructive-command
denies. --safe limits tools; --yolo drops workspace/destructive scopes.
--unsafe-skip-permissions is a CLI-adapter argv opt-in for
agy --dangerously-skip-permissions. agyloop run (--gateway sdk, the
default) refuses the flag. --gateway cli honors it after the usual
gates. agyloop never emits that flag together with --sandbox
(antigravity-cli#36).
Tests
pytest # skips system/live
pytest -m system # real FS/git/control + scripted agent; no Google account
Links
Naming
| Item | Value |
|---|---|
| PyPI / CLI | agyloop |
| Env prefix | AGYLOOP_* |
| State dir | .agyloop/ |
| Done marker | AGYLOOP_TASK_FULLY_COMPLETE |
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agyloop-0.1.0.tar.gz.
File metadata
- Download URL: agyloop-0.1.0.tar.gz
- Upload date:
- Size: 353.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a82cd3923dd36dbe68c45781a8584c305c122c5733380ca2a9bc86790c8c374
|
|
| MD5 |
bc103d3734a0c027b1bddb7b10c8d6d4
|
|
| BLAKE2b-256 |
cd46976bcda0aa3d54bbc0e100e6c985eefae2442385719b0a90c4a047a87245
|
Provenance
The following attestation bundles were made for agyloop-0.1.0.tar.gz:
Publisher:
publish-to-pypi.yml on adammatthewsteinberger/agyloop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agyloop-0.1.0.tar.gz -
Subject digest:
3a82cd3923dd36dbe68c45781a8584c305c122c5733380ca2a9bc86790c8c374 - Sigstore transparency entry: 2455422700
- Sigstore integration time:
-
Permalink:
adammatthewsteinberger/agyloop@2bcfca4ff81e335120f1448fac5b13cdfcd0e640 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/adammatthewsteinberger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@2bcfca4ff81e335120f1448fac5b13cdfcd0e640 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agyloop-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agyloop-0.1.0-py3-none-any.whl
- Upload date:
- Size: 127.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f61b8b44af9d62578a563583547d3bbf7699f1b2fb37acb4a38b94661b5ba521
|
|
| MD5 |
5ae06f553ff846abba6ae22a721ff738
|
|
| BLAKE2b-256 |
3227cfde31332171c2347445b462db52379e7188c326d8737928949580c6e114
|
Provenance
The following attestation bundles were made for agyloop-0.1.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on adammatthewsteinberger/agyloop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agyloop-0.1.0-py3-none-any.whl -
Subject digest:
f61b8b44af9d62578a563583547d3bbf7699f1b2fb37acb4a38b94661b5ba521 - Sigstore transparency entry: 2455422726
- Sigstore integration time:
-
Permalink:
adammatthewsteinberger/agyloop@2bcfca4ff81e335120f1448fac5b13cdfcd0e640 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/adammatthewsteinberger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@2bcfca4ff81e335120f1448fac5b13cdfcd0e640 -
Trigger Event:
release
-
Statement type: