jot@r2

BLOCKED· install only

Publisher 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.

Registry GlamaPublisher arpitk24 · publishing for 8 daysInstalls 0Last detonated 4d ago

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 scenarios
t+CategoryObserved action
0.9snetworkCONNECT tcp://api.github.com:443
0.9snetworkCONNECT tcp://github.com:443
0.9snetworkCONNECT tcp://release-assets.githubusercontent.com:443 · not in the allow-list, refused
0.9sprocessexec /usr/bin/uname
0.9sprocessexec /usr/bin/mktemp
0.9sprocessexec /usr/bin/curl
0.9sprocessexec /usr/bin/tr
0.9sprocessexec /usr/bin/sed
0.9sprocessexec /usr/bin/head
0.9sprocessexec /usr/bin/rm
0.9sprocessexited 1: jot install: could not download jot_0.4.0_linux_amd64.tar.gz from release v0.4.0
1.0sprocessscript backend runs setup only
1.0sprocessscript backend runs setup only
1.2sprocesssecond launch, clock +45 days, CI unset
1.6snetworkCONNECT tcp://api.github.com:443
1.6snetworkCONNECT tcp://github.com:443
1.6snetworkCONNECT tcp://release-assets.githubusercontent.com:443 · not in the allow-list, refused
1.6sprocessexec /usr/bin/uname
1.6sprocessexec /usr/bin/mktemp
1.6sprocessexec /usr/bin/curl
1.6sprocessexec /usr/bin/tr
1.6sprocessexec /usr/bin/sed
1.6sprocessexec /usr/bin/head
1.6sprocessexec /usr/bin/rm
1.6sprocessexited 1: jot install: could not download jot_0.4.0_linux_amd64.tar.gz from release v0.4.0

Static findings

CRITICAL
Pipe-to-shell patternscripts/install.sh:4 · Pipe-to-shell pattern — downloads and immediately executes remote code# 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.
AST06
HIGH
Stripe-like API key pattern detecteddesktop/ask_test.go:235 · Stripe-like API key pattern detected — possible hardcoded or harvested keyif err != nil || !strings.Contains(string(b), "sk-test-1234567890abcd") {Fix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03
HIGH
Auto-update or dynamic fetch configurationdesktop/update.go:183 · Auto-update or dynamic fetch configuration — agent may load new code at runtime// SetAutoUpdateCheck turns the launch-time update check on or off.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
AWS access key pattern detectedinternal/mcp/quality_test.go:15 · AWS access key pattern detected — possible hardcoded or harvested key"Deploy key: AKIAIOSFODNN7EXAMPLE": "AWS",Fix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03
HIGH
Stripe-like API key pattern detecteddesktop/ask_test.go:226 · Stripe-like API key pattern detected — possible hardcoded or harvested keyst, 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.
AST03
MEDIUM
File permission modification commandscripts/install.sh:88 · File permission modification command — agent changes file ownership/permissionschmod 755 "$dir/jot.tmp"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
HIGH
Access to sensitive file pathsinternal/store/store_test.go:174 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesfor _, 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.
AST05
HIGH
Auto-update or dynamic fetch configurationdesktop/update.go:184 · Auto-update or dynamic fetch configuration — agent may load new code at runtimefunc (a *App) SetAutoUpdateCheck(on bool) error {Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
GitHub token pattern detectedinternal/mcp/quality_test.go:53 · GitHub token pattern detected — possible hardcoded or harvested token`{"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.
AST03
HIGH
Auto-update or dynamic fetch configurationdesktop/update.go:180 · Auto-update or dynamic fetch configuration — agent may load new code at runtime// AutoUpdateCheck reports whether the app looks for updates on launch.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathsinternal/mcp/quality_test.go:36 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files"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.
AST05
HIGH
Stripe-like API key pattern detecteddesktop/ask_test.go:218 · Stripe-like API key pattern detected — possible hardcoded or harvested keyif r.Header.Get("Authorization") != "Bearer sk-test-1234567890abcd" {Fix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03
HIGH
Auto-update or dynamic fetch configurationdesktop/frontend/dist/app.js:1256 · Auto-update or dynamic fetch configuration — agent may load new code at runtimeS.autoCheck = await api.AutoUpdateCheck().catch(() => true);Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
CRITICAL
README directs the reader to a committed installerREADME.md:121**Windows desktop app:** download the newest `jot-<version>-windows-x64-setup.exe`Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Direct script execution from GitHub raw URLscripts/install.sh:4 · Direct script execution from GitHub raw URL — unverified code source# curl -fsSL https://raw.githubusercontent.com/ArpitK24/jot/main/scripts/install.sh | shFix: Pin versions and sources; vendor anything fetched at install time.
AST06
CRITICAL
README tells the reader to click past SmartScreenREADME.md:125click *More info*, then *Run anyway*. From 0.3.1 the app updates itself: itFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Remote installer piped to shellscripts/install.sh:4 · Remote installer piped to shell# 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.
AST07

Cost to the agent

Instructions loaded
≈29 tok
1 file · 80 in bundle

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%
  1. 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.
  2. Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
  3. README directs the reader to a committed installer≈ +9 on the totalPin versions and sources; vendor anything fetched at install time.
  4. README tells the reader to click past SmartScreen≈ +9 on the totalPin versions and sources; vendor anything fetched at install time.
  5. 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.
  6. Stripe-like API key pattern detected≈ +4 on the totalNever read or enumerate credential locations; accept a documented environment variable instead.
Publish a new version to Glama, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim arpitk24Propose a patch to the maintainer