Agent skill

Meshcore Packet Capture

by magnus919 in magnus919/agent-skills

Capture MeshCore Companion packets via BLE, serial, or TCP. An agent skill from magnus919/agent-skills.

MITAuto-check: notes

Install Meshcore Packet Capture

skills CLI
$ npx skills add magnus919/agent-skills --skill meshcore-packet-capture -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install magnus919/agent-skills meshcore-packet-capture --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/meshcore-packet-capture .claude/skills/meshcore-packet-capture && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
meshcore-packet-capture
GitHub stars
115
Token cost
~2.7k tokens
SKILL.md length
1,243 words
Files
6 (incl. references)
Skills in repo
131
Repo updated
First seen
Licence
MIT

At a glance

Capture MeshCore Companion packets via BLE, serial, or TCP. An agent skill from magnus919/agent-skills.

  • Works in 5 steps: Identify the transport before changing… → Prefer the installed CLI → Configure one IATA code and at least one… → …
  • Unrelated requests
  • SKILL.md covers Scope boundary, Operating workflow, Configuration rules and MQTT and authentication, plus 5 more sections
  • Calls docker, python3 and pipx

What it does

Meshcore Packet Capture is an agent skill from magnus919/agent-skills. Capture MeshCore Companion packets via BLE, serial, or TCP. Do not use this skill for unrelated requests; route to the nearest named specialist.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `README.md`, `evals/evals.json` and `references/configuration.md`). Compatibility notes: Requires Python 3.11+, a MeshCore Companion radio, and the project's runtime dependencies.

The repository describes itself as: Curated collection of AI agent skills for Hermes and other agent frameworks. The licence is MIT.

When your agent uses it

  • Unrelated requests
  • Route to the nearest named specialist

Example prompts

  • “/meshcore-packet-capture”

Requirements

  • Python 3
  • Docker
  • A credential in PUBLIC_KEY
  • Compatibility (from SKILL.md): Requires Python 3.11+, a MeshCore Companion radio, and the project's runtime dependencies.

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Identify the transport before changing configuration
  2. Prefer the installed CLI
  3. Configure one IATA code and at least one MQTT broker before expecting network uploads. LOC is a placeholder, not a useful deployment…
  4. Start with --no-mqtt when isolating radio connectivity. Add MQTT only after the device captures packets locally.
  5. Verify the actual boundary after every change: device connection logs, packet output, broker connection, and service/container status. Do…

What it can do on your machine

Read from SKILL.md and the folder at commit 22b4723. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • docker
    • python3
    • pipx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires Python 3.11+, a MeshCore Companion radio, and the project's runtime dependencies.

    From compatibility in the SKILL.md frontmatter.

Context cost

Meshcore Packet Capture loads about 2.7k tokens when it runs, and up to ~7.7k if it reads all its reference files. Until then it costs about 42 tokens; SKILL.md has 1,243 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:43
    3. Legacy `.env.local`, then `.env` in the working/package directory.
  • NoteMentions a .env fileSKILL.md:89
    ic skill, command transcript, committed `.env`, or shared Docker Compose file. Prefer a protected key file or secret inj
  • NoteMentions a .env fileSKILL.md:96
    under a user's home directory and load `.env.local`, without `/opt` or `/etc` TOML files. Inspect the running command,
  • NoteMentions a .env fileSKILL.md:100
    . Config files live in the repo itself (`.env`, `.env.local`, `config.toml`, `config.d/`). Remove with `./uninstall.sh -
  • NoteRuns commands with sudoSKILL.md:103
    shcore-packet-capture` and rebuild with `sudo nixos-rebuild switch`.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from magnus919/agent-skills at commit 22b4723, republished under its MIT licence (© magnus919). 1,243 words, ~2,719 tokens.

Download SKILL.mdSave it as .claude/skills/meshcore-packet-capture/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
meshcore-packet-capture
description
Capture MeshCore Companion packets via BLE, serial, or TCP. Do not use this skill for unrelated requests; route to the nearest named specialist.
compatibility
Requires Python 3.11+, a MeshCore Companion radio, and the project's runtime dependencies.
license
MIT

MeshCore Packet Capture

Use this skill when operating, configuring, deploying, or troubleshooting meshcore-packet-capture, especially requests involving Companion radios, BLE/serial/TCP capture, MQTT publishing, LetsMesh, TOML configuration, Docker, systemd, launchd, or NixOS.

Scope boundary

This project captures from MeshCore Companion radios only. Do not route repeater or RoomServer capture here; use meshcoretomqtt instead.

Operating workflow

  1. Identify the transport before changing configuration:
    • ble: direct address, device name, or general scan.
    • serial: one or more serial ports; the runtime uses the first configured port.
    • tcp: host and port, with SDK auto-reconnect enabled by default.
  2. Prefer the installed CLI:
    bash
    meshcore-packet-capture --help
    meshcore-packet-capture --debug
    For a checkout, use python3 -m meshcore_packet_capture or python3 packet_capture.py. Verified CLI boundary (v2.2.0): the parser exposes --output, --verbose, --debug, --no-mqtt, repeatable --config, and the neighbors on-demand pair --neighbors-now / --neighbors-exit (run one zero-hop neighbor discovery + scopes cycle immediately; with --neighbors-exit, quit when the cycle finishes). It does not expose --show-config or a dry-run flag. Run the exact installed binary with --help before documenting or using any other flag; do not invent a configuration-preview command.
  3. Configure one IATA code and at least one MQTT broker before expecting network uploads. LOC is a placeholder, not a useful deployment identity.
  4. Start with --no-mqtt when isolating radio connectivity. Add MQTT only after the device captures packets locally.
  5. Verify the actual boundary after every change: device connection logs, packet output, broker connection, and service/container status. Do not treat a successful install as proof of a working capture.

Mutation gate: when the request is read-only or plan-only, do not present stop/start/edit/delete/restart commands as actions to perform. Describe future mutations separately, label every example as unexecuted, and require target, scope, and rollback confirmation before the first mutation.

Configuration rules

Configuration precedence is highest to lowest:

  1. Real PACKETCAPTURE_* process environment.
  2. TOML: /etc/meshcore-packet-capture/config.toml, then sorted config.d/*.toml.
  3. Legacy .env.local, then .env in the working/package directory.

Use --config PATH more than once to load only the named TOML files in order. Later files override earlier files. TOML broker blocks merge by name; enabled brokers are flattened into sequential PACKETCAPTURE_MQTT<n>_* slots. Keep user overrides in config.d/99-user.toml.

Minimal TOML shape:

toml
[general]
iata = "SEA"

[capture]
connection_type = "serial"
# ble_pin = "123456"   # optional six-digit PIN for BLE connections

[serial]
ports = ["/dev/ttyUSB0"]

[[broker]]
name = "home"
enabled = true
server = "mqtt.example.com"
port = 1883
transport = "tcp"
# include_decoded = true   # publish the nested "decoded" object to this broker
# neighbors = true         # publish the neighbors snapshot to this broker

[broker.auth]
method = "password"
username = "user"
password = "secret"

Read references/configuration.md for the complete option map, broker authentication, topic templates, packet filters, and precedence edge cases.

Optional feature blocks (v2.1.0+)
  • Payload decoding (decode_payloads, include_decoded, decode_hashtag_channels, decode_channel_keys, decode_include_public): adds a nested decoded object with plain-text / structured fields. GRP_TXT channel messages are decrypted (sender, text), ADVERTs are parsed (name, role, lat/lon), and human-readable type/route labels plus path are included. Raw fields are unchanged. Direct messages (TXT_MSG) cannot be decrypted by a passive observer. Off by default; opt in per broker with include_decoded = true in its [[broker]] block.
  • Neighbors publishing (neighbors per broker plus neighbors_interval_hours, neighbors_discover_window, neighbors_command_timeout, neighbors_scope_timeout, neighbors_scope_min_timeout, neighbors_scope_gap, neighbors_cycle_timeout, neighbors_max, neighbors_self_scopes): publishes a periodic zero-hop neighbor table plus each neighbor's region scopes to the neighbors topic. Off by default; the cycle only runs when at least one enabled broker sets neighbors = true. Requires an IATA (or an explicit [broker.topics] neighbors). The interval is clamped to 12–336 hours to match the observer firmware. --neighbors-now / --neighbors-exit trigger a cycle on demand.
  • Log rotation (log_rotation = off|size|time, log_max_bytes, log_rotation_when, log_backup_count): only applies when an output file is given with --output.

MQTT and authentication

  • Brokers are sequential and have no fixed upper limit. A missing MQTT<n>_ENABLED terminates discovery, so do not leave a numbering gap.
  • Supported transports are tcp and websockets; use TLS explicitly for secure transport.
  • Password auth uses username and password.
  • Token auth uses Ed25519 JWT-style tokens. On-device signing is preferred when a connected radio supports it; Python signing is the fallback when a valid 64-byte private key is available.
  • Never put private keys in a public skill, command transcript, committed .env, or shared Docker Compose file. Prefer a protected key file or secret injection.
  • Topic placeholders are {IATA}, {IATA_lower}, {PUBLIC_KEY}, and {TOKEN}. Per-broker topics override global topics. RAW is not published unless explicitly configured. Topics per broker: status, packets, decoded, debug, raw, neighbors. The decoded topic carries the nested decoded object when include_decoded is enabled; the neighbors topic carries the periodic neighbor snapshot when neighbors is enabled.
  • Per-broker owner and email override the global capture.owner_public_key / capture.owner_email for token-auth brokers.
  • LetsMesh Analyzer brokers require a configured IATA. Do not silently accept the default LOC for a LetsMesh deployment.
Show full SKILL.md (539 more words)Show less

Deployment defaults

Legacy hybrid installs are possible: a systemd or launchd unit may wrap a checkout under a user's home directory and load .env.local, without /opt or /etc TOML files. Inspect the running command, working directory, service unit, and environment/config source before choosing the modern managed-install path.

  • Manual/PyPI: pipx install meshcore-packet-capture gives the CLI and does not install a background service.
  • Managed Linux/macOS: the root bootstrap installer creates /opt/meshcore-packet-capture, /etc/meshcore-packet-capture, a virtual environment, and a system service. It installs the latest published release by default; use --tag or --branch to pin.
  • User service (v2.1.0+): for a local checkout on Linux, ./install.sh --user-service creates a per-user systemd service that runs from the checkout's .venv (pass --repo-dir PATH if the checkout is not the script's directory). Config files live in the repo itself (.env, .env.local, config.toml, config.d/). Remove with ./uninstall.sh --user-service from the same checkout; add --remove-venv to also delete the local .venv. Manage with systemctl --user status|restart meshcore-packet-capture and journalctl --user -u meshcore-packet-capture -f.
  • macOS BLE: use the per-user LaunchAgent because Bluetooth permission belongs to the login user. Serial/TCP can use a LaunchDaemon.
  • Docker: use the published image or docker compose up -d; serial needs a device mapping, while BLE generally needs privileged: true and may need host networking. Linux is the most reliable container host for hardware access.
  • NixOS: use services.meshcore-packet-capture and rebuild with sudo nixos-rebuild switch.

Read references/deployment-and-troubleshooting.md for service commands, Docker hardware access, migration/update behavior, and bounded diagnostics.

Output and verification

Normal mode prints minimal packet information. --verbose adds JSON packet data; --debug adds connection, retry, packet parsing, and MQTT diagnostics. --output PATH writes packet data to a file. Captured records include device identity, timestamp, packet type, route, payload length, raw hex, SNR, RSSI, and a hash. When decode_payloads is enabled, records also carry a nested decoded object with human-readable fields (channel message sender/text, ADVERT name/role/coordinates, type/route labels).

When troubleshooting, collect evidence in this order:

  1. meshcore-packet-capture --debug --no-mqtt and confirm a real BLE, serial, or TCP connection.
  2. Confirm packet records appear in console or the --output file.
  3. Enable one broker and inspect broker connection/reconnect messages.
  4. Check the resolved environment/config and topic names, without printing secrets.
  5. For a managed service, inspect the service's own logs and status. For Docker, use docker compose config, docker compose ps, and docker compose logs.

Do not delete the install directory, state directory, or configuration during diagnosis. The uninstaller is interactive and backs up user configuration, but it still performs destructive removal only after confirmation.

When not to use

Do not use this skill for MeshCore repeater or RoomServer packet capture, generic MQTT administration, or implementing changes inside the upstream repository. For code changes, use the repository's contribution workflow and verify the project tests separately.

References

FileLoad when
references/configuration.mdWriting TOML/env configuration, MQTT topics, authentication, or packet filters
references/deployment-and-troubleshooting.mdInstalling, upgrading, running Docker/systemd/launchd/NixOS, or debugging a failed service
references/source-index.mdChecking source coverage, version markers, or revalidating this skill against upstream

Completion condition

Stop when the selected transport connects, a packet is observed locally, the intended MQTT topic receives data if MQTT is in scope, and the relevant service/container reports healthy. If hardware, credentials, or broker access is unavailable, report that exact unverified boundary instead of claiming success.

© magnus919, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in meshcore-packet-capture of magnus919/agent-skills.

  • SKILL.md
  • README.md
  • evals/evals.json
  • references/configuration.md
  • references/deployment-and-troubleshooting.md
  • references/source-index.md

Open the folder on GitHubat commit 22b4723

Compare with similar skills

Meshcore Packet Capture next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Meshcore Packet Capture compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Meshcore Packet Capture this skillmagnus919/agent-skills115—~2.7kAutomated safety check: NotesMIT
Performing Network Packet Capture Analysismukul975/Anthropic-Cybersecurity-Skills34k—~2.3kAutomated safety check: PassApache-2.0
Capturealirezarezvani/claude-skills28k1 repos~2.8kAutomated safety check: PassMIT
Cml Packet Captureautomateyournetwork/netclaw676—~1.6kAutomated safety check: PassApache-2.0
Monitoring Capture ServicePostHog/posthog40k—~5kAutomated safety check: PassCustom licence
Canvas Capture Extensionremotion-dev/remotion63k—~907Automated safety check: PassCustom licence

Similar skills

  • Performing Network Packet Capture Analysis

    mukul975/Anthropic-Cybersecurity-Skills

    Perform forensic analysis of network packet captures (PCAP/PCAPNG) using Wireshark, tshark, and tcpdump to reconstruct network communications, extract transferred files, identify malicious traffic…

    34k GitHub stars~2.3k tokensUpdated 1 mo ago
    SecurityAuto-check passed
  • Capture

    alirezarezvani/claude-skills

    Captures and organizes chaotic brain dumps into a structured, actionable system with zero information loss.

    28k GitHub starsUsed in 1 repo~2.8k tokens
    Agent WorkflowsAuto-check passed
  • Cml Packet Capture

    automateyournetwork/netclaw

    CML packet capture — start, stop, download pcaps from CML lab links, integrate with Packet Buddy for analysis.

    676 GitHub stars~1.6k tokensUpdated yesterday
    SecurityAuto-check passed
  • Official

    Guide for using the Grafana MCP to monitor and diagnose the capture service (rust/capture) in production.

    40k GitHub stars~5k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Canvas Capture Extension

    remotion-dev/remotion

    Official

    Rebuild, install, and reload the private Remotion Canvas Capture unpacked Chrome extension.

    63k GitHub stars~907 tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Import Canvas Capture

    remotion-dev/remotion

    Official

    Import a recorded Remotion Canvas Capture into a project without Studio interactions using the internal experimental-codemod command.

    63k GitHub stars~882 tokensUpdated yesterday
    Media & CreativeAuto-check passed

More from magnus919/agent-skills

All 131 skills in this repo
  • Artifact Pyramids

    magnus919/agent-skills

    Organize durable agent research outputs as summaries, analysis, and evidence dossiers.

    115 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Ascii City Engine

    magnus919/agent-skills

    Build portable, first-person colored ASCII city engines and small GIS-derived city packs.

    115 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Color Management

    magnus919/agent-skills

    Manage color workflows with ICC profiles, working spaces, gamut mapping, and color science.

    115 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Data Scientist

    magnus919/agent-skills

    A skill your agent uses for PhD-level expertise in data science, statistics, and machine learning: rigorous statistical analysis, experimental design, causal inference, advanced modeling, research…

    115 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Docker Compose

    magnus919/agent-skills

    Use Docker Compose to define, run, debug, and harden multi-container applications.

    115 GitHub stars~2k tokensUpdated today
    Auto-check: notes
  • Fpga Development

    magnus919/agent-skills

    Design, review, simulate, and verify FPGA logic using explicit RTL contracts, clock and reset models, CDC analysis, timing constraints, and reproducible implementation evidence.

    115 GitHub stars~2.7k tokensUpdated today
    Auto-check passed

Questions about Meshcore Packet Capture

What does Meshcore Packet Capture do?

Capture MeshCore Companion packets via BLE, serial, or TCP. An agent skill from magnus919/agent-skills. Meshcore Packet Capture is an agent skill from magnus919/agent-skills. Capture MeshCore Companion packets via BLE, serial, or TCP.

When should I use Meshcore Packet Capture?

Meshcore Packet Capture fits situations like: unrelated requests; route to the nearest named specialist.

How do I install Meshcore Packet Capture in Claude Code?

Run `npx skills add magnus919/agent-skills --skill meshcore-packet-capture -a claude-code`. Or copy the skill folder (meshcore-packet-capture in magnus919/agent-skills) into .claude/skills/meshcore-packet-capture in your project. Claude Code loads it when a task matches its description.

How do I install Meshcore Packet Capture in Codex?

Run `npx skills add magnus919/agent-skills --skill meshcore-packet-capture -a codex`. Or copy the skill folder (meshcore-packet-capture in magnus919/agent-skills) into .agents/skills/meshcore-packet-capture in your project. Codex loads it when a task matches its description.

Can I use Meshcore Packet Capture in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add magnus919/agent-skills --skill meshcore-packet-capture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/meshcore-packet-capture, .gemini/skills/meshcore-packet-capture, .github/skills/meshcore-packet-capture and .opencode/skills/meshcore-packet-capture in your project.

What does Meshcore Packet Capture need to run?

Going by SKILL.md and its folder, Meshcore Packet Capture needs the command-line tools its instructions call (docker, python3 and pipx). Our summary lists: Python 3; Docker; A credential in PUBLIC_KEY. Compatibility (from SKILL.md): Requires Python 3.11+, a MeshCore Companion radio, and the project's runtime dependencies..

Does Meshcore Packet Capture access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Meshcore Packet Capture safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file; runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Meshcore Packet Capture use?

Meshcore Packet Capture is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Meshcore Packet Capture use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5k tokens, read only when the agent opens those files.

What are the alternatives to Meshcore Packet Capture?

Skills that share tags, products or a category with Meshcore Packet Capture: Performing Network Packet Capture Analysis (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Capture (alirezarezvani/claude-skills, 28k stars), Cml Packet Capture (automateyournetwork/netclaw, 676 stars) and Monitoring Capture Service (PostHog/posthog, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Meshcore Packet Capture?

magnus919 (a GitHub user) maintains it in magnus919/agent-skills, which has 115 GitHub stars. The repository holds 131 skills in this directory. The repository was last updated on October 10, 2026.

Source: magnus919/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.