{"id":44494281,"url":"https://github.com/SawyerHood/gitclaw","last_synced_at":"2026-02-16T13:00:17.265Z","repository":{"id":336801784,"uuid":"1151179876","full_name":"SawyerHood/gitclaw","owner":"SawyerHood","description":"OpenClaw but it runs entirely on github actions","archived":false,"fork":false,"pushed_at":"2026-02-06T06:41:49.000Z","size":604,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-06T15:05:12.158Z","etag":null,"topics":["actions","agent","openclaw"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SawyerHood.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-06T06:28:11.000Z","updated_at":"2026-02-06T06:43:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SawyerHood/gitclaw","commit_stats":null,"previous_names":["sawyerhood/gitclaw"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/SawyerHood/gitclaw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SawyerHood%2Fgitclaw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SawyerHood%2Fgitclaw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SawyerHood%2Fgitclaw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SawyerHood%2Fgitclaw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SawyerHood","download_url":"https://codeload.github.com/SawyerHood/gitclaw/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SawyerHood%2Fgitclaw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29508734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","agent","openclaw"],"created_at":"2026-02-13T05:00:20.134Z","updated_at":"2026-02-16T13:00:17.252Z","avatar_url":"https://github.com/SawyerHood.png","language":"Python","funding_links":[],"categories":["Alternatives \u0026 Competitors"],"sub_categories":["Memory for Local Models"],"readme":"![gitclaw banner](banner.jpeg)\n\nA personal AI assistant that runs entirely through GitHub Issues and Actions. Like [OpenClaw](https://github.com/openclaw/openclaw), but no servers or extra infrastructure.\n\nPowered by the [pi coding agent](https://github.com/badlogic/pi-mono). Every issue becomes a chat thread with an AI agent. Conversation history is committed to git, giving the agent long-term memory across sessions. It can search prior context, edit or summarize past conversations, and all changes are versioned.\n\nSince the agent can read and write files, you can build an evolving software project that updates itself as you open issues. Try asking it to set up a GitHub Pages site, then iterate on it issue by issue.\n\n## How it works\n\n1. **Create an issue** → the agent processes your request and replies as a comment.\n2. **Comment on the issue** → the agent resumes the same session with full prior context.\n3. **Everything is committed** → sessions and changes are pushed to the repo after every turn.\n\nThe agent reacts with 👀 while working and removes it when done.\n\n### Repo as storage\n\nAll state lives in the repo:\n\n```\nstate/\n  issues/\n    1.json          # maps issue #1 -\u003e its session file\n  sessions/\n    2026-02-04T..._abc123.jsonl    # full conversation for issue #1\n```\n\nSince sessions are in git, the agent can grep its own history and edit or summarize past conversations.\n\n## Setup\n\n1. **Fork this repo**\n2. **Add your Anthropic API key** - go to **Settings → Secrets and variables → Actions** and create a secret named `ANTHROPIC_API_KEY`.\n3. **Open an issue** - the agent starts automatically.\n4. **Comment on the issue** - the agent resumes where it left off.\n\n## Security\n\nThe workflow only responds to repository **owners, members, and collaborators**. Random users cannot trigger the agent on public repos.\n\nIf you plan to use gitclaw for anything private, **make the repo private**. Public repos mean your conversation history is visible to everyone, but get generous GitHub Actions usage.\n\n## Configuration\n\nEdit `.github/workflows/agent.yml` to customize:\n\n- **Model:** Add `--provider` and `--model` flags to the `bunx pi` command.\n- **Tools:** Restrict with `--tools read,grep,find,ls` for read-only analysis.\n- **Thinking:** Add `--thinking high` for harder tasks.\n- **Trigger:** Adjust the `on:` block to filter by labels, assignees, etc.\n\n## Acknowledgments\n\nBuilt on top of [pi-mono](https://github.com/badlogic/pi-mono) by [Mario Zechner](https://github.com/badlogic).\n\nThanks to [ymichael](https://github.com/ymichael) for nerdsniping me with the idea of an agent that runs in GitHub Actions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSawyerHood%2Fgitclaw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSawyerHood%2Fgitclaw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSawyerHood%2Fgitclaw/lists"}