zgrok-developer — community zgrok-developer, community, ide skills, Claude Code, Cursor, Windsurf

v1.0.0
GitHub

About this Skill

Ideal for Rust-focused AI Agents needing a self-hosted ngrok alternative for secure tunneling and development Self-hosted ngrok alternative in Rust. Development in progress - check out the issues for detailed specs.

copyleftdev copyleftdev
[0]
[0]
Updated: 3/5/2026

Agent Capability Analysis

The zgrok-developer skill by copyleftdev is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance.

Ideal Agent Persona

Ideal for Rust-focused AI Agents needing a self-hosted ngrok alternative for secure tunneling and development

Core Value

Empowers agents to develop and deploy a Rust-based ngrok alternative, utilizing doc comments for public API, TODO, FIXME, and SAFETY explanations, while ensuring code is self-documenting and avoiding tutorial comments, leveraging Rust's performance and security features

Capabilities Granted for zgrok-developer

Developing a self-hosted ngrok alternative
Implementing secure tunneling protocols
Contributing to the zgrok open-source project

! Prerequisites & Limits

  • Requires Rust programming knowledge
  • Development in progress, subject to change
  • No tutorial comments allowed in code
Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

zgrok-developer

Install zgrok-developer, an AI agent skill for AI agent workflows and automation. Works with Claude Code, Cursor, and Windsurf with one-command setup.

SKILL.md
Readonly

zgrok Developer Skill

ABSOLUTE REQUIREMENTS

These are non-negotiable. Violating these is a failure condition.

No Tutorial Comments

NEVER add comments explaining what code does. Code must be self-documenting.

Allowed comments:

  • /// doc comments for public API
  • // TODO: or // FIXME:
  • // SAFETY: for unsafe blocks
  • Brief "why" explanations for non-obvious decisions

Forbidden:

  • // Initialize the counter
  • // Loop through items
  • // Check if value is null
  • Any comment that restates what the code does

Branch Workflow (Mandatory)

For EVERY issue:

  1. git checkout main && git pull origin main
  2. git checkout -b feat/ZGROK-XXX-description
  3. Implement all acceptance criteria
  4. cargo fmt && cargo clippy -- -D warnings && cargo test
  5. git add -A && git commit -m "feat(component): ZGROK-XXX - title"
  6. git push -u origin feat/ZGROK-XXX-description
  7. gh pr create --fill
  8. Self-review the diff
  9. gh pr merge --squash --delete-branch
  10. git checkout main && git pull origin main
  11. Report completion, await next issue

NEVER leave PRs open. NEVER work multiple issues. NEVER skip steps.

Overview

zgrok is a self-hosted ngrok alternative. This skill encodes project-specific knowledge for effective development.

Issue-Driven Development

All work traces to issues in .github/issues/. Each issue contains:

  • Acceptance Criteria: Testable Given/When/Then statements
  • State Machines: For stateful components (connections, streams)
  • Technical Context: Exact crates, files, data structures to use
  • Dependencies: What must exist before this can be implemented

Reading an Issue

bash
1cat .github/issues/stories/protocol/ZGROK-010-frame-types.json | jq

Checking Dependencies

bash
1cat .github/issues/_index.json | jq '.dependency_graph["ZGROK-012"]'

Architecture Principles

  1. Async-first: Everything uses Tokio. No blocking in async context.
  2. Protocol-agnostic core: The multiplexer works over any AsyncRead + AsyncWrite.
  3. Graceful degradation: Connection loss → reconnect, not crash.
  4. Observable: Every component emits tracing spans and metrics.

Code Patterns

Error Handling

rust
1// Library crates: use thiserror 2#[derive(Debug, thiserror::Error)] 3pub enum ProtocolError { 4 #[error("invalid frame type: {0}")] 5 InvalidFrameType(u8), 6 #[error("stream {0} not found")] 7 StreamNotFound(u32), 8 #[error("io error: {0}")] 9 Io(#[from] std::io::Error), 10} 11 12// Binary crates: use anyhow 13fn main() -> anyhow::Result<()> { 14 // ... 15}

Tracing

rust
1use tracing::{debug, info, instrument, warn}; 2 3#[instrument(skip(stream), fields(stream_id = %stream.id()))] 4async fn handle_stream(stream: Stream) -> Result<(), Error> { 5 info!("processing stream"); 6 // ... 7}

State Machines

Implement exactly as specified in issue state_machine field:

rust
1#[derive(Debug, Clone, Copy, PartialEq, Eq)] 2pub enum StreamState { 3 Open, 4 HalfClosedLocal, 5 HalfClosedRemote, 6 Closed, 7} 8 9impl StreamState { 10 pub fn can_send(&self) -> bool { 11 matches!(self, Self::Open | Self::HalfClosedRemote) 12 } 13 14 pub fn can_recv(&self) -> bool { 15 matches!(self, Self::Open | Self::HalfClosedLocal) 16 } 17}

Testing Strategy

  1. Unit tests: Per-function, alongside code
  2. Property tests: Protocol codec with proptest
  3. Integration tests: Full tunnel flow in tests/
rust
1#[cfg(test)] 2mod tests { 3 use super::*; 4 5 #[test] 6 fn test_frame_roundtrip() { 7 // Maps to AC: Given valid frame, When encoded then decoded, Then equals original 8 let frame = Frame::Data { stream_id: 1, payload: b"hello".to_vec() }; 9 let encoded = frame.encode(); 10 let decoded = Frame::decode(&encoded).unwrap(); 11 assert_eq!(frame, decoded); 12 } 13}

File Organization

crates/
├── zgrok-protocol/src/
│   ├── lib.rs          # Public API, re-exports
│   ├── frame.rs        # Frame types and codec
│   ├── codec.rs        # Tokio codec impl
│   ├── mux.rs          # Stream multiplexer
│   └── error.rs        # Protocol errors
├── zgrok-agent/src/
│   ├── main.rs         # CLI entry
│   ├── cli.rs          # Clap definitions
│   ├── tunnel.rs       # Connection management
│   ├── forwarder.rs    # Local HTTP forwarding
│   └── tui/            # Terminal UI
└── zgrok-edge/src/
    ├── main.rs
    ├── acceptor.rs     # Agent connection handling
    ├── router.rs       # Subdomain routing
    └── bridge.rs       # HTTP-to-tunnel bridging

Commit Convention

feat(protocol): ZGROK-010 - define frame types and binary format
fix(agent): ZGROK-033 - handle reconnection edge case
test(edge): ZGROK-054 - add agent acceptor integration tests

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is zgrok-developer?

Ideal for Rust-focused AI Agents needing a self-hosted ngrok alternative for secure tunneling and development Self-hosted ngrok alternative in Rust. Development in progress - check out the issues for detailed specs.

How do I install zgrok-developer?

Run the command: npx killer-skills add copyleftdev/zgrok. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for zgrok-developer?

Key use cases include: Developing a self-hosted ngrok alternative, Implementing secure tunneling protocols, Contributing to the zgrok open-source project.

Which IDEs are compatible with zgrok-developer?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for zgrok-developer?

Requires Rust programming knowledge. Development in progress, subject to change. No tutorial comments allowed in code.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add copyleftdev/zgrok. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use zgrok-developer immediately in the current project.

Related Skills

Looking for an alternative to zgrok-developer or another community skill for your workflow? Explore these related open-source skills.

View All

widget-generator

Logo of f
f

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

149.6k
0
AI

flags

Logo of vercel
vercel

flags is a Next.js feature management skill that enables developers to efficiently add or modify framework feature flags, streamlining React application development.

138.4k
0
Browser

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI