{"_id":"@adikuma/peek","name":"@adikuma/peek","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@adikuma/peek","version":"0.1.0","description":"Give Claude eyes that work from your phone. Screenshot and record local apps, surface phone-viewable URLs through a free Cloudflare tunnel.","type":"module","main":"./dist/mcp.js","bin":{"peek":"bin/peek.js","peek-mcp":"bin/peek-mcp.js"},"scripts":{"build":"tsc -p tsconfig.json","dev":"tsx src/mcp.ts","setup":"node scripts/setup.mjs","prepublishOnly":"pnpm build","test:recorder":"tsx scripts/test-recorder.ts","test:server":"tsx scripts/test-server.ts","test:cloudflared":"tsx scripts/test-cloudflared.ts","test:install":"tsx scripts/test-install.ts","test:ui-preview":"tsx scripts/test-ui-preview.ts","test:tunnel":"tsx scripts/test-tunnel.ts","test:mcp":"tsx scripts/test-mcp.ts","test:e2e":"tsx scripts/test-e2e.ts","preview:ui":"tsx scripts/preview-ui.ts","test":"pnpm test:recorder && pnpm test:server && pnpm test:cloudflared && pnpm test:install && pnpm test:ui-preview && pnpm test:mcp && pnpm test:e2e","test:all":"pnpm test && pnpm test:tunnel"},"keywords":["claude-code","mcp","playwright","screenshot","recording","tunnel"],"author":{"name":"Aditya Kumar","email":"aditya.kumar@getsolar.ai"},"license":"MIT","homepage":"https://github.com/adikuma/peek","repository":{"type":"git","url":"git+https://github.com/adikuma/peek.git"},"engines":{"node":">=20"},"packageManager":"pnpm@10.28.2","pnpm":{"onlyBuiltDependencies":["cloudflared","ffmpeg-static","playwright","playwright-core"]},"dependencies":{"@hono/node-server":"^2.0.1","@modelcontextprotocol/sdk":"^1.29.0","cloudflared":"^0.7.1","ffmpeg-static":"^5.3.0","hono":"^4.12.16","nanoid":"^5.1.11","playwright":"^1.59.1","zod":"^4.4.1"},"devDependencies":{"@types/node":"^25.6.0","tsx":"^4.21.0","typescript":"^6.0.3"},"gitHead":"d4c39807026a5c487d8001d4ece9c05077531721","_id":"@adikuma/peek@0.1.0","bugs":{"url":"https://github.com/adikuma/peek/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-0JkyUMGMH7nhk71kt5qqy2tzpbjlFYuS+ThR2b8m1nwanMm5SINv/gVQQqn5uqZdAx0xR3byM66owh5BQHs4DA==","shasum":"96ab086fdaacddf7ca944b17d4be7b5d15b80836","tarball":"https://registry.npmjs.org/@adikuma/peek/-/peek-0.1.0.tgz","fileCount":76,"unpackedSize":188320,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCAUoZ7D8wong1m5bh+ChJvmsGN/e7M6KazEzMdPz2t7QIgPymDUdJf1c9LZSrVHZdS1/Je2ynOp//DJQLWRlpARlk="}]},"_npmUser":{"name":"adikuma","email":"adityakuma0308@gmail.com"},"directories":{},"maintainers":[{"name":"adikuma","email":"adityakuma0308@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/peek_0.1.0_1778008949772_0.5083461845224362"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-05T19:22:29.670Z","0.1.0":"2026-05-05T19:22:29.923Z","modified":"2026-05-05T19:22:30.161Z"},"maintainers":[{"name":"adikuma","email":"adityakuma0308@gmail.com"}],"description":"Give Claude eyes that work from your phone. Screenshot and record local apps, surface phone-viewable URLs through a free Cloudflare tunnel.","homepage":"https://github.com/adikuma/peek","keywords":["claude-code","mcp","playwright","screenshot","recording","tunnel"],"repository":{"type":"git","url":"git+https://github.com/adikuma/peek.git"},"author":{"name":"Aditya Kumar","email":"aditya.kumar@getsolar.ai"},"bugs":{"url":"https://github.com/adikuma/peek/issues"},"license":"MIT","readme":"# Peek\n\nPeek lets Claude take screenshots and short recordings of your local app and hand you a link you can open on your phone.\n\nIt is built for the exact moment when Claude changed a UI and you want to see it, not read about it.\n\n## Install\n\nRecommended:\n\n```bash\nnpm install -g @adikuma/peek\npeek install\n```\n\nThis installs Peek globally and registers it in Claude.\n\nThen restart Claude Code or run `/reload-plugins`.\n\nLocal repo setup:\n\n```bash\npnpm install\npnpm build\npnpm setup\n```\n\nRemove it from Claude:\n\n```bash\npeek uninstall\n```\n\nThe first install may download Chromium and `cloudflared`. After that they are cached.\n\n## What it does\n\nPeek gives Claude three tools:\n\n- `screenshot`\n- `record`\n- `list`\n\nTypical flow:\n\n1. Claude opens your app URL in Chromium\n2. Peek captures a screenshot or short video\n3. Peek serves the file from your machine\n4. Cloudflare gives it a temporary public URL\n5. Claude sends you the preview and the link\n\n## When to use it\n\nUse `screenshot` for static UI checks.\n\nUse `record` when motion or interaction matters, like:\n\n- toggles\n- hover states\n- modals\n- navigation\n- small flows\n\n## Important notes\n\n- Files stay on your machine\n- The public link is temporary\n- Peek captures the supplied URL in Chromium\n- It does not capture the native Tauri or Electron window\n- For Tauri or Electron apps, Chromium can look different from the real app window\n- The viewer also supports `?theme=dark` and `?theme=light`\n\n## Config\n\nAll env vars are optional.\n\n| Env var | Default | What it does |\n|---|---|---|\n| `PEEK_PORT` | random | pin the local HTTP server port |\n| `PEEK_VIEWPORT` | `phone` | default viewport: `phone` or `desktop` |\n| `PEEK_MAX_SECONDS` | `15` | cap on record duration |\n| `PEEK_DEV_URL` | unset | prefer this host label in the viewer |\n| `PEEK_SKIP_TUNNEL` | `0` | skip Cloudflare and use local-only URLs |\n| `PEEK_DEBUG` | `0` | verbose logs to stderr |\n\n## Tests\n\n```bash\npnpm test\npnpm test:tunnel\npnpm test:all\n```\n\nUI preview:\n\n```bash\npnpm preview:ui\n```\n","readmeFilename":"README.md","_rev":"1-422df09fbeb139875b2ee6fcbf38034d"}