Offline QR code (SVG/PNG/ASCII) and barcode (Code128/EAN-13) generator for DeepSeek Harness, no network and no shell.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:hellosky983/dsh-qrcode
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
An offline QR code and barcode generator for DeepSeek Harness. Pure local computation — no network, no shell, no dependencies.
Overview
DeepSeek Harness sessions often run with restricted network access (no npm, no CDN, no online encoder APIs), so generating a scannable code from inside a session is not trivial. This plugin solves that: it provides qrcode and barcode model tools that encode and render entirely locally, with zero runtime dependencies. It is for agents and users who need QR codes (URLs, WiFi, vCard, tel, sms) or 1D barcodes (Code128, EAN-13) as SVG / PNG / ASCII output inside any DSH session — including fully offline or sandboxed ones.
Compatibility
- DSH version:
0.1.0-rc.6 - Mainline: verified against
deepseek-harnessmainline snapshots of 2026-08-14 - Last verified: 2026-08-14
Install / Uninstall
Install (from GitHub):
dsh plugin add github:hellosky983/dsh-qrcode
Or clone and install locally:
git clone https://github.com/hellosky983/dsh-qrcode.git
cd dsh-qrcode
dsh plugin add .
Upgrade: re-run the install command after git pull.
Disable temporarily: remove the plugin row from your profile composition, or run:
dsh plugin remove dsh-qrcode
Uninstall: remove the dsh-qrcode dependency and its bundle entry from the profile package.json, then pnpm install.
Quick start
Tell the agent:
把这个链接做成二维码: https://example.com
or call the tools directly:
qrcode text="https://example.com" format=svg
barcode text="ABC-123" symbology=code128 format=svg
qrcode returns SVG markup (save to a .svg file), PNG data URLs, or ASCII previews. barcode supports code128 and ean13.
Configuration
| Tool | Option | Default | Description |
|---|---|---|---|
qrcode |
text |
— (required) | Content to encode: URL, WIFI:..., vCard, tel/sms, or plain text |
qrcode |
format |
svg |
svg / ascii / png |
qrcode |
ecl |
M |
Error correction level L/M/Q/H |
qrcode |
scale / border / fg / bg / mask |
4 / 4 / #000 / #fff / auto | Rendering options |
barcode |
text |
— (required) | Content for Code128 (ASCII) or EAN-13 (12/13 digits) |
barcode |
symbology |
code128 |
code128 / ean13 |
No environment variables, no secrets.
Permissions & data
- Reads: nothing (pure function of the input arguments).
- Writes: nothing. Tools return text/SVG/PNG data in the result.
- Network: none. Encoding and rendering are fully local.
- Credentials: none.
Troubleshooting
- Tool not visible after install: restart dsh, or check that the bundle row appears in
dsh --dump-config. - "cannot get property tools without inject": the plugin requires
inject = ['tools']; reinstall from the latest commit which declares it. - PNG output is a data URL: the agent should prefer
format=svgand save the returned markup as a.svgfile when a file artifact is needed. - Logs: dsh profile logs under
~/.dsh/profiles/<name>/. - Rollback: revert to the previous plugin version by reinstalling the earlier git commit.
Development
git clone https://github.com/hellosky983/dsh-qrcode.git
cd dsh-qrcode
node --check index.js
The encoder was validated against zxing-cpp (96/96 test vectors, versions 1–40, all masks/EC levels) and cross-checked with segno for mask scoring. The suite lives in the commit history of this repository.
Contributions: open issues and pull requests on GitHub. Keep changes dependency-free (the encoder is self-contained). Report bugs with a minimal reproduction case.
License & security
MIT — see LICENSE. No secrets are shipped; report security issues privately via GitHub issue (repo is public) or email to the repository owner.
Links
More in this category
vectorize-io/hindsight#coding-agents★ 41184
Hindsight, agent memory that learns: long-term project memory with auto recall and retain, knowledge pages, deep reflection, and per-repo memory banks.
volcengine/OpenViking#examples/dsh-memory-plugin★ 38914
OpenViking memory and context bundle for DeepSeek Harness: pre-step auto-recall and profile injection, session capture, `viking://` URI guarding, and recall/write memory tools backed by an OpenViking server.
agentscope-ai/ReMe#dsh★ 3530
Connects DeepSeek Harness to ReMe's local-first, self-evolving personal knowledge base: automatically captures completed main-agent conversations as user-owned Markdown memory, searches conversations and source material through reme_search with BM25, optional embeddings, and wikilink expansion, and schedules daily memory consolidation.
zilliztech/memsearch#MemSearch★ 2679
Shared Markdown memory for DSH and other coding agents, with automatic capture, pre-step context injection, searchable recall, and memory-to-skill self-evolution through a review panel.
vshulcz/deja-vu#extensions/dsh★ 1081
Reads the session files thirty-three other coding agents on this machine already wrote — Claude Code, Codex, Cursor, VS Code Copilot Chat, opencode, OpenClaw, Hermes, Kimi, Cline, Zed and more — including sessions from before it was installed: six tools (deja_recall, deja_session, deja_blame, deja_fix, deja_how, deja_remember), a /deja command, and optional automatic recall added to the runtime context. Local BM25 index, no LLM, no embeddings, no network (dsh plugin --profile web add dsh-deja).
adoresever/graph-memory★ 631
Traceable, searchable cross-session memory for DeepSeek Harness — conversation knowledge as typed graph nodes (TASK/SKILL/EVENT) and typed edges.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.