deco
Skill0 starsChanged 4 days agoMITView on GitHub
TP-Link Deco BE85 mesh router management. Use when: user asks about home network / Wi-Fi status, connected clients, mesh (Deco) nodes, toggling or reconfiguring Wi-Fi (incl. guest Wi-Fi), WAN/internet status, router system logs, firmware update availability, the last speed test, or rebooting the Deco. Controls the router via the deco-be85-api REST wrapper.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- codex-model-profilesSkill
- cognitive-rhythm-writingSkill
- daikinSkill
- epgstationSkill
- japanese-tech-writingSkill
- piholeSkill
- popin-aladdinSkill
- stirling-pdfSkill
- switch2-controlSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Call endpoints sequentially.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deco BE85
Base URL: https://deco-api.msageha.net/api (FastAPI wrapper around the TP-Link
Deco BE85 local API). https://deco.msageha.net is the router's own web UI, not
this API. Requests to this instance don't need any authentication
header/cookie — the server logs into the router itself with stored credentials.
The reverse proxy only admits allowlisted LAN client IPs — a 403 with an nginx
HTML page means the caller isn't on that list, not an API error.
Key facts
- Login to the router is lazy: the first call after startup/idle triggers it and is slower. Expired sessions are re-logged-in and retried automatically.
- Requests are serialized behind a server-side lock (single router session). Call endpoints sequentially; don't fan out parallel requests.
bandisband2_4/band5_1/band6;networkishost/guest.GET /wirelessreturnsssid/passwordbase64-encoded; write endpoints accept them in plain text (the server encodes them). Decodessidfor display; don't decode or printpasswordunless the user explicitly asks for the Wi-Fi password.- Everything under
GET /network/*,/wireless/*,/device/*,/cloud/*and/system/*is read-only.GET /system/firmwareasks TP-Link cloud and takes a few seconds;GET /system/logpages the router log (level1..8 from/system/log-types,index,limit). - Confirm with the user before any write: Wi-Fi toggles/config changes briefly
disconnect clients on that band,
POST /reboot(requiresconfirm: true) takes the whole network down for minutes, andPOST /rawwith a non-readoperationcan change arbitrary router settings. - Errors:
401router auth failure,502router-side error (detail+error_code),504router unreachable,422request validation (missingconfirm, unknown field, bad enum),400confirm: falseon/reboot,404/rebootfound no Deco units.
Core operations
| Task | Endpoint |
| Overview (WAN/CPU/mem/node & client counts) | GET /dashboard |
| Deco units (mesh nodes) | GET /devices |
| Connected clients | GET /clients?online_only=true |
| Blocked clients | GET /clients/blocked |
| Wi-Fi settings (all bands, host/guest) | GET /wireless |
| Wi-Fi ON/OFF per band | POST /wireless |
| Change SSID/password/channel etc. | POST /wireless/config |
| Radio details (DFS / beamforming / operation mode / bridge / 802.11r roaming / 160 MHz) | GET /wireless/{power,beamforming,operation-mode,bridge,roaming,bandwidth} |
| WAN / internet / LAN / IPv6 status | GET /network/wan, /network/internet, /network/lan, /network/ipv6 |
| WAN details (port mode / DHCP dial / IGMP / fast xmit / VLAN / DDNS / MAC clone) | GET /network/{wan-mode,dhcp-dial,igmp,fast-xmit,vlan,ddns,mac-clone} |
| CPU / memory usage | GET /network/performance |
| Router mode / time settings / last speed test | GET /device/mode, /device/time, /device/speedtest |
| TP-Link cloud binding / ID login state | GET /cloud/device-info, /cloud/login-status |
| System log / firmware update check | GET /system/log, GET /system/firmware |
| Component info / UI feature switches / log types | GET /system/component-info, /system/switch-list, /system/log-types |
| Reboot Deco units (destructive) | POST /reboot |
| Any other Deco endpoint (escape hatch) | POST /raw |
| Server health / explicit login | GET /health, POST /login, POST /logout |
Full request/response schemas and ready-to-run curl examples: see references/api-reference.md and references/commands.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

