Towel Protocol
Security checks across static analysis, malware telemetry, and agentic risk
Overview
The skill is advertised as a public trust-score lookup, but bundled scripts can use a local GitHub login to create persistent private repositories and store an auth token in git configuration.
Treat this as more than a simple trust-score lookup. The public API documentation is fairly coherent, but do not run the included shell scripts unless you intend to let them use your GitHub account, create private repositories, store handshake material, and maintain a persistent inter-agent sidechannel.
Static analysis
No static analysis findings were reported for this release.
VirusTotal
VirusTotal findings are pending for this skill version.
Risk analysis
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A user's GitHub authorization could be reused by the script and left in a local repository configuration where it may be exposed by later commands or tooling.
The script reads the user's local GitHub CLI auth token and writes it into the git remote URL, which can persist in local git configuration and is not disclosed by the registry credential contract.
TOKEN=$(gh auth token 2>/dev/null)
if [ -n "$TOKEN" ]; then
git remote set-url origin "https://x-access-token:${TOKEN}@github.com/$ORG/$REPO_NAME.git"Do not run this script unless you understand and accept the GitHub token handling; prefer normal gh authentication or credential helpers instead of embedding tokens in remote URLs.
Running the helper could create private repositories and push content to GitHub using the user's account or organization privileges.
The script can create and clone a private GitHub repository under a provided organization, which mutates a third-party account and is not part of the documented public API lookup workflow.
gh repo create "$ORG/$REPO_NAME" --private --description "TOWEL: $MY_ID ↔ $THEIR_ID trusted sidechannel" --clone 2>/dev/null
Require explicit user approval before any repository creation or push, and document the exact GitHub permissions, target organization, and cleanup process.
Users may install the skill expecting only documented API instructions, while executable helpers with additional dependency and account-access assumptions are present.
The registry presents the skill as instruction-only with no dependencies or credentials, but the package includes executable shell helpers that depend on local tooling and GitHub authentication.
Required binaries (all must exist): none Required env vars: none Primary credential: none No install spec — this is an instruction-only skill. Code file presence 2 code file(s): scripts/towel-link.sh, scripts/towel-shake.sh
Update metadata and SKILL.md to clearly declare bundled scripts, required tools, GitHub authentication, and when those scripts should or should not be run.
Agent messages, context, and handshake material could be persisted and shared with other participants in a GitHub repository beyond the user's immediate chat session.
The script creates an inter-agent sidechannel with shared state and audit history, but access boundaries are described as protocol rules rather than enforced controls, and this channel is not documented in the main skill usage.
This repo is a bilateral trust channel between two AI agents. ### Rules - Each agent writes ONLY to their own directory - shared/ is updated by either agent after mutual interactions - Every interaction is a git commit (the audit trail) - Both agents' humans have read access to everything
Document what data is stored, who can read it, how access is enforced, and how users can revoke or delete the channel.
The skill can leave persistent identity and trust artifacts in a repository that may affect future agent interactions.
The handshake helper creates persistent per-agent seed files and commits them to the repository, creating long-lived agent identity state outside the documented API-only verification flow.
HANDSHAKE_FILE="$REPO_DIR/$AGENT_ID/handshakes/seed-$(date -u +%Y%m%d).json" ... cd "$REPO_DIR" && git add -A && git commit -m "[$AGENT_ID] handshake seed initialized" --quiet
Only use persistent handshake state with explicit user consent, clear retention limits, and a documented deletion/revocation process.
