Debug
asgeirtj/system_prompts_leaks
Enable debug logging for this session and help diagnose issues
A skill your agent uses when inspecting or troubleshooting a running Simple IoT instance — checking what a node's current values are, whether points are flowing, whether sync is replicating, or what…
$ npx skills add simpleiot/simpleiot --skill siot-debug -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install simpleiot/simpleiot siot-debug --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/simpleiot/simpleiot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/siot-debug .claude/skills/siot-debug && 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 "siot-debug" agent skill from https://github.com/simpleiot/simpleiot/tree/master/.claude/skills/siot-debug into .claude/skills/siot-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "siot-debug", 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/simpleiot/simpleiot/tree/master/.claude/skills/siot-debugType 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 simpleiot/simpleiot --skill siot-debug -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install simpleiot/simpleiot siot-debug --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simpleiot/simpleiot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/siot-debug .agents/skills/siot-debug && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "siot-debug" agent skill from https://github.com/simpleiot/simpleiot/tree/master/.claude/skills/siot-debug into .agents/skills/siot-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "siot-debug", 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 simpleiot/simpleiot --skill siot-debug -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install simpleiot/simpleiot siot-debug --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simpleiot/simpleiot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/siot-debug .cursor/skills/siot-debug && 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 "siot-debug" agent skill from https://github.com/simpleiot/simpleiot/tree/master/.claude/skills/siot-debug into .cursor/skills/siot-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "siot-debug", 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/simpleiot/simpleiot.git --path .claude/skills/siot-debug--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 simpleiot/simpleiot --skill siot-debug -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install simpleiot/simpleiot siot-debug --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simpleiot/simpleiot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/siot-debug .gemini/skills/siot-debug && 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 "siot-debug" agent skill from https://github.com/simpleiot/simpleiot/tree/master/.claude/skills/siot-debug into .gemini/skills/siot-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "siot-debug", 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 simpleiot/simpleiot siot-debugInstalls 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 simpleiot/simpleiot --skill siot-debug -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/simpleiot/simpleiot.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/siot-debug .github/skills/siot-debug && 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 "siot-debug" agent skill from https://github.com/simpleiot/simpleiot/tree/master/.claude/skills/siot-debug into .github/skills/siot-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "siot-debug", 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 simpleiot/simpleiot --skill siot-debug -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install simpleiot/simpleiot siot-debug --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simpleiot/simpleiot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/siot-debug .opencode/skills/siot-debug && 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 "siot-debug" agent skill from https://github.com/simpleiot/simpleiot/tree/master/.claude/skills/siot-debug into .opencode/skills/siot-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "siot-debug", 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.
siot-debugA skill your agent uses when inspecting or troubleshooting a running Simple IoT instance — checking what a node's current values are, whether points are flowing, whether sync is replicating, or what…
Siot Debug is an agent skill from simpleiot/simpleiot. Use when inspecting or troubleshooting a running Simple IoT instance — checking what a node's current values are, whether points are flowing, whether sync is replicating, or what is in the JetStream store. Also covers questions about an instance's identity and structure — node IDs, a node that appears in two places, a node that was deleted and is still there, which instance wrote a value. Triggers on requests like "check the X node", "the value is not changing", "is sync working", "what is in the store", "why is…
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Simple IoT cloud/edge application/framework. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 822524b. 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.
Shell commands in SKILL.md call:
curljqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SIOT_AUTH_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Siot Debug loads about 3.5k tokens when it runs. Until then it costs about 162 tokens; SKILL.md has 1,614 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); files beside SKILL.md are not scanned.
The full file from simpleiot/simpleiot at commit 822524b, republished under its Apache-2.0 licence (© simpleiot). 1,614 words, ~3,531 tokens.
.claude/skills/siot-debug/SKILL.md (or your agent's skills folder).Five ways to look at a live instance, roughly in the order to reach for them:
| Tool | Answers |
|---|---|
siot export | What is the current configuration and the latest value of every point |
siot dump | What the instance actually is: node and edge IDs, extra parents, deleted nodes, point origins, streams |
siot log | Which points are flowing right now, decoded, with node names and types |
nats stream | What is persisted, how much of it, and how far consumers have read |
| HTTP API | The same node data as JSON, including point timestamps and origins |
Start with export when the question is about configuration or values, and
dump when it is about identity, structure, or replication. Both render the
whole tree in one command and need no authentication.
A machine often runs several instances at once (a device and its upstream, or a released binary alongside a development build). Identify them before connecting to anything.
ps aux | grep -i siot | grep -v grep
ls -l /proc/<pid>/cwd # which data directory
tr '\0' '\n' < /proc/<pid>/environ | grep SIOT_ # port overrides
ss -lntp | grep <pid> # ports actually boundDefault ports. The others follow SIOT_NATS_PORT, so an instance started with
SIOT_NATS_PORT=4232 serves HTTP on 4233:
4222 NATS (SIOT_NATS_PORT)4223 HTTP / web UI (SIOT_HTTP_PORT overrides)4224 NATS monitoring, loopback only (SIOT_NATS_MONITOR_PORT overrides)The data directory is the process working directory, so /proc/<pid>/cwd tells
you which jetstream/ tree belongs to which instance. Confirm the port from
ss rather than assuming the default — a second instance will have been started
with overrides.
siot export./siot export -natsServer nats://127.0.0.1:4222Output is the node tree in configuration YAML: node type as the key, each point
type as a key under it, children nested. Add -nodeID <id> for a subtree and
-token (or SIOT_AUTH_TOKEN) if the instance requires authentication.
To see whether something is moving, run it twice and compare the one field you care about:
for i in 1 2 3; do
./siot export -natsServer nats://127.0.0.1:4222 2>/dev/null | grep -E '^ value:'
sleep 3
doneThree samples beat two: they show the shape of the signal, not just that a
number differs. For a 0.1 Hz sine with min 0 and max 10 sampled every 3 s,
expect 5 + 5·sin(θ) at 108° steps — 9.76, 5.00, 0.24 is a correct sine, and
recognizing that saves confirming the generator any other way.
siot dump./siot dump -natsServer nats://127.0.0.1:4222Export hides the identifiers so its output can be applied to another instance. Dump reports exactly those identifiers, because they are what explains behavior: the root node ID the instance replicates under, every node ID and type, deleted nodes, and every parent of each node.
instance
root 5bf3ea6b-d635-440e-8bf2-55cc60ac716a device "downstream"
streams
boundary 5bf3ea6b-... origin 48aa6237-... 3 msgs (replica)
boundary 5bf3ea6b-... origin 5bf3ea6b-... 28649 msgs (own)
tree from 5bf3ea6b-d635-440e-8bf2-55cc60ac716a
variable c149d538-4f38-4037-8f0f-4a0200ab39ce "Var1"
sync f993b4e6-41a7-4449-8787-477070c14a48 "Sync to upstream"
signalGenerator 6e04a088-d4f6-4039-a2be-5a10467bcdf2 "Sine wave"Two flags add detail, and -all turns on both:
-points prints every node point and edge point with the origin that wrote it
and its timestamp. This is what to compare when two instances disagree about a
value: the origin names which instance wrote it, and the timestamp says which
side is behind.-streams lists the boundary-origin streams with message counts and labels
each own, replica, or written by this instance, which shows in one line
who this instance replicates with.-nodeID <id> limits the tree to one subtree.
Three things dump reports that no other command does:
[also under <id>]. A node
that should live in one place and appears in two explains duplicated points
and surprising edge behavior.[deleted]. A node that should be gone and
is not explains as much as a missing one.anomalies section lists any node other than the root carrying the
virtual root parent. That means the instance serves a second root, which
usually follows a bad sync or a hand-edited store.The same environment precedence applies as everywhere else — SIOT_NATS_SERVER
wins whenever -natsServer is left at its default, nats://127.0.0.1: followed
by SIOT_NATS_PORT. Read the connect banner in the output before trusting a
dump.
siot log./siot log -natsServer nats://<ip address>:4222This subscribes to p.> and prints every node point decoded, so you see the
values themselves rather than binary payloads:
2026/08/10 09:14:22 NODE: Signal Generator (signalGenerator) (a1b2c3d4-...)
- POINT: T:value V:9.755 O:a1b2c3d4 2026-08-10T09:14:22-04:00Each message starts with the node description, node type, and node ID, followed
by one line per point: T: type, V: value or text, K: key when set, O:
origin, Tomb for a tombstoned point, and the point timestamp.
That combination answers most "is anything happening" questions in one command:
it shows which point types are live, how fast they update, what the values are,
and which instance originated them. Use -token (or SIOT_AUTH_TOKEN) when the
instance requires authentication.
The command resolves each node's description over NATS as messages arrive, so it
needs the same access export does and runs until interrupted.
The address is whatever the instance actually binds. Use 127.0.0.1 for a local
process and the device address for a remote one:
./siot log -natsServer nats://192.168.1.50:4222SIOT_NATS_SERVER takes precedence whenever -natsServer holds the default
nats://127.0.0.1:<SIOT_NATS_PORT> (4222 unless the port is set). The
commands consult the environment only when the flag is left at its default, and
passing that value explicitly is indistinguishable from omitting it. A shell
prepared by envsetup.sh for a second instance exports SIOT_NATS_SERVER, so
-natsServer nats://127.0.0.1:4222 connects to the other instance instead. The
connect banner names the server actually used — read it before trusting the
output. unset SIOT_NATS_SERVER to take control. The same applies to export,
dump, import, and store.
Filter with grep when a busy instance produces more than you want to read:
./siot log -natsServer nats://127.0.0.1:4222 | grep -A2 'Modbus'siot log renders node points. For edge points and high-rate points, and for
measuring raw message rates, subscribe with nats:
nats -s nats://127.0.0.1:4222 sub 'ep.>' # edge points
nats -s nats://127.0.0.1:4222 sub 'phrup.>' # high-rate points
nats -s nats://127.0.0.1:4222 sub 'p.<nodeID>.>' # one node, rawSubject forms:
p.<nodeID>.<pointType>.<key> — node pointsep.<nodeID>.<parentID> — edge pointsphr.<nodeID> / phrup.<parentID>.<nodeID> — high-rate pointsPayloads are the compact binary point encoding, so the body prints as noise and
only the subject and message rate are readable. Prefer siot log whenever you
want the values.
A frozen value usually means nothing writes that point type any more. Points
persist as the node's last known state forever, so a point left over from an
earlier configuration keeps its final value indefinitely and looks identical to
a stalled client. Before concluding data is stuck, run siot log and see which
point type is actually being published — a signal generator whose
destination.pointType was changed from volt to the default leaves a stale
volt point next to a live value point, and both appear in export.
Streams are named inst_<boundaryID>_<originID> (see ADR-7). Each sync/AuthZ
boundary gets a stream per origin instance, so a device that has adopted an
upstream has both its own stream and a replica. siot dump -streams lists the
same inventory with the roles already worked out, which is quicker when you only
want to know who replicates with whom.
nats -s nats://127.0.0.1:4222 stream ls
nats -s nats://127.0.0.1:4222 stream report # messages, consumers, size
nats -s nats://127.0.0.1:4222 stream subjects <name> # per-subject counts
nats -s nats://127.0.0.1:4222 stream info <name> -j # retention, stateStream subjects mirror the wire subjects with routing tokens prepended:
inst.<boundary>.<origin>.<nodeID>.p.<type>.<key> and
inst.<boundary>.<origin>.<parentID>.ep.<childID>.
stream subjects sorted by count is the fastest way to see which signals
dominate and whether a given point is being persisted at all. Per-subject
retention defaults to 5000 messages, so a busy signal sitting at exactly 5000 is
at the cap and working as intended, not truncated by an error.
To check replication, compare the same stream on both instances, and read
consumer positions with nats consumer report <stream>.
Useful when you want point timestamps and origins, or want to script against JSON. Three details make the difference between a working request and an opaque error:
# 1. Log in. The "email" is whatever the user node's email point holds,
# which is often a bare name such as "admin" rather than an address.
TOKEN=$(curl -s -X POST -d "email=admin&password=admin" \
http://localhost:4223/v1/auth | jq -r .token)
# 2. The Authorization header needs the Bearer prefix.
curl -s -H "Authorization: Bearer $TOKEN" http://localhost:4223/v1/nodes
# 3. A single-node GET takes the parent ID in the request body; "all" works.
curl -s -X GET -H "Authorization: Bearer $TOKEN" --data "all" \
"http://localhost:4223/v1/nodes/<nodeID>"Without the Bearer prefix the response is Unauthorized; with no header at
all it is invalid user; with no parent in the body it is
parent must be set to valid ID, or all.
Each point carries the raw dataType and base64 data plus a decoded value
or text, so read value/text and ignore the encoded pair.
When a device syncs to an upstream, the same node exists on both sides and the values move independently between replications. Export both and compare:
./siot export -natsServer nats://127.0.0.1:4222 # device
./siot export -natsServer nats://127.0.0.1:4333 # upstreamIf both show live, changing values, replication is working and any problem is downstream of the data. Confirm this before investigating the store or a client, because it rules out most of the system in one step.
When they disagree, dump both and compare:
./siot dump -all -natsServer nats://127.0.0.1:4222 > /tmp/device.txt
./siot dump -all -natsServer nats://127.0.0.1:4333 > /tmp/upstream.txt
diff /tmp/device.txt /tmp/upstream.txtThis separates the two failure modes in one step. Instances that disagree about their root IDs, or that are missing a stream for each other, have a replication problem. Instances that agree on structure but differ on a point's origin or timestamp have a configuration problem — something on one side is writing a value the other side never asked for.
For a report that a displayed value is not changing:
export twice. If the value moves, the data layer is healthy and the problem
is in the frontend or in which point the display reads.siot log -natsServer nats://<ip address>:4222 and
watch what the node publishes. If points are publishing under a different
type than the one you are reading, the configuration and the reader disagree
— this is the common case.export output and the instance log.stream subjects counts
against the wire.For a report that a node is missing, duplicated, or shows values from somewhere
else, start with siot dump instead. A node under two parents, a node that was
deleted and came back, and a second root all look like ordinary configuration in
export output, and all of them are labeled in a dump.
Elm components read a fixed point type, so a component that hardcodes one type
while its client writes a configurable destination type will display a constant
default. Point.getValue returns 0 when it finds nothing, which renders as a
plausible reading rather than as an obvious absence.
© simpleiot, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/siot-debug of simpleiot/simpleiot.
Open the folder on GitHubat commit 822524b
Siot Debug 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 |
|---|---|---|---|---|---|---|
| Siot Debug this skillsimpleiot/simpleiot | 219 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Debugasgeirtj/system_prompts_leaks | 69k | — | ~439 | Automated safety check: Pass | CC0-1.0 | |
| Openclaw Debuggingopenclaw/openclaw | 392k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Debugging Executionsn8n-io/n8n | 207k | — | ~2.6k | Automated safety check: Pass | Custom licence | |
| DebuggingJetBrains/intellij-community | 21k | — | ~422 | Automated safety check: Pass | Custom licence | |
| Debugging Toolkitsickn33/agentic-awesome-skills | 47k | 1 repos | ~344 | Automated safety check: Pass | MIT |
asgeirtj/system_prompts_leaks
Enable debug logging for this session and help diagnose issues
openclaw/openclaw
Debug OpenClaw model, provider, tool-surface, code-mode, streaming, and live/Crabbox behavior by choosing the right logs, probes, and proof path before changing code, including fetching stored…
n8n-io/n8n
Debug failed or wrong-output workflow executions using executions tools.
JetBrains/intellij-community
Debug IntelliJ IDE failures with repository-specific techniques.
sickn33/agentic-awesome-skills
A skill your agent uses when working with debugging toolkit smart debug (Alias for debugging-toolkit-smart-debug)
vercel/next.js
Debug and verification workflow for runtime-bundle and module-resolution regressions.
simpleiot/simpleiot
A skill your agent uses when adding or changing nodes in a Simple IoT instance — a Modbus bus, a signal generator, a database client, a rule, a user, a group, or any other node type.
simpleiot/simpleiot
A skill your agent uses when auditing Simple IoT for security issues, reviewing a change that touches authentication, authorization, enrollment, sync, or a network-facing parser, or checking whether…
A skill your agent uses when inspecting or troubleshooting a running Simple IoT instance — checking what a node's current values are, whether points are flowing, whether sync is replicating, or what…. Siot Debug is an agent skill from simpleiot/simpleiot. Use when inspecting or troubleshooting a running Simple IoT instance — checking what a node's current values are, whether points are flowing, whether sync is replicating, or what is in the JetStream store.
Siot Debug fits situations like: troubleshooting a running Simple IoT instance — checking what a nodes current values are; whether points are flowing; whether sync is replicating; what is in the JetStream store.
Run `npx skills add simpleiot/simpleiot --skill siot-debug -a claude-code`. Or copy the skill folder (.claude/skills/siot-debug in simpleiot/simpleiot) into .claude/skills/siot-debug in your project. Claude Code loads it when a task matches its description.
Run `npx skills add simpleiot/simpleiot --skill siot-debug -a codex`. Or copy the skill folder (.claude/skills/siot-debug in simpleiot/simpleiot) into .agents/skills/siot-debug 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 simpleiot/simpleiot --skill siot-debug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/siot-debug, .gemini/skills/siot-debug, .github/skills/siot-debug and .opencode/skills/siot-debug in your project.
Going by SKILL.md and its folder, Siot Debug needs the command-line tools its instructions call (curl and jq) and credentials named SIOT_AUTH_TOKEN. Our summary lists: A credential in SIOT_AUTH_TOKEN.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. 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. Review the folder before installing.
Siot Debug is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k 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 Siot Debug: Debug (asgeirtj/system_prompts_leaks, 69k stars), Openclaw Debugging (openclaw/openclaw, 392k stars), Debugging Executions (n8n-io/n8n, 207k stars) and Debugging (JetBrains/intellij-community, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
simpleiot (a GitHub organization) maintains it in simpleiot/simpleiot, which has 219 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 21, 2026.
Source: simpleiot/simpleiot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.