/SKILL.md
# openByte Integration Guide Use this skill when integrating with the openByte speed test API for network diagnostics, connectivity checks, and throughput measurement. ## When to Use - Running network speed tests (download/upload throughput) - Quick connectivity checks with grading (A-F) - Diagnosing network quality (latency, jitter, bufferbloat) - Monitoring server health and reachability - Building network-aware applications or dashboards ## Quick Reference ### Endpoints | Method | Path
npx skillsauth add saveenergy/openbyte openbyteInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when integrating with the openByte speed test API for network diagnostics, connectivity checks, and throughput measurement.
| Method | Path | Description |
|--------|------|-------------|
| GET | /health | Server health check |
| GET | /api/v1/ping | Latency measurement + client IP detection |
| GET | /api/v1/download?duration=N&chunk=SIZE | Download speed test (streams binary) |
| POST | /api/v1/upload | Upload speed test (accepts binary body) |
| POST | /api/v1/stream/start | Start managed test session |
| GET | /api/v1/stream/{id}/status | Poll test status and live metrics |
| GET | /api/v1/stream/{id}/results | Get final test results |
| POST | /api/v1/stream/{id}/cancel | Cancel running test |
| GET | /api/v1/version | Server version |
| GET | /api/v1/servers | List available test servers |
| POST | /api/v1/results | Save test results |
| GET | /api/v1/results/{id} | Retrieve saved results |
Public API — no auth required. Registry endpoints require Bearer token when REGISTRY_API_KEY is set.
All errors return JSON:
{"error": "description"}
Start the MCP server over stdio:
openbyte mcp
| Tool | Duration | Description |
|------|----------|-------------|
| connectivity_check | ~3-5s | Quick latency + burst download/upload. Returns grade A-F. |
| speed_test | configurable | Full speed test. Params: server_url, direction, duration. |
| diagnose | ~15-20s | Comprehensive: 10 latency samples, 5s download, 5s upload, full interpretation. |
All tools accept an optional server_url parameter (default: http://localhost:8080).
Every tool returns JSON with an interpretation object:
{
"status": "ok",
"latency_ms": 12.5,
"download_mbps": 450.2,
"upload_mbps": 95.1,
"jitter_ms": 1.3,
"interpretation": {
"grade": "A",
"summary": "Excellent connection: 450 Mbps down, 95 Mbps up, 13ms latency",
"latency_rating": "excellent",
"speed_rating": "fast",
"stability_rating": "stable",
"suitable_for": ["web_browsing", "video_conferencing", "streaming_4k", "gaming", "large_transfers"],
"concerns": []
}
}
Import github.com/saveenergy/openbyte/pkg/client:
import "github.com/saveenergy/openbyte/pkg/client"
c := client.New("https://speed.example.com")
result, err := c.Check(ctx)
// result.LatencyMs, result.DownloadMbps, result.UploadMbps
// result.Interpretation.Grade ("A" through "F")
result, err := c.SpeedTest(ctx, client.SpeedTestOptions{
Direction: "download", // or "upload"
Duration: 10, // seconds (1-300)
})
// result.ThroughputMbps, result.BytesTotal, result.DurationSec
result, err := c.Diagnose(ctx)
// result.DownloadMbps, result.UploadMbps, result.LatencyMs, result.JitterMs
// result.Interpretation — full grade + ratings + suitability
err := c.Healthy(ctx) // nil if server is reachable and healthy
c := client.New("https://speed.example.com",
client.WithAPIKey("your-key"), // optional auth
client.WithHTTPClient(customHTTPClient), // optional custom client
)
openbyte check # localhost
openbyte check https://speed.example.com # remote server
openbyte check --json # JSON output for scripts
OPENBYTE_API_KEY=KEY openbyte check --json # authenticated
Exit codes: 0 = healthy (grade A-C), 1 = degraded (grade D-F) or error.
openbyte client -S https://speed.example.com -d download -t 10
openbyte client -S https://speed.example.com -d upload -t 10 --json
All results include an interpretation with:
| Field | Values | Description |
|-------|--------|-------------|
| grade | A, B, C, D, F | Overall connection quality |
| latency_rating | excellent, good, fair, poor | Based on RTT thresholds |
| speed_rating | fast, good, moderate, slow | Based on throughput |
| stability_rating | stable, fair, degraded, unstable | Based on jitter + packet loss |
| suitable_for | list of workloads | web_browsing, video_conferencing, streaming_4k, gaming, large_transfers |
| concerns | list of issues | high_latency, high_jitter, packet_loss, slow_download, slow_upload |
| Grade | Score Range | Meaning | |-------|------------|---------| | A | 11-12 | Excellent | | B | 9-10 | Good | | C | 6-8 | Fair | | D | 3-5 | Poor | | F | 0-2 | Very poor |
Score = latency_score + speed_score + stability_score (each 0-4).
curl -s http://localhost:8080/health
{"status":"ok"}
curl -s http://localhost:8080/api/v1/ping
{"pong":true,"client_ip":"192.168.1.5","ipv6":false}
curl -s -o /dev/null -w '%{size_download} bytes in %{time_total}s' \
'http://localhost:8080/api/v1/download?duration=2&chunk=1048576'
dd if=/dev/zero bs=1M count=4 2>/dev/null | \
curl -s -X POST http://localhost:8080/api/v1/upload \
-H 'Content-Type: application/octet-stream' --data-binary @-
{"bytes_received":4194304}
# Start test
curl -s -X POST http://localhost:8080/api/v1/stream/start \
-H 'Content-Type: application/json' \
-d '{"protocol":"tcp","direction":"download","duration":10,"mode":"proxy"}'
# Poll status (use stream_id from response)
curl -s http://localhost:8080/api/v1/stream/STREAM_ID/status
# Get final results
curl -s http://localhost:8080/api/v1/stream/STREAM_ID/results
# One-liner install (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/SaveEnergy/openbyte/main/scripts/install.sh | sh
go install github.com/saveenergy/openbyte/cmd/openbyte@latest
docker run -p 8080:8080 -p 8081:8081 -p 8082:8082/udp \
ghcr.io/saveenergy/openbyte:latest server
Full OpenAPI 3.1 spec available at api/openapi.yaml in the repository.
API.md — complete endpoint documentation with all parametersARCHITECTURE.md — system design and architecture decisionsPERFORMANCE.md — profiling and benchmarking guideDEPLOYMENT.md — production deployment guidedevelopment
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.