mirror of
https://github.com/tiennm99/awesome-ai-dev-tools.git
synced 2026-10-11 12:08:58 +00:00
The updater fetched GitHub metadata and rendered the dashboard payload in a single step, so anything that published the site needed a GITHUB_TOKEN. Cloudflare Pages builds from a Git webhook and has no business holding one. Split the tool into three modes. The default update step still fetches GitHub and now records every API-sourced field in data/metadata.json, which is committed alongside README.md and data/history.jsonl. The new -build mode joins that snapshot with data/agents.yml and data/history.jsonl to render dist/ with no network access and no token; -check is unchanged. Supporting changes: - computeDeltaAt anchors the delta windows to when the data was fetched rather than the wall clock, so a redeploy days later reproduces the same Δ7d instead of sliding the window past its slack allowance. - writeSiteData takes updatedAt explicitly for the same reason: the timestamp labels data freshness, not build time. - sortStats is extracted from fetchStats so the build step re-ranks identically from committed metadata. - An agents.yml entry with no metadata yet is omitted with a warning instead of failing the build, which would otherwise block every deploy between merging a new entry and the next nightly run. - update.yml drops the GitHub Pages deploy steps and commits data/metadata.json; ci.yml runs `go run . -build` so a build that would break on deploy breaks in CI first. - site/_headers stops the edge serving a stale data.json after a refresh. - docs/DEPLOY.md covers the Cloudflare setup, including the one-time bootstrap of data/metadata.json that the build depends on. Also carries the in-progress curation work already in the tree: the module rename to awesome-ai-dev-tools, retagged entries, and removal of the archived Roo-Code, void, continue and suna entries.
70 lines
4.0 KiB
Cheetah
70 lines
4.0 KiB
Cheetah
# Awesome AI Dev Tools
|
|
|
|
> Curated ranking of AI-powered developer tools, sorted by GitHub stars.
|
|
> Updated daily by GitHub Actions.
|
|
|
|
📊 **[Interactive dashboard with star-history charts →](https://awesome-ai-dev-tools.pages.dev/)**
|
|
|
|
**Last updated:** {{.UpdatedAt}} · **Tracked:** {{.Total}} repos
|
|
{{- if .TopMover.HasMover }}
|
|
**Top 7-day mover:** [{{ .TopMover.NameWithOwner }}]({{ .TopMover.URL }}) ({{ formatDelta .TopMover.Delta true }} stars)
|
|
{{- end }}
|
|
|
|
| # | Repo | Stars | Δ7d | Language | Last push | Description |
|
|
|---|------|------:|----:|----------|-----------|-------------|
|
|
{{- range .Rows }}
|
|
| {{ .Rank }} | [{{ .NameWithOwner }}]({{ .URL }}) | {{ formatStars .Stars }} | {{ formatDelta .Delta7d .HasDelta }} | {{ .Language }} | {{ .PushedAt }} | {{ .Description }} |
|
|
{{- end }}
|
|
|
|
---
|
|
|
|
## How it works
|
|
|
|
1. `data/agents.yml` is the curated source list.
|
|
2. A daily GitHub Actions workflow (`.github/workflows/update.yml`) runs the Go updater.
|
|
3. The updater fetches live repo metadata via the GitHub GraphQL API in one batched query.
|
|
4. Star counts are appended to `data/history.jsonl` for 7-day delta computation.
|
|
5. This `README.md` and `data/metadata.json` are regenerated and committed back to the repo.
|
|
6. That push triggers Cloudflare Pages, which runs `go run . -build` to render the [dashboard](https://awesome-ai-dev-tools.pages.dev/) from the committed data — no API token needed at build time. See [docs/DEPLOY.md](./docs/DEPLOY.md).
|
|
|
|
**Δ7d:** Change in stars over the past 7 days; `—` means fewer than 7 days of history.
|
|
|
|
## Contributing
|
|
|
|
**Inclusion criteria** — a repo belongs on this list when it is:
|
|
|
|
1. **A developer tool built around AI** — something a developer uses to build software, where an LLM is central to what it does. That covers agents that write, edit, or review code; agent development environments that run and coordinate them; and AI-assisted editors, terminals, and review tools. Libraries, SDKs, model weights, and prompt or skill collections are out of scope — this list ranks tools you *use*, not building blocks you *import*. General-purpose assistants and multi-agent "digital workforce" apps are out as well, even when one of their agents can write code — the tool itself has to be aimed at building software.
|
|
2. **At least 1,000 GitHub stars** — a hard floor, enforced by the updater. An entry below it is dropped from the ranking automatically, so the threshold is never waived for an individual entry.
|
|
3. **Open source and actively maintained** — no push in **6 months** means the entry is dropped. The daily run flags anything past **3 months** for review, so the ranking reflects tools people can actually use today.
|
|
|
|
Archived or abandoned repos are kept only when they are historically significant, and are marked as such in [`data/agents.yml`](data/agents.yml).
|
|
|
|
Add an agent to [`data/agents.yml`](data/agents.yml):
|
|
|
|
```yaml
|
|
agents:
|
|
- owner: github-username-or-org
|
|
repo: repository-name
|
|
tags: [terminal, byo-model, interactive, community]
|
|
```
|
|
|
|
**Tags** describe a tool across five facets — the [dashboard](https://awesome-ai-dev-tools.pages.dev/) filters on them, OR within a facet and AND across facets:
|
|
|
|
| Facet | Tags |
|
|
|-------|------|
|
|
| Surface (at least one) | `terminal` · `editor-plugin` · `ide` · `desktop` · `web` · `self-hosted` |
|
|
| Model access | `byo-model` · `single-vendor` · `local-models` |
|
|
| Workflow | `interactive` · `autonomous` · `review` · `app-builder` · `research` · `orchestration` |
|
|
| Integration | `mcp` · `acp` · `headless` |
|
|
| Origin (at most one) | `vendor` · `community` |
|
|
|
|
Apply a tag only when the repo's own README, docs, or topics back it up. See [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) for what each tag means.
|
|
|
|
Open a PR. The next daily run picks it up automatically.
|
|
|
|
PRs are validated automatically by CI (`go run . -check`): owner/repo must be non-empty and look like a real GitHub slug, every tag must come from the vocabulary above with at least one surface tag and at most one origin tag, and duplicates (case-insensitive) are rejected.
|
|
|
|
## License
|
|
|
|
Apache-2.0
|