EasyEDA Pro API Bridge
easyeda/easyeda-api-skill
Gives an agent the EasyEDA Pro API reference and a WebSocket bridge to run code in a live EasyEDA client, for PCB, schematic and library work and extension development.
Search Mouser Electronics for electronic components — secondary source for prototype orders.
$ npx skills add aklofas/kicad-happy --skill mouser -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aklofas/kicad-happy mouser --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aklofas/kicad-happy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/mouser .claude/skills/mouser && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mouser" agent skill from https://github.com/aklofas/kicad-happy/tree/main/skills/mouser into .claude/skills/mouser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mouser", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aklofas/kicad-happy/tree/main/skills/mouserType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aklofas/kicad-happy --skill mouser -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aklofas/kicad-happy mouser --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aklofas/kicad-happy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/mouser .agents/skills/mouser && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mouser" agent skill from https://github.com/aklofas/kicad-happy/tree/main/skills/mouser into .agents/skills/mouser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mouser", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aklofas/kicad-happy --skill mouser -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aklofas/kicad-happy mouser --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aklofas/kicad-happy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/mouser .cursor/skills/mouser && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mouser" agent skill from https://github.com/aklofas/kicad-happy/tree/main/skills/mouser into .cursor/skills/mouser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mouser", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aklofas/kicad-happy.git --path skills/mouser--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aklofas/kicad-happy --skill mouser -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aklofas/kicad-happy mouser --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aklofas/kicad-happy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/mouser .gemini/skills/mouser && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mouser" agent skill from https://github.com/aklofas/kicad-happy/tree/main/skills/mouser into .gemini/skills/mouser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mouser", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aklofas/kicad-happy mouserInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aklofas/kicad-happy --skill mouser -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aklofas/kicad-happy.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/mouser .github/skills/mouser && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mouser" agent skill from https://github.com/aklofas/kicad-happy/tree/main/skills/mouser into .github/skills/mouser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mouser", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aklofas/kicad-happy --skill mouser -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aklofas/kicad-happy mouser --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aklofas/kicad-happy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/mouser .opencode/skills/mouser && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mouser" agent skill from https://github.com/aklofas/kicad-happy/tree/main/skills/mouser into .opencode/skills/mouser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mouser", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mouserSearch Mouser Electronics for electronic components — secondary source for prototype orders.
Mouser is an agent skill from aklofas/kicad-happy. Search Mouser Electronics for electronic components — secondary source for prototype orders. Find parts, check pricing/stock, download datasheets, analyze specifications. Use with KiCad for BOM creation and part selection. Also supports batch MPN-list seeding (--mpn-list) for bulk datasheet workflows without a KiCad project. Use this skill when the user specifically mentions Mouser, when DigiKey is out of stock or has worse pricing, when comparing prices across distributors, or when searching for parts that…
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/fetch_datasheet_mouser.py` and `scripts/sync_datasheets_mouser.py`).
It works with EasyEDA. The repository describes itself as: AI coding agent skills for KiCad electronics design. Works with Claude Code and OpenAI Codex. Analyze schematics, review PCB layouts, EMC pre-compliance, SPICE simulation… The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0684046. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
mouser.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
MOUSER_SEARCH_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Mouser loads about 2.8k tokens when it runs. Until then it costs about 155 tokens; SKILL.md has 1,038 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from aklofas/kicad-happy at commit 0684046, republished under its MIT licence (© aklofas). 1,038 words, ~2,845 tokens.
.claude/skills/mouser/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.| Skill | Purpose |
|---|---|
kicad | Schematic analysis — extracts MPNs for part lookup |
bom | BOM management — orchestrates sourcing across distributors |
digikey | Primary prototype source (prefer for datasheets — direct PDF links) |
spice | Uses Mouser parametric data for behavioral SPICE models |
Mouser is the secondary source for prototype orders — use when DigiKey is out of stock or has worse pricing. For production orders, see lcsc/jlcpcb. For BOM management and export workflows, see bom. For datasheets, prefer DigiKey's API (direct PDF links) — Mouser blocks automated PDF downloads.
Mouser uses simple API key authentication — no OAuth, no tokens, no callback URLs. The Search API key is a UUID passed as a query parameter.
Set the environment variable before running the scripts:
export MOUSER_SEARCH_API_KEY=your-search-api-key-uuidIf credentials are stored in a central secrets file (e.g., ~/.config/secrets.env), load them first:
export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)All search endpoints use the Search API key as a query parameter: ?apiKey=<key>. Content-Type is application/json for all POST requests.
POST /api/v1/search/keyword?apiKey=<key>{
"SearchByKeywordRequest": {
"keyword": "100nF 0402 ceramic capacitor",
"records": 50,
"startingRecord": 0,
"searchOptions": "InStock"
}
}searchOptions: "None" | "Rohs" | "InStock" | "RohsAndInStock"records: max 50 per requeststartingRecord: offset for paginationPOST /api/v1/search/partnumber?apiKey=<key>{
"SearchByPartRequest": {
"mouserPartNumber": "GRM155R71C104KA88D|RC0402FR-0710KL",
"partSearchOptions": "Exact"
}
}|)partSearchOptions: "Exact" | "BeginsWith" | "Contains"V2 adds manufacturer filtering and pagination by page number.
POST /api/v2/search/keywordandmanufacturer?apiKey=<key>{
"SearchByKeywordMfrNameRequest": {
"keyword": "LMR51450",
"manufacturerName": "Texas Instruments",
"records": 25,
"pageNumber": 1,
"searchOptions": "InStock"
}
}Note: the wrapper object name is SearchByKeywordMfrNameRequest (not SearchByKeywordMfrRequest — the V1 name is deprecated).
POST /api/v2/search/partnumberandmanufacturer?apiKey=<key>GET /api/v2/search/manufacturerlist?apiKey=<key>Returns the full list of manufacturer names for use in filtered searches.
These still work but V2 equivalents are preferred:
POST /api/v1/search/keywordandmanufacturer → use V2POST /api/v1/search/partnumberandmanufacturer → use V2GET /api/v1/search/manufacturerlist → use V2All search endpoints return the same response format:
{
"Errors": [],
"SearchResults": {
"NumberOfResult": 142,
"Parts": [...]
}
}| Field | Type | Description |
|---|---|---|
MouserPartNumber | string | Mouser's internal part number (prefixed, e.g., 81-GRM155R71C104KA88) |
ManufacturerPartNumber | string | Manufacturer's part number (MPN) — use for cross-distributor matching |
Manufacturer | string | Manufacturer name |
Description | string | Product description |
Category | string | Product category |
DataSheetUrl | string | URL to datasheet PDF (Mouser-hosted — see Datasheet section) |
ProductDetailUrl | string | URL to Mouser product page |
ImagePath | string | Product image URL |
Availability | string | Human-readable stock text (e.g., "2648712 In Stock") |
AvailabilityInStock | string | Numeric stock quantity (as string) |
AvailabilityOnOrder | array | Incoming stock: [{Quantity, Date}] |
LeadTime | string | Factory lead time (e.g., "84 Days") |
LifecycleStatus | string|null | "New Product", "End of Life", etc. |
IsDiscontinued | string | "true" or "false" (string, not boolean) |
SuggestedReplacement | string | Replacement MPN if discontinued |
Min | string | Minimum order quantity (as string) |
Mult | string | Order multiple (as string) |
Reeling | bool | Tape-and-reel packaging available |
ROHSStatus | string | RoHS compliance status |
PriceBreaks | array | Tiered pricing: [{Quantity, Price, Currency}] |
ProductAttributes | array | Parametric specs: [{AttributeName, AttributeValue}] |
AlternatePackagings | array|null | Alternate packaging MPNs: [{APMfrPN}] |
SurchargeMessages | array | Tariff/surcharge info: [{code, message}] |
ProductCompliance | array | HTS codes, ECCN: [{ComplianceName, ComplianceValue}] |
UnitWeightKg | object | {UnitWeight: <float>} in kg |
"$0.10", not a float. Parse it before comparing.AvailabilityInStock returns "2648712" not 2648712."true" or "false", not boolean.81-GRM155R71C104KA88 — the prefix is Mouser-specific. Use ManufacturerPartNumber for cross-referencing.SearchByKeywordMfrNameRequest, not SearchByKeywordMfrRequest.SurchargeMessages may contain US tariff percentages — useful for cost estimation.AvailabilityOnOrder shows incoming stock quantities and expected dates.Mouser's DataSheetUrl field points to Mouser-hosted URLs (mouser.com/datasheet/...). These URLs block automated downloads — they return an HTML "Access denied" page when fetched with Python/curl/wget, even with browser User-Agent headers. The download scripts handle this with a multi-strategy approach:
Note: Mouser's product pages return 403 for most automated requests, so strategy 2 has limited success. DigiKey and LCSC are more reliable datasheet sources.
Use sync_datasheets_mouser.py to maintain a datasheets/ directory alongside a KiCad project. Same workflow and manifest.json format as the DigiKey skill.
# Sync datasheets for a KiCad project
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch>
# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --dry-run
# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --force
# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> -o ./my-datasheets
# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --parallel 3
# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_mouser.py --mpn-list mpns.txt --output ./datasheetsMPN-list batch mode (KH-312) — when you have a list of MPNs but no
KiCad project to point at (harness datasheet seeding, bulk part-library
seeding). One MPN per line; blank lines and # comments (full-line and
inline) are skipped; generic values (100nF, DNP) are filtered via
is_real_mpn() and de-duplicated. Output defaults to ./datasheets/ in
the current working directory when --output is omitted.
Rate limiting — the script paces API calls with a 1.0s delay between
requests by default (Mouser's Search API allows 30 calls/min on the free
tier; 1.0s stays comfortably under). Override with --delay <seconds> if
you have a higher-tier key or want to slow things down further.
Use fetch_datasheet_mouser.py for one-off downloads.
# Search by MPN (uses Mouser API)
python3 <skill-path>/scripts/fetch_datasheet_mouser.py --search "TPS61023DRLR" -o datasheet.pdf
# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_mouser.py "https://example.com/datasheet.pdf" -o datasheet.pdf
# JSON output
python3 <skill-path>/scripts/fetch_datasheet_mouser.py --search "ADP1706" --jsonThe scripts try multiple sources in order:
DataSheetUrl from the API responseplaywright is installed, uses headless Chromium as a last resortWhen all methods fail, provide the ProductDetailUrl to the user so they can download from the Mouser product page in their browser.
If no API key is available, search Mouser by fetching product pages directly:
https://www.mouser.com/c/?q=<query>Include key parameters in the query:
Min and Mult fields matter — some parts have minimum order qty or must be ordered in multiplesSurchargeMessages may include US tariff percentages — factor into cost estimatesAvailabilityOnOrder shows incoming stock with expected datesIsDiscontinued and LifecycleStatus before selecting parts© aklofas, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in skills/mouser of aklofas/kicad-happy.
Open the folder on GitHubat commit 0684046
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in aklofas/kicad-happy, which our catalogue first saw on October 7, 2026.
Mouser next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mouser this skillaklofas/kicad-happy | 1.4k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| EasyEDA Pro API Bridgeeasyeda/easyeda-api-skill | 872 | — | ~7.8k | Automated safety check: Pass | MIT | |
| EasyEDA to KiCad Importerjamro/tiny-engineer | 580 | — | ~569 | Automated safety check: Pass | Custom licence | |
| Kicad Manufacturemixelpixx/Konnect | 917 | — | ~2.2k | Automated safety check: Pass | AGPL-3.0 | |
| Datasheetsbiosshot/easyeda-copilot | 168 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Easyeda Agentzhoushoujianwork/easyeda-agent | 605 | — | ~2.1k | Automated safety check: Pass | MIT |
easyeda/easyeda-api-skill
Gives an agent the EasyEDA Pro API reference and a WebSocket bridge to run code in a live EasyEDA client, for PCB, schematic and library work and extension development.
jamro/tiny-engineer
Imports an LCSC part into a Tiny Engineer KiCad board as library files (symbol, footprint, 3D model) using easyeda2kicad and a bundled script.
mixelpixx/Konnect
Manufacturing and fabrication workflow for KiCAD projects via MCP tools.
biosshot/easyeda-copilot
Download component datasheet PDFs, locate useful pages, and read verified pinouts, electrical limits, thermal data and application notes using the agent's PDF tools.
zhoushoujianwork/easyeda-agent
通过本地 easyeda CLI、daemon 和连接器操作嘉立创EDA专业版(EasyEDA Pro):用可迁移样例和参数化数据构建或修复原理图、布局布线 PCB,并回读连接、几何、DRC 与保存结果。适用于已有工程操作及数据驱动电路设计。
jamro/tiny-engineer
Checks a KiCad board's production BOM against the schematic, PCB footprints and JLCPCB's parts catalog, then explains which failures are real.
aklofas/kicad-happy
Extract structured specifications from electronic component datasheet PDFs — pinouts, electrical characteristics, peripherals, topology, and features.
aklofas/kicad-happy
EMC pre-compliance risk analysis for KiCad PCB designs — 18 check categories, 44 rule IDs covering ground planes, decoupling, I/O filtering, switching harmonics, clock routing, differential pair…
aklofas/kicad-happy
BOM (Bill of Materials) management for electronics projects — the workflow skill that coordinates DigiKey, Mouser, LCSC, element14, JLCPCB, PCBWay, and KiCad skills around a unified BOM lifecycle.
aklofas/kicad-happy
Search DigiKey for electronic components and download datasheets — primary source for prototype orders and the preferred API method for fetching datasheets.
aklofas/kicad-happy
Search Newark, Farnell, and element14 for electronic components — find parts by MPN or distributor part number, check pricing/stock, download datasheets, analyze specifications.
aklofas/kicad-happy
Analyze KiCad projects and PDF schematics: schematics, PCB layouts, Gerbers, footprints, symbols, netlists, and design rules.
Works with
Search Mouser Electronics for electronic components — secondary source for prototype orders. Mouser is an agent skill from aklofas/kicad-happy. Search Mouser Electronics for electronic components — secondary source for prototype orders.
Mouser fits situations like: the user specifically mentions Mouser; digiKey is out of stock; has worse pricing; comparing prices across distributors.
Run `npx skills add aklofas/kicad-happy --skill mouser -a claude-code`. Or copy the skill folder (skills/mouser in aklofas/kicad-happy) into .claude/skills/mouser in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aklofas/kicad-happy --skill mouser -a codex`. Or copy the skill folder (skills/mouser in aklofas/kicad-happy) into .agents/skills/mouser in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aklofas/kicad-happy --skill mouser -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mouser, .gemini/skills/mouser, .github/skills/mouser and .opencode/skills/mouser in your project.
Going by SKILL.md and its folder, Mouser needs Python for the scripts in its folder, the command-line tools its instructions call (python3) and credentials named MOUSER_SEARCH_API_KEY. Our summary lists: Python 3; A credential in MOUSER_SEARCH_API_KEY.
SKILL.md names 1 domain. In commands or code: mouser.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Mouser is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Mouser: EasyEDA Pro API Bridge (easyeda/easyeda-api-skill, 872 stars), EasyEDA to KiCad Importer (jamro/tiny-engineer, 580 stars), Kicad Manufacture (mixelpixx/Konnect, 917 stars) and Datasheets (biosshot/easyeda-copilot, 168 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aklofas (a GitHub user) maintains it in aklofas/kicad-happy, which has 1,356 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 6, 2026.
Source: aklofas/kicad-happy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.