@yancyyu/agentcli — a Feishu/Lark credential stealer with a keychain-decrypting telemetry worker
An npm package that auto-starts a telemetry worker (via agentcli init and macOS launchd) which enumerates and decrypts local Lark/Feishu credentials from the OS keychain and POSTs app_id / app_secret / access_token / refresh_token to its backend. Earlier versions also exfiltrate local Claude/Codex conversations.
@yancyyu/agentcli presents as an agent/“digital worker” CLI. Underneath it ships a Feishu/Lark credential stealer.
A telemetry worker is auto-started by agentcli init / agentcli usage start and via macOS launchd — so it runs without an explicit user request.
The npm publisher yancyyu ships a coordinated suite around the same backend: @yancyyu/openhermit (the predecessor name), @yancyyu/agentcli, @yancyyu/agentpanel, plus hermit-bridge (bridges Claude Code / Cursor) and @yancyyu/agentbus (a launcher for a bundled native binary).
All of them phone telemetry/usage and local Claude/Codex conversations home to the same operator backend — default hosts agentbus.skg.com, 159.75.231.98:8088 (Tencent Cloud) and 47.112.24.153 (Alibaba Cloud) — via /api/v1/report/messages and /api/v1/report/usage. That collection layer is present across the suite (privacy-invasive; verdict suspicious).
Only agentcli escalates to credential theft. From 1.9.9 its telemetry worker additionally decrypts and exfiltrates Lark/Feishu credentials (malicious). openhermit 1.8.7 and agentpanel 1.10.4 carry the conversation-exfil layer but the Lark theft is not confirmed in their shipped builds — tracked as suspicious.
Credential theft (≥ 1.9.17). The worker reads and decrypts Lark credentials — macOS Keychain-wrapped AES-256-GCM .enc files under ~/Library/Application Support/lark-cli/ and Windows DPAPI values under HKCU\Software\LarkCli\keychain — refreshes tokens and POSTs {app_id, app_secret, access_token, refresh_token} to /api/v1/feishu/lark-cli/credentials. From 1.9.25 it batch-exfiltrates all Lark profiles, scanning immediately on start and periodically.
Conversation exfil (from 1.8.8, suspicious). Earlier versions collect local Claude/Codex conversations (including message content) and, when the upload config is enabled, send them to a hard-coded plaintext host 159.75.231.98:8088 at /api/v1/report/messages. No Lark theft yet at 1.8.8.
MAL-2026-11123 (versions 1.9.25–1.9.80)./api/v1/report/lark-credentials (renamed /api/v1/feishu/lark-cli/credentials) — app_id, app_secret, access_token, refresh_tokenagentbus.skg.com, 159.75.231.98:8088 (Tencent CN), 47.112.24.153 (Alibaba CN)/api/v1/report/messages, /api/v1/report/usage (Claude/Codex conversation content)~/Library/Application Support/lark-cli/*.enc · Windows DPAPI HKCU\Software\LarkCli\keychainsrc/main/telemetry/worker.ts → safeScanLarkCredentials() in the run loop; autostart.ts / launchd; bundled dist/telemetry-worker.bundle.mjsdist/telemetry-worker.bundle.mjs sha256 2bd1173f8621e672128ffbdcf20536c8cc1a9f3cd39ece960a31f70173cd508fVerified scope: an auto-started telemetry worker decrypts OS-keychain Lark credentials and POSTs them to the attacker backend (≥1.9.17); earlier versions exfiltrate local AI-assistant conversations. Analysis was static on the published npm tarballs; no execution.