← AFKashSecurity

Check it yourself, not our word for it.

AFKash’s entire pitch is money showing up in your account while Claude Code works. That only earns trust if you can check every claim below against the actual client — so here is exactly what runs, what it touches, and what it deliberately never sees.

What runs where

ComponentWhat it isNetworkData touched
Status line script (~/.afkash/afkash-statusline.mjs)A small script Claude Code invokes on its own ~5s statusLine refresh, installed via ~/.claude/settings.json.None — renders from a local ad-cache file the extension already fetched.Reads a local heartbeat file and a local ad-cache file it did not create itself.
Extension main process (extension/src/*.ts)All networking and all local reads happen here.Exactly one origin — AFKash’s own API. Cross-origin requests are rejected in code, not just by policy.Reads session-transcript modification timestamps only, to detect a genuine Claude Code wait. Never opens or parses transcript content.
Rich-spinner patch (opt-in, not yet shipped)Appends a small script to Claude Code’s own bundled webview file, off by default.None of its own — renders data the extension already fetched.Modifies the local Claude Code binary and is one-click reversible, with a backup kept on disk.

The third row describes a feature that is designed but not shipped yet. We’ll update this table the day it ships, not before.

Data: never read vs. leaves the machine

Never read: prompts, code, file contents, conversations. The only thing consulted about your session is the modification timestamp of Claude Code’s own session-transcript files — used only to tell “AI is actively working” from “idle”; never reads code, only session-transcript modification timestamps.
Reads locally, never sent, unless targeting is on: with contextual targeting enabled (on by default, freely toggleable), the extension checks for the presence of tooling files already on disk — a Cargo.toml, react in package.json, a *.tf file — never their contents. Only a coarse tag list like ["rust", "postgres"] is derived; the manifest itself is never sent or stored.
Leaves the machine: an anonymous device identifier; a server-issued, revocable device token; the coarse stack-tag list, targeting only; impression-credit beacons; click events; your account email if you sign in to claim payouts. No analytics SDK, no third-party telemetry — the extension enforces single-origin networking in code.

Open-source verifiability

Open source is a commitment we intend to keep, not a fact we can claim today. There is no public client repository at a stable URL yet, and no equivalent of a verify.sh script that lets you diff what’s installed against what’s published. Until both exist, we won’t say “verify it yourself” — that phrase means something specific and we’re not going to blur it.

What exists today: this page, written against the real code rather than aspirational marketing copy — and a real intent to publish a standalone client repository with a documented way to check the installed extension against it.

Distribution & lifecycle

Updates: exclusively through the VS Code / Open VSX marketplace — the extension has no self-update mechanism of its own. If the rich-spinner patch is enabled, it re-detects and re-patches a fresh Claude Code install after every Claude Code update; it does not hook into or persist inside Claude Code’s own update process.
Uninstall / restore: one command reverses every local change AFKash made, including restoring any patched file from its backup and removing any sidecar metadata — the same guarantee whether or not the rich-spinner patch was ever turned on.
Anti-fraud: server-side per-device cooldowns and daily caps bound what any single device can earn, regardless of what it claims. We don’t publish the exact thresholds — the point for you is that abuse has a hard ceiling and no payoff, not a target to test against.

Security contact

Found a real issue? Report it at github.com/fiaaaansoo/AFKash/issues with “[security]” in the title.

This page describes what AFKash actually does today, in plain product language — not final legal text, and not yet reviewed by counsel.