jot@r2
BLOCKED· install onlyPublisher claims: "Gives every MCP-capable AI agent a shared, local-first memory store, letting them save, search, update, and delete preferences, decisions, and facts kept as plain Markdown files versioned in git. Memories are ranked by relevance on recall and shared across Claude Code, Cursor, Codex, and any other MCP client." Observed in sandbox: sends data to release-assets.githubusercontent.com.
Coverage
Install scripts ran; no agent task scenario for this bundle.- Tested
- install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
What this means for the label: Blocked here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Revoked: guards refuse to launch this version
confirmed incident: contacted release-assets.githubusercontent.com (undeclared) Every machine running vet-skills guard stops starting it at the next launch; the state clears when the honeypot re-run or a reviewer clears it.
Before you give it your token
- It will ask for
- no credential variables read in the code
- Where it talks to
- no vendor host named in the codeAlso openrouter.ai, ollama.com, git-scm.com, groq.com, githubusercontent.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · contacted release-assets.githubusercontent.com (undeclared)
- What we could not test
- use of the skill by an agent
Do not connect it. The honeypot or a critical finding blocked this version; the evidence is below.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is jot@r2 safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; install scripts ran; no agent task scenario for this bundle) on 2026-11-10 and scored it 42/100 (Blocked). Do not install it: the sandbox observed behaviour consistent with credential theft, exfiltration or persistence. Notable findings: Pipe-to-shell pattern; Stripe-like API key pattern detected; Auto-update or dynamic fetch configuration. Summary: sends data to release-assets.githubusercontent.com.
Behavior trace
Honeypot run · 2 s · 2 scenariosStatic findings
# curl -fsSL https://raw.githubusercontent.com/ArpitK24/jot/main/scripts/install.sh | shFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.if err != nil || !strings.Contains(string(b), "sk-test-1234567890abcd") {Fix: Never read or enumerate credential locations; accept a documented environment variable instead.// SetAutoUpdateCheck turns the launch-time update check on or off.Fix: Pin versions and sources; vendor anything fetched at install time."Deploy key: AKIAIOSFODNN7EXAMPLE": "AWS",Fix: Never read or enumerate credential locations; accept a documented environment variable instead.st, err := a.SaveChatProvider(chat.OpenAI, fake.URL+"/v1", "sk-test-1234567890abcd", true)Fix: Never read or enumerate credential locations; accept a documented environment variable instead.chmod 755 "$dir/jot.tmp"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.for _, bad := range []string{"", "c1.md", "../x/c1.md", "chats/../c1.md", ".git/config", "chats/.hidden", "/etc/passwd", "chats//"} {Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.func (a *App) SetAutoUpdateCheck(on bool) error {Fix: Pin versions and sources; vendor anything fetched at install time.`{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"remember","arguments":{"text":"GitHub token ghp_abcdefghijklmnopqrstuvwxyz0123456789"}}}`,Fix: Never read or enumerate credential locations; accept a documented environment variable instead.// AutoUpdateCheck reports whether the app looks for updates on launch.Fix: Pin versions and sources; vendor anything fetched at install time."Store API keys in 1Password under 'dev', never in .env files committed to git.",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if r.Header.Get("Authorization") != "Bearer sk-test-1234567890abcd" {Fix: Never read or enumerate credential locations; accept a documented environment variable instead.S.autoCheck = await api.AutoUpdateCheck().catch(() => true);Fix: Pin versions and sources; vendor anything fetched at install time.**Windows desktop app:** download the newest `jot-<version>-windows-x64-setup.exe`Fix: Pin versions and sources; vendor anything fetched at install time.# curl -fsSL https://raw.githubusercontent.com/ArpitK24/jot/main/scripts/install.sh | shFix: Pin versions and sources; vendor anything fetched at install time.click *More info*, then *Run anyway*. From 0.3.1 the app updates itself: itFix: Pin versions and sources; vendor anything fetched at install time.# curl -fsSL https://raw.githubusercontent.com/ArpitK24/jot/main/scripts/install.sh | shFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
38 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Contacts a host you did not declare≈ +23 on the totalList every host you talk to in SKILL.md frontmatter (`network: [api.example.com]`), or stop contacting the ones you cannot justify.
- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- README directs the reader to a committed installer≈ +9 on the totalPin versions and sources; vendor anything fetched at install time.
- README tells the reader to click past SmartScreen≈ +9 on the totalPin versions and sources; vendor anything fetched at install time.
- Unclaimed publisher≈ +8 on the totalClaim arpitk24: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Stripe-like API key pattern detected≈ +4 on the totalNever read or enumerate credential locations; accept a documented environment variable instead.