A searchable, self-updating catalog of every library in the Arduino Library Manager — curated picks, fuzzy search, related libraries, and theme browsing for serendipitous discovery.
Live site: https://thearduinolibrary.com/
The Arduino Library Manager lets anyone publish libraries for the Arduino IDE. There are over 9,500 of them and no built-in way to browse or search across the catalog.
This site fixes that. It polls Arduino's release index hourly, enriches each library with GitHub metadata, and presents the result through a brutalist black-and-white UI designed for keyboard navigation and clean discovery.
Type into the search box. The matcher scans names, authors, categories, maintainers, and descriptions. Results are bucketed by match type with "Jump to" navigation between sections.
The matcher is fuzzy (tolerates 1-character typos on 4+ character queries)
and synonym-aware (wifi also matches wireless/esp/network;
screen matches display/lcd/oled/tft; etc.). A "Did you mean…?"
suggestion appears for zero-result queries.
- Curated Discoveries (top of page): three pick streams — Editor Picks, themed rows (IoT, Sensors, Display, Motor Control, Communication), and This Week's new/updated libraries.
- Browse By Subject: click to filter by category (Sensors, Communication, Display, …).
- Browse By Platform: click to filter by architecture (avr, esp32, esp8266, samd, …).
Click a filter again to clear it.
The toolbar offers:
| Sort | What it shows |
|---|---|
| Recent Updates (default) | Recently updated libraries |
| New Additions | Recently added to the registry |
| Alphabetical (A-Z / Z-A) | By name |
| Most Popular | By GitHub stars |
| Heavily Relied | Libraries that many others depend on |
| Surprise Me | Daily-deterministic quality pick, lifted to position 1 |
| Hidden Gems | <20 stars, recently updated, has description |
| Trending | Top 20 by 7-day star delta |
| Forgotten Classics | 100+ stars, no update in 12+ months |
Each card follows a catalog-card layout (top to bottom):
- Call-number row — repository
owner/namein small monospace - Title — the library name, bold uppercase (22 px on desktop, the visual anchor of the card)
- By-statement —
/ by <author>in italic, ISBD style - Description — up to 3 lines
- Subject chips — category + top architectures, uppercase, dot-separated
- Meta row — version, ★ stars, last-updated; license right-aligned
Pick-attribution (editor / themed / new / updated) lives in a small corner badge with a matching dot next to the call number — the old left-edge color stripe is gone.
Card dimensions: 380 × 280 px on desktop, scaling down through 340 × 260 (≤1200 px), 280 × 240 (≤768 px), and 220 × 220 (≤480 px).
Click for the full detail modal — version history, dependencies, supported architectures, and Related Libraries (scored by category, architecture overlap, language, topics, and star proximity).
The catalog is also available as an MCP (Model Context Protocol) server, so any MCP-compatible agent — ZCode, Claude Desktop, Cursor, and others — can search Arduino libraries programmatically and get back ranked results with install snippets.
The server exposes a single search_libraries tool: pass a natural-language query ("oled display", "stepper motor", "esp32 wifi") and optional filters (category, architecture, minimum GitHub stars), and it returns a concise ranked list — each entry includes the version, category, architectures, stars, dependencies, and a ready-to-paste arduino-cli lib install "Name" command. It fetches the enriched index from the live site with a one-hour cache, so it runs on any machine without a local checkout.
Full setup instructions and configuration snippets for ZCode, Claude Desktop, and Cursor are in the mcp-server/ directory:
👉 github.com/npuckett/arduino-libBrowser/tree/main/mcp-server
Every hour the pipeline fetches Arduino's
library_index.json.gz
with an ETag — most of the time it's a 304 No-Content and the workflow
exits in under a second. When new releases land, the pipeline diffs them
against the existing database by SHA, enriches only the changed libraries
with GitHub metadata, and writes the result back. Every successful pipeline
run redeploys GitHub Pages.
API cost on a quiet day: 1 HTTP call. On a busy day: ~50–200 GitHub calls (every repo that actually changed). The system is designed to stay well under GitHub's 5,000/hour rate limit on a free PAT.
The technical reference for the system lives in docs/:
| Document | What's in it |
|---|---|
| Architecture | Technical reference: data sources, change-detection algorithm, schema versioning, state management, performance, design choices |
| Pipeline operations | Runbook: local development, cron tiers, common tasks (force re-enrich, recover from bad sync, inspect changes), debugging |
| Testing | Test suite: 125 unit tests + 25 E2E + visual snapshots; how to run, how to add tests, when to regenerate baselines |
| Curated Picks | The three pick streams: editor picks (editors.json), themed auto-picks (themes.json), and computed picks. Schemas, examples, and rules |
| Contributing | Recipes: adding a sort mode, theme, editor, computed pick, library field, or GitHub Action |
The easiest contributions:
- Add yourself as an editor in
editors.jsonand pick a library you love. - Propose a new theme in
themes.json. - Open an issue for bugs, feature requests, or feedback.
For code contributions see CONTRIBUTING.md.
This project is open source. Individual Arduino libraries maintain their own licenses — check each library's repository for specific terms.
