aibtc

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill appears to do what it says, but it starts a detached crypto-mining worker by running an unpinned npm package through npx, so it deserves careful review before use.

Install only if you intentionally want your agent to run a cryptocurrency mining worker. Before running it, verify the external `aibtc-worker` package/source, understand that it may keep running in the background and use CPU/network resources, and know how to stop it with `aibtc stop`.

Findings (3)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Starting the worker may run whatever code the npm package resolves to at that time, not only the reviewed handler.js wrapper.

Why it was flagged

The reviewed skill delegates its main behavior to an npm package fetched/executed through npx at runtime, with no version pin, lockfile, install spec, or included worker source in the supplied artifacts.

Skill content
currentProcess = spawn('npx', ['--yes', 'aibtc-worker', address, '--threads', '4'], {
Recommendation

Pin the worker package version and integrity, declare the npx/node dependency, include or verify the worker source, and require clear user confirmation before first execution.

What this means

The mining process can continue consuming local resources after the conversation step finishes, until the user stops it.

Why it was flagged

The handler intentionally starts the worker as a detached process that can keep running after the skill invocation ends.

Skill content
detached: true,   // allow the child process to continue running after the parent exits
...
currentProcess.unref();
Recommendation

Use this only when you intend to run a continuing mining worker, monitor CPU/resource usage, and run `aibtc stop` when finished.

What this means

If the state file is stale or altered, stopping the worker could affect an unrelated local process group.

Why it was flagged

The stop path sends a signal to the process group identified by a stored PID, without confirming that the PID still belongs to the aibtc-worker process.

Skill content
const data = JSON.parse(fs.readFileSync(STATE_FILE));
...
process.kill(-data.pid);
Recommendation

Store state in a skill-owned location, validate that the PID command line matches the intended worker before killing it, and handle stale PID files safely.