{"id":50071779,"url":"https://github.com/ajhahnde/eeco","last_synced_at":"2026-05-29T03:04:57.387Z","repository":{"id":358911652,"uuid":"1243618900","full_name":"ajhahnde/eeco","owner":"ajhahnde","description":"Single-binary terminal tool that gives any coding project a self-maintaining, AI-assisted workflow ecosystem — control-center TUI, repeatable hygiene checks, and a memory store.","archived":false,"fork":false,"pushed_at":"2026-05-28T23:07:12.000Z","size":1485,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-28T23:20:16.850Z","etag":null,"topics":["ai-assisted","cli-tool","devops-tools","go","golang","knowledge-management","productivity-tools","software-engineering","terminal-ui","tui","workflow-automation"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajhahnde.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":null,"dco":null,"cla":null}},"created_at":"2026-05-19T14:02:13.000Z","updated_at":"2026-05-28T23:07:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ajhahnde/eeco","commit_stats":null,"previous_names":["ajhahnde/eeco"],"tags_count":68,"template":false,"template_full_name":null,"purl":"pkg:github/ajhahnde/eeco","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajhahnde%2Feeco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajhahnde%2Feeco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajhahnde%2Feeco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajhahnde%2Feeco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajhahnde","download_url":"https://codeload.github.com/ajhahnde/eeco/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajhahnde%2Feeco/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33634615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai-assisted","cli-tool","devops-tools","go","golang","knowledge-management","productivity-tools","software-engineering","terminal-ui","tui","workflow-automation"],"created_at":"2026-05-22T03:12:48.886Z","updated_at":"2026-05-29T03:04:57.379Z","avatar_url":"https://github.com/ajhahnde.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/eeco_logo_dark.png\"\u003e\n    \u003cimg src=\"assets/eeco_logo_light.png\" alt=\"eeco\" width=\"420\"\u003e\n  \u003c/picture\u003e\n\n\u003ch3\u003eSingle-binary, terminal-integrated workflow ecosystem + no-AI-spend knowledge layer for any AI assistant.\u003c/h3\u003e\n\n\u003cp\u003e\n    \u003ca href=\"https://github.com/ajhahnde/eeco/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/ajhahnde/eeco/actions/workflows/ci.yml/badge.svg?branch=main\" alt=\"CI\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/ajhahnde/eeco\"\u003e\u003cimg src=\"https://codecov.io/gh/ajhahnde/eeco/branch/main/graph/badge.svg\" alt=\"Coverage\"\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/version-v1.0.0-blue\" alt=\"Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-Apache%202.0-green\" alt=\"License\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/go-1.24-orange\" alt=\"Go 1.24\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/binary-single--static-lightgrey\" alt=\"single-static binary\"\u003e\n  \u003c/p\u003e\n\n\u003cp\u003e\n    \u003cb\u003eREADME\u003c/b\u003e ·\n    \u003ca href=\"VISION.md\"\u003e\u003cb\u003eVision\u003c/b\u003e\u003c/a\u003e ·\n    \u003ca href=\"docs/USAGE.md\"\u003e\u003cb\u003eUsage\u003c/b\u003e\u003c/a\u003e ·\n    \u003ca href=\"docs/ARCHITECTURE.md\"\u003e\u003cb\u003eArchitecture\u003c/b\u003e\u003c/a\u003e ·\n    \u003ca href=\"docs/PUBLIC_API.md\"\u003e\u003cb\u003ePublic API\u003c/b\u003e\u003c/a\u003e ·\n    \u003ca href=\"docs/UPGRADING.md\"\u003e\u003cb\u003eUpgrading\u003c/b\u003e\u003c/a\u003e ·\n    \u003ca href=\"VERSIONING.md\"\u003e\u003cb\u003eVersioning\u003c/b\u003e\u003c/a\u003e ·\n    \u003ca href=\"CHANGELOG.md\"\u003e\u003cb\u003eChangelog\u003c/b\u003e\u003c/a\u003e ·\n    \u003ca href=\"SECURITY.md\"\u003e\u003cb\u003eSecurity\u003c/b\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n\u003c/div\u003e\n\n---\n\nA single-binary, terminal-integrated, AI-assisted tool that gives any\ncoding project two things: a self-maintaining workflow ecosystem, and a\ndeterministic, no-AI-spend knowledge layer any AI assistant can plug\ninto. A control-center TUI, repeatable workflows that keep the project\nhygienic and surface issues, a memory store with garbage collection, a\nproject brief and targeted Q\u0026A that bring any assistant up to speed in\none cheap call, and an opt-in path to grow new workflows over time —\nproposing larger changes for review rather than acting unilaterally.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/demo.gif\" alt=\"eeco demo\" width=\"780\"\u003e\n\u003c/p\u003e\n\n## Design\n\n- **Single static binary, zero runtime dependencies.** Trivial to\n  install, embed, and ship; nothing to provision on the host.\n- **Local-first and private.** eeco reads anywhere in a target repo but\n  writes only inside that repo's gitignored workspace. The sole\n  exception is `eeco init`, which may make one initial commit and push\n  of the workspace `.gitignore` line; no other verb ever commits or\n  pushes.\n- **Pluggable AI, opt-in by default.** A provider interface with a\n  generic CLI provider wired in; every AI pass is gated by explicit\n  consent (`--ai` or `automation=auto`) and a per-invocation budget cap.\n- **Not intrusive.** Nothing runs unless invoked. A single queue is the\n  only channel that asks for a decision.\n- **Reversible.** The two integrations that touch outside the workspace\n  (a local pre-commit hook, one entry in an AI CLI's user settings) are\n  opt-in and recorded in a ledger so they can be removed cleanly.\n\n## What eeco gives you\n\n- **Control-center TUI** (`eeco`). A home screen lists the slash\n  commands one line each; output streams above the input.\n- **Ten builtin workflows.** `comment-hygiene`, `leak-guard`,\n  `version-sync`, `gate`, `memory-drift`, and `doc-drift` keep the\n  tracked tree hygienic and catch drift; `bug-sweep` keeps a triage\n  ledger; `handover-refresh` drafts dated handovers; `manifest-refresh`\n  keeps per-directory `.ai.json` manifests current; `evolve` proposes\n  new workflows from observed repetition. Run via `eeco run \u003cname\u003e`.\n- **Knowledge layer for AI assistants.** `eeco go` prints a\n  deterministic, no-AI-spend project brief (with `--json`, `--brief`,\n  `--write`, and `--copy` delivery axes); `eeco ask \"\u003cquestion\u003e\"`\n  answers a targeted question with ranked `path:line` pointers;\n  `eeco add fact` / `eeco add task` let an assistant record what it\n  learns back into memory and the queue. The delivery channels are\n  brand-free — point Claude Code at `CLAUDE.md`, Gemini CLI at\n  `GEMINI.md`, Codex at `AGENTS.md`, Cursor at `.cursorrules`, or\n  paste `eeco go --copy` into any chat-only assistant. One cheap\n  call brings any assistant — not only the strongest — up to speed.\n- **Memory store with garbage collection** (`eeco gc`). One fact per\n  file with flat frontmatter and a regenerated index.\n- **The queue.** Every decision-bearing finding lands in one\n  Markdown checklist under a presence lock — never email, never a\n  notification, never a silent edit.\n- **Opt-in self-update** (`eeco update --apply`). Verifies the\n  release archive against the `SHA256SUMS` cosign signature, the\n  archive sha256, and the GitHub build-provenance attestation before\n  atomically replacing the running binary. Bare `eeco update` is\n  read-only.\n- **Diagnostics** (`eeco doctor`), **clean removal** (`eeco\n  uninstall`), and **friction capture** (`eeco report-bug`) for every\n  step before, during, and after.\n\n## Install\n\nPick the route you prefer. See\n[`docs/USAGE.md`](docs/USAGE.md#1-install) for the full platform matrix,\nchecksum verification, and the cosign signature + build-provenance\nchecks.\n\n**Homebrew (macOS, Linux).**\n\n```\nbrew install ajhahnde/eeco/eeco\n```\n\n**Scoop (Windows).**\n\n```\nscoop bucket add eeco https://github.com/ajhahnde/scoop-eeco\nscoop install eeco\n```\n\n**Pre-built binary.** Download the archive for your platform from the\n[releases page](https://github.com/ajhahnde/eeco/releases) and extract\nthe `eeco` binary onto your `PATH`. `SHA256SUMS` is cosign-signed and\nthe archives carry build provenance.\n\n**From source.** Requires Go 1.24+.\n\n```\ngit clone https://github.com/ajhahnde/eeco\ncd eeco\nmake build        # produces ./eeco with version metadata\n```\n\n**In-place upgrade.** Once eeco is installed, future releases\nupgrade in place:\n\n```\neeco update --apply\n```\n\nVerifies the cosign signature on `SHA256SUMS`, the archive sha256, and\nthe GitHub build-provenance attestation before swapping the binary.\nRefuses on Homebrew- or Scoop-managed install roots in favour of the\npackage manager's upgrade verb.\n\n`make verify` runs `go build ./... \u0026\u0026 go vet ./... \u0026\u0026 go test ./...`;\n`make release` cross-builds the published matrix into `dist/`.\n\n## License\n\nApache License 2.0 — see [`LICENSE`](LICENSE).\n\n## See also\n\n- [FlashOS](https://github.com/ajhahnde/FlashOS) — AArch64 bare-metal kernel for the Raspberry Pi 4 Model B.\n- [the-way-out](https://github.com/ajhahnde/the-way-out) — top-down pixel-art escape-room shooter.\n\n---\n\n[Next: Vision →](VISION.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajhahnde%2Feeco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajhahnde%2Feeco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajhahnde%2Feeco/lists"}