Mieksido/surfcore

Productivity & Utilities

Give a DSH agent a persistent identity that chats on QQ, browses Bilibili, and appears as a desktop pet.

107
7
JavaScript
NOASSERTION
2 days old

SurfCore is a Windows-only add-on for DeepSeek Harness (DSH) that gives a model a persistent persona, a decaying memory card, a daily schedule, QQ and Bilibili accounts, and an optional desktop companion. It is not a generic "LLM into QQ" bot framework: the agent decides whether to read, reply, quote, or go silent, and can act within configured schedules and quotas.

How it works

Two processes cooperate. A DSH plugin (surfcore) supplies the settings page, Bilibili scheduler, memory maintenance, quota tracking, and pet interface. A separate bridge process (src/bridge.js) handles QQ send/receive through SnowLuma, session mapping, a localhost console, and three MCP servers. A QQ chat therefore arrives over OneBot, becomes a DSH session, and the reply returns to QQ. The repository's default reserved2 mode makes everything tool calls: the agent checks messages, speaks, waits, or dives with a note about how to resume next time (README overview, architecture).

Memory is split into a decaying card injected into prompts and an append-only full archive; memories are written across QQ, Bilibili, and pet scenarios and ingested periodically. chat keeps the agent to a guarded tool whitelist, closed-agent serves only the owner with full DSH tools, and the two reserved modes simulate a group member (daily use).

Requirements and scope

  • Windows 10/11, Node >= 22.13, DSH 0.2.1-rc.2 or newer (rc.3 installs but is not fully regression-tested), and SnowLuma2 for QQ. SnowLuma is a third-party proprietary runtime the project does not download, install, or package; you install and scan the QR code yourself (install guide).
  • Only the QQ path needs SnowLuma. Bilibili, memory, and the pet can work without it; DSH itself is required throughout.
  • Voice is optional through either surfvoicelocal or surfvoicecloud; the desktop pet is a separate Electron app from surfpet. AI voice sending is off by default.
  • Install from the repository root, not just plugins/surfcore, and refresh the DSH page after installing. The README reports that older versions (<= 0.6.18) cannot auto-update.

Boundaries and safety

The empty allowlist means nobody is answered, not everyone. The console accepts only loopback requests with a token, and irreversible deletes are quarantined to _backups/ first. The project does not promise semantic protection against prompt injection; it describes the tool whitelist and allowlist as the real boundary. Runtime data stays on your machine, though text placed into prompts travels to the model API (security summary, boundaries).

HotRepo's take

The repository had 107 total stars and ranked #25 on the NEW-REPOSITORY board for JavaScript on 2026-10-28; the supplied sample has no daily-board history, so it says nothing about momentum. That is a young project with heavy Windows and DSH coupling; the fit is narrow and specific rather than broadly proven.

Written by AI from the project's README, updated October 28, 2026. The project's own docs are the source of truth.