fleet-security
HMAC message signing, replay prevention, peer validation, and session gold sanitization
Skill by supportersimulator
Chalk Labs
Need help deploying fleet-security?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/supportersimulator-fleet-security
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fleet-security
What's inside
- Skill name
fleet-security- Description
- HMAC message signing, replay prevention, peer validation, and session gold sanitization
- License
- MIT
- Instructions
- 75 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Fleet Security
All fleet messages can be HMAC-SHA256 signed for authentication. The security layer also provides replay prevention, peer identity validation, and session gold sanitization.
Implemented in `tools/fleet_nerve_security.py` via the `FleetSecurity` class.
## Features
### HMAC-SHA256 Message Signing
Every outbound message gets `_hmac` (signature) and `_signed_ts` (timestamp) fields. Canonical form: sorted keys, no whitespace, `_hmac` field excluded from digest.
**Graceful degradation:** If no HMAC key exists, messages are sent unsigned. Fleet continues to operate in degraded security mode. Unsigned messages are accepted with a logged warning.
### Replay Prevention
Messages with `_signed_ts` older than 5 minutes (REPLAY_WINDOW_S=300) are rejected. Prevents captured messages from being replayed against the fleet.
### Peer Identity Validation
Inbound messages are checked against a known-peers allowlist. Unknown senders are rejected. The allowlist is populated from `.multifleet/config.json` nodes.
### HTTP Peer IP Validation (CV-001)
All POST requests to the daemon's HTTP server (port 8855) are validated against known peer IPs. Requests from unknown IPs get a `403 Forbidden` response. Loopback (127.0.0.1) is always allowed.
### Session Gold Sanitization
Before publishing session gold over NATS, sensitive fields are stripped. Only safe metadata survives: `node_id`, `session_count`, `session_id` (truncated to 8 chars), `topic_keywords`, `idle_s`, `timestamp`.
Stripped: conversation text, file contents, code artifacts, API responses, error tracebacks, environment variables, credentials.
## HMAC Key Management
Key loading priority:
1. `FLEET_NERVE_HMAC_KEY` env var (for CI/testing)
2. macOS Keychain (`fleet_nerve_hmac_key` service)
3. Auto-generate 32-byte key and store in Keychain
```bash
# Check if HMAC is active
curl -sf http://127.0.0.1:8855/health | python3 -c "
import sys,json; h=json.load(sys.stdin)
print('HMAC enabled:', h.get('security',{}).get('hmac_enabled', False))
"
# Manually set HMAC key (all fleet nodes must share the same key)
security add-generic-password -s fleet_nerve_hmac_key -a $USER -w "your-shared-secret"
```
## Security Stats
The `FleetSecurity.get_stats()` method exposes counters (never key material):
| Counter | Meaning |
|---------|---------|
| `signed` | Messages signed by this node |
| `verified` | Messages with valid HMAC |
| `rejected_bad_sig` | HMAC mismatch (tampered or wrong key) |
| `rejected_replay` | Timestamp outside 5min window |
| `rejected_unknown_peer` | Sender not in known peers |
| `accepted_unsigned` | No signature, accepted in degraded mode |
## INVARIANT
Never log HMAC key, message content, or session gold. Only log: message ID, sender, type, signature status (pass/fail/missing).
## When to Use
- Setting up HMAC across all fleet nodes (must share the same key)
- Debugging rejected messages (check `rejected_bad_sig` vs `rejected_replay`)
- Auditing fleet security posture via stats endpoint
- Understanding why a message was dropped (peer validation, replay, signature)From supportersimulator/multi-fleet, MIT.
More from supportersimulator/multi-fleet
- 0.440score
fleet-rebuttal
supportersimulator
Cross-machine rebuttal protocol — the 4-phase cycle where machines produce verdicts, critique each other, and converge on a chief decision
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
fleet-race
supportersimulator
Competitive branch racing — 3 machines solve the same problem in isolated worktrees, then propose/rebut/converge to the strongest solution
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
fleet-healer
supportersimulator
Invariance layer — spawns background agents that automatically heal broken fleet communication channels until all reach ideal state
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-dispatch
supportersimulator
Remote worker dispatch — send tasks to fleet nodes and track results with priority routing
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-repair
supportersimulator
4-level repair escalation for broken fleet channels — notify, guide, assist, remote
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-chain
supportersimulator
Chain orchestration — multi-step task dependencies across fleet nodes with automatic sequencing
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-check
supportersimulator
Run the full 7-channel communication test — verifies every delivery path to a target node
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-idle
supportersimulator
Productive idle protocol — automatic work discovery and suggestion when fleet nodes are idle
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-liaison
supportersimulator
Interact with the fleet liaison agent — check status, read batched messages, escalate outbound, pause/resume monitoring
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-onboard
supportersimulator
Run the fleet onboarding wizard — checks what's configured, what's missing, and guides new users through setup
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-send
supportersimulator
Send a message to another machine in the fleet — context, task, alert, or broadcast with 7-priority fallback delivery
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-status
supportersimulator
Quick fleet health check — who's online, who's idle, what's everyone working on
SkillDFreshness: D★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Apr 5, 2026 (7 months ago)
- Last release
- Apr 18, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from supportersimulator
- 0.440score
fleet-healer
supportersimulator
Invariance layer — spawns background agents that automatically heal broken fleet communication channels until all reach ideal state
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
fleet-rebuttal
supportersimulator
Cross-machine rebuttal protocol — the 4-phase cycle where machines produce verdicts, critique each other, and converge on a chief decision
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
fleet-race
supportersimulator
Competitive branch racing — 3 machines solve the same problem in isolated worktrees, then propose/rebut/converge to the strongest solution
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-check
supportersimulator
Run the full 7-channel communication test — verifies every delivery path to a target node
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-dispatch
supportersimulator
Remote worker dispatch — send tasks to fleet nodes and track results with priority routing
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
fleet-chain
supportersimulator
Chain orchestration — multi-step task dependencies across fleet nodes with automatic sequencing
SkillDFreshness: D★ 2Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get fleet-security running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
fleet-security skill. Agent Mart. https://agentmart.dev/skills/supportersimulator-fleet-security (last updated 2026-10-24)