{"_id":"@alr51307/noimg","_rev":"2-414f015edbc837a2a1de57fa166941cf","name":"@alr51307/noimg","dist-tags":{"latest":"0.3.1"},"versions":{"0.3.0":{"name":"@alr51307/noimg","version":"0.3.0","keywords":["mcp","model-context-protocol","noimg","stdio","codex","claude-code","cursor","gemini-cli","ai-agent"],"license":"MIT","_id":"@alr51307/noimg@0.3.0","maintainers":[{"name":"alr51307","email":"alr51307@gmail.com"}],"homepage":"https://github.com/jhuang-tw/noimg#readme","bugs":{"url":"https://github.com/jhuang-tw/noimg/issues"},"bin":{"noimg":"dist/cli.js"},"dist":{"shasum":"74ef0a7405c8b018f372031c346bf0f8d32ee450","tarball":"https://registry.npmjs.org/@alr51307/noimg/-/noimg-0.3.0.tgz","fileCount":17,"integrity":"sha512-kHXnBSAr+z95vuEfnIa/Jn+5Vl6oNrWxU7AX4p34NnKKA7ekWal/tlx8cUHAZaxMXzKLxtzvrFiqZ3fF3EfHlA==","signatures":[{"sig":"MEUCIQDHtRQFuoQEBILdc6XeMaUBTcDfOpPDsktL+8LszX20HwIgHrh0H2foTzyrbjH0qIIih0CQmAamxWZfLFCTAUXk00g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211093},"type":"module","engines":{"node":">=20"},"gitHead":"f3fb92966af8a63bdc2758dd63baa08bf061b41c","scripts":{"test":"npm run build && node test/smoke.mjs && node test/architecture.mjs","build":"npm run clean && tsc -p tsconfig.json","check":"npm test && npm audit --omit=dev && node dist/cli.js --version && node dist/cli.js --help","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"alr51307","email":"alr51307@gmail.com"},"repository":{"url":"git+https://github.com/jhuang-tw/noimg.git","type":"git"},"_npmVersion":"10.9.2","description":"A tiny stdio-only MCP that makes @noimg mean no image generation for the current request.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.1.5","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.0","@types/node":"^24.3.0","@modelcontextprotocol/client":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/noimg_0.3.0_1787499293068_0.14046403609232438","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@alr51307/noimg","version":"0.3.1","description":"A tiny stdio-only MCP that makes @noimg mean no image generation for the current request.","type":"module","bin":{"noimg":"dist/cli.js"},"scripts":{"clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","build":"npm run clean && tsc -p tsconfig.json","test":"npm run build && node test/smoke.mjs && node test/architecture.mjs","check":"npm test && npm audit --omit=dev && node dist/cli.js --version && node dist/cli.js --help","prepack":"npm run build","prepublishOnly":"npm run check"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"keywords":["mcp","model-context-protocol","noimg","stdio","codex","claude-code","cursor","gemini-cli","ai-agent"],"repository":{"type":"git","url":"git+https://github.com/jhuang-tw/noimg.git"},"bugs":{"url":"https://github.com/jhuang-tw/noimg/issues"},"homepage":"https://github.com/jhuang-tw/noimg#readme","dependencies":{"@modelcontextprotocol/server":"^2.0.0","zod":"^4.1.5"},"devDependencies":{"@modelcontextprotocol/client":"^2.0.0","@types/node":"^24.3.0","typescript":"^6.0.0"},"license":"MIT","_id":"@alr51307/noimg@0.3.1","gitHead":"d0f362dec5160a5d9fa4ac67514cf87207b09bae","_nodeVersion":"24.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Cxb0Nq7nVvyYyTi2NwBFJu/PptqlKcB8bG6oe8+3bvj012x9P1HEYfPVtua+V33NDx0wLC0V+xI0TyxsnNAQdA==","shasum":"39f31f85ae070fb6d71d5d223141772f1e0f12fc","tarball":"https://registry.npmjs.org/@alr51307/noimg/-/noimg-0.3.1.tgz","fileCount":17,"unpackedSize":212063,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCeKNaM75ZzDqIzdtJrODoFMS7hD4Mnk4P47+vSdvjCxAIhAMK2azQx67EivV55bPqmlLTpWKaiycEmybQx3xwfZj5n"}]},"_npmUser":{"name":"alr51307","email":"alr51307@gmail.com"},"directories":{},"maintainers":[{"name":"alr51307","email":"alr51307@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/noimg_0.3.1_1787500533111_0.20009347436224112"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-23T15:34:52.965Z","modified":"2026-08-23T15:55:33.416Z","0.3.0":"2026-08-23T15:34:53.203Z","0.3.1":"2026-08-23T15:55:33.275Z"},"bugs":{"url":"https://github.com/jhuang-tw/noimg/issues"},"license":"MIT","homepage":"https://github.com/jhuang-tw/noimg#readme","keywords":["mcp","model-context-protocol","noimg","stdio","codex","claude-code","cursor","gemini-cli","ai-agent"],"repository":{"type":"git","url":"git+https://github.com/jhuang-tw/noimg.git"},"description":"A tiny stdio-only MCP that makes @noimg mean no image generation for the current request.","maintainers":[{"name":"alr51307","email":"alr51307@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"assets/logo.png\" alt=\"NoIMG logo\" width=\"220\" />\n</p>\n\n<h1 align=\"center\">NoIMG</h1>\n\n<p align=\"center\">\n  <a href=\"https://github.com/jhuang-tw/noimg/actions/workflows/ci.yml\"><img src=\"https://github.com/jhuang-tw/noimg/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"MIT License\" /></a>\n  <img src=\"https://img.shields.io/badge/transport-stdio-5B5BD6.svg\" alt=\"stdio only\" />\n  <img src=\"https://img.shields.io/badge/network-none-success.svg\" alt=\"no network listener\" />\n  <img src=\"https://img.shields.io/badge/images-nope-lightgrey.svg\" alt=\"images: nope\" />\n</p>\n\n<p align=\"center\"><strong>Stop agents from generating images when nobody asked for one.</strong></p>\n\n<p align=\"center\"><code>@noimg</code> means explicit <strong>NON-IMAGE OUTPUT</strong>.</p>\n\n> **Experimental / made for fun.** NoIMG is a tiny hobby project, not a platform-level kill switch. It can improve the odds that `@noimg` stays non-image, but it is **not 100% reliable** because the host still decides tool routing. Sometimes the agent may still reach for the crayons. `¯\\_(ツ)_/¯`\n\n---\n\nYou:\n\n```text\n@noimg show me the architecture\n```\n\nAgent:\n\n```text\nGenerating a cinematic image now...\n```\n\nYou: `(ಠ_ಠ)`\n\nThat is the bug NoIMG exists to prevent.\n\n```text\n@noimg\n→ HARD BLOCK image generation / editing / rendering\n→ keep doing the actual task\n```\n\nMermaid, SVG source, HTML, code, ASCII, and compatible tools can keep going. The pixels simply lose voting rights.\n\n## Public edition: deliberately boring\n\nNoIMG's public runtime is **stdio only**.\n\n- no HTTP server\n- no open port\n- no ngrok\n- no Cloudflare Worker\n- no OAuth\n- no tokens\n- no telemetry\n- no runtime outbound network\n\nOne process talks to one local MCP client over stdin/stdout. That is it. We bravely resisted adding a control plane.\n\n## Install\n\nOfficial npm package:\n\n```bash\nnpx -y @alr51307/noimg@0.3.1\n```\n\nFor MCP clients, use the same pinned package command. The executable is still `noimg`; the scope just makes package ownership explicit.\n\nPrefer the scoped package name. A bare npm package named `noimg` is **not** this project.\n\nWant source instead?\n\n```bash\ngit clone https://github.com/jhuang-tw/noimg.git\ncd noimg\nnpm ci\nnpm run build\nnode dist/cli.js\n```\n\nSee [docs/usage.md](docs/usage.md) for client examples.\n\n## Docs\n\n- [Usage](docs/usage.md)\n- [Development](docs/development.md)\n- [Security policy](SECURITY.md)\n\n## License\n\nMIT. Use it responsibly, preferably without accidentally inventing NoIMG Enterprise.\n","readmeFilename":"README.md"}