{"adoption": {"forks": 1258, "observed_at": "2026-08-28T04:04:12.107836+00:00", "stars": 1272}, "canonical_url": "https://ross.abutalabs.com/products/esp-at", "card": {"archived": false, "artifact_type": "framework", "description": "AT application for ESP32/ESP32-C2/ESP32-C3/ESP32-C6/ESP8266", "domain": ["iot", "embedded-systems", "hardware"], "enriched": true, "function": ["embedded", "networking", "middleware", "sdk"], "health_score": 99, "homepage": null, "language": "C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["espressif/esp-at"], "name": "espressif/esp-at", "platform": ["embedded", "iot", "cross-platform"], "pushed_at": "2026-08-19T04:36:50+00:00", "repo": "espressif/esp-at", "stars": 1272, "tags": ["at-commands", "esp-at", "espressif", "wifi", "bluetooth", "uart", "spi", "sdio", "firmware", "esp8266", "esp32-c3", "esp32-c6", "esp32-c2", "esp32-s2", "esp32-c5", "esp32-c61", "wireless-module", "host-controller", "wireless"], "topics": ["esp32", "esp-idf", "at", "uart", "sdio", "spi", "ethernet", "wifi", "ble", "esp8266", "esp32c3", "qcloud", "esp32c2", "esp32c6"], "urls": [], "use_cases": ["add wifi to a microcontroller project without writing wireless drivers", "control an esp32 module from an arduino or stm32 host using at commands", "integrate ble connectivity into an existing product via a companion chip", "use esp32 as a network coprocessor over uart or sdio", "send http or mqtt requests from a resource-constrained mcu through an esp module", "customize at commands for a proprietary host protocol", "flash and build at firmware for esp32-c3, esp32-c6, or esp8266 modules"], "what_it_is": "ESP-AT is Espressif's official AT command firmware and framework that turns ESP32-series and ESP8266 SoCs into wireless connectivity add-on modules controlled by a host MCU over UART, SPI, SDIO, or Ethernet. It provides an easy-to-parse command-response protocol so resource-constrained hosts can add Wi-Fi and Bluetooth without implementing the wireless stack themselves.", "when_to_avoid": ["you can run your application directly on the esp32 itself and don't need a separate host", "you need fine-grained, low-latency control better served by esp-hosted or a native sdk", "your host platform has plenty of resources and a native wireless stack is simpler", "you need protocols not covered by the at command set and don't want to write custom commands"], "when_to_choose": ["your host mcu is too resource-constrained to run a full tcp/ip or ble stack", "you want official, maintained firmware with extensive documentation and prebuilt releases", "you need rapid integration of wifi/ble into an existing product with a simple command-response interface", "you want to customize or extend the at command set for your own module"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/esp-at", "repo": "espressif/esp-at", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.107836+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:03:16.973625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bea161dcf9f0c0ed8b2e72acc4c7edede852e05384cc8660c6ccc1305c9f095f", "fetched_at": "2026-08-28T04:04:12.107836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/espressif/esp-at"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 74}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3521, "days_push": 14, "days_rel": 16, "gap_med": 103.5, "n_releases_24m": 9}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}