neplextech/oppa/openprinter-server
Claude Code and agent skill by neplextech/oppa
- community
Checking that the SKILL.md file is still in the repository.
@openprinter/server discovery, pairing stores, Ed25519 gateway authentication, framework-neutral transports, session lifecycle, printer inventory, heartbeats, and job delivery.
Install
npx vskill@latest install neplextech/oppa/openprinter-serverSKILL.md
OpenPrinter server skill
Use this skill when building or changing an OpenPrinter server integration with @openprinter/server.
Boundary
The SDK owns:
- validated discovery metadata and configurable default paths
- cryptographically random one-time pairing code creation
- pairing request validation and atomic consumption
- public credential lookup and revocation boundaries
- socket-bound Ed25519 challenge verification
- hello/version negotiation, heartbeats, message validation, and
per-session printer inventory
- typed lifecycle and job acknowledgement callbacks
The host owns:
- HTTP and WebSocket framework routing
- authorization around pairing-code creation
- durable implementations of pairing and credential stores
- pairing-attempt rate-limit policy
- live session registry, affinity, cluster coordination, and
backplanes
- durable server-side jobs, retry scheduling, and printer routing
Do not move host ownership into the SDK. The SDK should attach to a transport and use its send/close boundary.
Create and expose
Defaults are /.well-known/openprinter, /openprinter/pair, and /.well-known/openprinter/gateway. Overrides must be distinct safe absolute paths.
Pairing stores
Create codes through createPairingCode({ expiresInMs, metadata }). Codes are secure random, human-readable, case-insensitive, approximately five minutes by default, single-use, and atomically consumed. Do not log them in core code or place them in URLs.
PairingCodeStore.consume wraps public credential registration so concurrent redemptions cannot both succeed. If registration fails, a correct store must not lose a still-valid grant. AgentCredentialStore creates, finds, and revokes Ed25519 public credentials by (agentId, keyId).
The in-memory stores are only for tests and disposable local examples. Production hosts need durable implementations and rate limiting.
Gateway
For a ws-compatible socket:
For another transport:
accept() starts authentication immediately. The server sends a domain-separated opaque challenge, consumes exactly one response, resolves the public credential, rejects revoked or unknown keys, and verifies Ed25519 before allowing agent.hello. Never accept ordinary protocol frames before auth.accepted. Do not sign ordinary messages.
Session delivery
After onAgentConnected, a session may call sendJob, requestPrinters, cancelJob, invalidateConfiguration, or disconnect. sendJob reports transport handoff only. Keep application jobs durable until acknowledgements arrive.
Two sessions for the same agent remain independent. The host decides replacement, routing, distributed ownership, and stale-route behavior.
Security and testing
- Bound authentication and normal frame sizes separately.
- Apply authentication, challenge, handshake, heartbeat, transport,
and callback timeouts.
- Sanitize close details and do not log keys, pairing codes,
challenges, signatures, or print documents.
- Test invalid, expired, consumed, and concurrent pairing codes.
- Test invalid public keys, unknown/revoked credentials, wrong
signatures, challenge expiry/reuse, success, and reconnect.
- Use virtual printers and in-memory stores; no physical device is
required.
Commands
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/openprinter-server/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/neplextech/oppa/openprinter-server)