{"_id":"@allternit/plugin-sdk","_rev":"3-43dadd39b5674a582e93275d61ef5bba","name":"@allternit/plugin-sdk","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@allternit/plugin-sdk","version":"1.0.0","keywords":["llm","plugins","mcp","ai","allternit","universal","cross-platform","claude","copilot","codex","langchain"],"author":{"name":"Allternit","email":"plugins@allternit.com"},"license":"MIT","_id":"@allternit/plugin-sdk@1.0.0","maintainers":[{"name":"allternit","email":"allternitpbc@gmail.com"}],"homepage":"https://docs.allternit.com/plugin-sdk","bugs":{"url":"https://github.com/allternit/plugin-sdk/issues"},"bin":{"allternit-plugin":"bin/allternit-plugin.js"},"dist":{"shasum":"7ae20b94547b066ee918d7105aa2825bd46120e9","tarball":"https://registry.npmjs.org/@allternit/plugin-sdk/-/plugin-sdk-1.0.0.tgz","fileCount":38,"integrity":"sha512-bWEgGMSHRNs9+mLGipqelTc9zQ4VRC1yTN8QX7JD6XIZLYB/DzrxKdTln925B4xfRV8BlhZc/oO5Q+T8BYZ0KQ==","signatures":[{"sig":"MEUCIGopO8D4UbiFQFMrGFEmb09TJdVUynfwviJ2d7qaSEkIAiEAkocdJ4ulpEmdcsU1LdikV1ls1Aw9M6eboCtgY4/5D9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216089},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2e4b1b64af190612a3d23db215c69a268bc01afe","scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","clean":"rm -rf dist","postversion":"git push && git push --tags","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"allternit","email":"allternitpbc@gmail.com"},"repository":{"url":"git+https://github.com/allternit/plugin-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Universal plugin runtime for LLM platforms - build once, run anywhere","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.14.2","cors":"^2.8.5","express":"^4.18.2","commander":"^11.1.0","@modelcontextprotocol/sdk":"^0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.51.0","vitest":"^0.34.6","@types/ws":"^8.5.8","typescript":"^5.2.2","@types/cors":"^2.8.15","@types/node":"^20.8.0","@types/express":"^4.17.20"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plugin-sdk_1.0.0_1775916887545_0.010710523204064737","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@allternit/plugin-sdk","version":"1.0.1","keywords":["llm","plugins","mcp","ai","allternit","universal","cross-platform","claude","copilot","codex","langchain"],"author":{"name":"Allternit","email":"plugins@allternit.com"},"license":"MIT","_id":"@allternit/plugin-sdk@1.0.1","maintainers":[{"name":"allternit","email":"allternitpbc@gmail.com"}],"homepage":"https://docs.allternit.com/plugin-sdk","bugs":{"url":"https://github.com/allternit/plugin-sdk/issues"},"bin":{"allternit-plugin":"bin/allternit-plugin.js"},"dist":{"shasum":"17d9db3bb530590b30fdaa95732903bcc13677d6","tarball":"https://registry.npmjs.org/@allternit/plugin-sdk/-/plugin-sdk-1.0.1.tgz","fileCount":6,"integrity":"sha512-HrtZFDKksPBSONC82T3tGQVaf6v6F8eZsBVJRzehZ77UDvlo2FoPuns5PHsnVCb8VANIYjqJf8L4GuYhTvMr0w==","signatures":[{"sig":"MEUCIDQtAKvpFWuRIn+tL2gIZaUMH8fM/2mEepS/K3u4jIEUAiEA1Ooe+YL6GJMDjcuHI8aJ5Qz4G/NF751DH6PqW/D8Ct8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55014},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","lint":"eslint src/**/*.ts","test":"vitest","build":"tsc","clean":"rm -rf dist","postversion":"git push && git push --tags"},"_npmUser":{"name":"allternit","email":"allternitpbc@gmail.com"},"repository":{"url":"git+https://github.com/allternit/plugin-sdk.git","type":"git"},"_npmVersion":"11.9.0","description":"Universal plugin runtime for LLM platforms - build once, run anywhere","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.14.2","cors":"^2.8.5","express":"^4.18.2","commander":"^11.1.0","@modelcontextprotocol/sdk":"^0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.51.0","vitest":"^0.34.6","@types/ws":"^8.5.8","typescript":"^5.2.2","@types/cors":"^2.8.15","@types/node":"^20.8.0","@types/express":"^4.17.20"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/plugin-sdk_1.0.1_1776108768638_0.20920702387423962","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@allternit/plugin-sdk","version":"1.0.2","description":"Universal plugin runtime for LLM platforms - build once, run anywhere","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./package.json":"./package.json"},"bin":{"allternit-plugin":"bin/allternit-plugin.js"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest --passWithNoTests","lint":"eslint src","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build","postversion":"git push && git push --tags"},"keywords":["llm","plugins","mcp","ai","allternit","universal","cross-platform","claude","copilot","codex","langchain"],"author":{"name":"Allternit","email":"plugins@allternit.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/allternit/plugin-sdk.git"},"bugs":{"url":"https://github.com/allternit/plugin-sdk/issues"},"homepage":"https://docs.allternit.com/plugin-sdk","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^0.4.0","commander":"^11.1.0","express":"^4.18.2","cors":"^2.8.5","ws":"^8.14.2"},"devDependencies":{"@types/node":"^20.8.0","@types/express":"^4.17.20","@types/cors":"^2.8.15","@types/ws":"^8.5.8","typescript":"^5.2.2","vitest":"^0.34.6","eslint":"^9.0.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_id":"@allternit/plugin-sdk@1.0.2","gitHead":"586aaecc85bb83fb7ddf28ef03277b4b89404b96","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-DBM/lcTAHlIXSxa6HkDXj2+59s8QhEgbWLrXZ5KrgJTPyBRWi+TEyahDnhwfwtjgYRWA4Bpzgy/79D4a3uMsEg==","shasum":"b78709a14f0c808e7798ba91091f7dfa8a1a0efe","tarball":"https://registry.npmjs.org/@allternit/plugin-sdk/-/plugin-sdk-1.0.2.tgz","fileCount":38,"unpackedSize":216430,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDHgF7lsYEWX2twX/hK8TmNfSxyaQuNZDOxPkXnUtj5JQIgLLtx8C0YhWqKHSPU7oCnwHCNwz3f5QzwA6avn5rZkQA="}]},"_npmUser":{"name":"allternit","email":"allternitpbc@gmail.com"},"directories":{},"maintainers":[{"name":"allternit","email":"allternitpbc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-sdk_1.0.2_1788561154452_0.9143679289453521"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-11T14:14:47.475Z","modified":"2026-09-04T22:32:34.759Z","1.0.0":"2026-04-11T14:14:47.742Z","1.0.1":"2026-04-13T19:32:48.816Z","1.0.2":"2026-09-04T22:32:34.608Z"},"bugs":{"url":"https://github.com/allternit/plugin-sdk/issues"},"author":{"name":"Allternit","email":"plugins@allternit.com"},"license":"MIT","homepage":"https://docs.allternit.com/plugin-sdk","keywords":["llm","plugins","mcp","ai","allternit","universal","cross-platform","claude","copilot","codex","langchain"],"repository":{"type":"git","url":"git+https://github.com/allternit/plugin-sdk.git"},"description":"Universal plugin runtime for LLM platforms - build once, run anywhere","maintainers":[{"name":"allternit","email":"allternitpbc@gmail.com"}],"readme":"# Allternit Universal Plugin SDK\n\n**Write once. Run on any LLM platform.**\n\nThe Universal Plugin SDK lets you build plugins that work on Claude Desktop, VS Code, OpenAI Codex, Cursor, LangChain, and more—all from a single codebase.\n\n---\n\n## 🚀 Quick Start\n\n```bash\n# Install the SDK\nnpm install -g @allternit/plugin-sdk\n\n# Create a plugin\nallternit-plugin create my-plugin\ncd my-plugin\nnpm install\nnpm run build\n\n# Run it\nallternit-plugin run --input \"Hello world\"\n```\n\n---\n\n## 🌍 Three Ways to Work with Templates\n\n### 1. **Template → Plugin** (Instant Use)\nYour 76 templates become ready-to-use plugins. Users install and run immediately.\n\n```bash\n# Convert all templates\n./scripts/convert-all.sh\n\n# Publish to NPM\nnpm publish --access public\n\n# Users install\nnpm install -g @allternit/market-research-plugin\n\n# And use\nallternit-plugin run market-research --topic \"AI\"\n```\n\n### 2. **Template → Scaffold** (Customize)\nUse templates as starting points for custom plugins.\n\n```bash\n# Create from template\nallternit-plugin create my-research --template market-research\n\n# Customize the generated code\ncd my-research\nvim src/index.ts  # Adapt template logic\n\n# Publish your version\nnpm publish\n```\n\n### 3. **From Scratch** (Build New)\nCreate completely custom plugins.\n\n```bash\n# Blank plugin with TODOs\nallternit-plugin create my-tool\n\n# Edit and implement\ncd my-tool\nvim src/index.ts  # Fill in your logic\n```\n\n---\n\n## 📦 Platform Support\n\n| Platform | Adapter | Status |\n|----------|---------|--------|\n| Claude Desktop | MCP | ✅ Ready |\n| VS Code | Extension | ✅ Ready |\n| OpenAI Codex | CLI | ✅ Ready |\n| Cursor | MCP | ✅ Ready |\n| LangChain | Python | ✅ Ready |\n| HTTP API | REST | ✅ Ready |\n\n---\n\n## 🏗️ Architecture\n\n```\nYour Plugin (single codebase)\n    ↓\nUniversal Plugin SDK\n    ↓\n┌─────────┬──────────┬─────────┬─────────┐\n│ MCP     │ HTTP     │ CLI     │ VS Code │\n│ Adapter │ Adapter  │ Adapter │ Adapter │\n└────┬────┴────┬─────┴────┬────┴────┬────┘\n     ↓         ↓          ↓         ↓\n  Claude    Browser   Terminal   VS Code\n  Desktop   App       (Codex)    Extension\n```\n\n**Key concept:** Write your plugin once using the `PluginHost` interface. The SDK adapts it to each platform automatically.\n\n---\n\n## 📝 Example Plugin\n\n```typescript\nimport { PluginHost } from '@allternit/plugin-sdk';\n\nexport async function run(host: PluginHost, params: any) {\n  // Works everywhere: Claude, VS Code, Codex...\n  \n  // 1. Use LLM\n  const result = await host.llm.complete(\n    `Analyze: ${params.topic}`\n  );\n  \n  // 2. Render UI (adapts to platform)\n  host.ui.renderMarkdown(result);\n  \n  // 3. Graceful degradation\n  if (host.tools.has('browser')) {\n    // Use browser if available\n    return host.tools.execute('browser', { url: params.url });\n  }\n  \n  // Fallback to LLM knowledge\n  return host.llm.complete(`Research: ${params.url}`);\n}\n```\n\n---\n\n## 📚 Documentation\n\n| Document | Description |\n|----------|-------------|\n| [`QUICKSTART.md`](docs/QUICKSTART.md) | 5-minute setup guide |\n| [`CLI_GUIDE.md`](CLI_GUIDE.md) | Complete CLI reference |\n| [`TEMPLATE_WORKFLOWS.md`](TEMPLATE_WORKFLOWS.md) | Template usage patterns |\n| [`PROJECT_STATUS.md`](PROJECT_STATUS.md) | Current status & checklist |\n| [`NEXT_STEPS.md`](NEXT_STEPS.md) | Publishing guide |\n| [`website/`](website/) | Full documentation site |\n\n---\n\n## 🛠️ CLI Commands\n\n```bash\n# Create plugins\nallternit-plugin create my-plugin                    # From scratch\nallternit-plugin create my-plugin -t market-research # From template\n\n# Convert templates\nallternit-plugin convert -i template.tsx -o ./plugin    # Single\nallternit-plugin convert-all -i ./templates -o ./out    # Batch\n\n# Run plugins\nallternit-plugin run my-plugin --input \"test\"\nallternit-plugin serve --port 3000\n\n# Validate & package\nallternit-plugin validate ./my-plugin\nallternit-plugin package ./my-plugin\n```\n\n---\n\n## 📂 Project Structure\n\n```\nallternit-plugin-sdk/\n├── src/                    # SDK source\n│   ├── adapters/           # 6 platform adapters\n│   │   ├── mcp/            # Claude/Cursor\n│   │   ├── http/           # REST API\n│   │   ├── cli/            # Terminal/Codex\n│   │   ├── vscode/         # VS Code extension\n│   │   ├── langchain/      # Python/LangChain\n│   │   └── native/         # Allternit native\n│   └── types.ts            # Core interfaces\n├── bin/                    # CLI entry point\n├── docs/                   # Markdown documentation\n├── website/                # Docusaurus site\n├── scripts/                # Conversion scripts\n└── dist/                   # Compiled output\n```\n\n---\n\n## 🎯 Use Cases\n\n### For Template Library Owners\n```bash\n# Convert 76 templates → 76 plugins\n./scripts/convert-all.sh\n\n# Publish to NPM\nfor d in allternit-plugins/*/; do\n  (cd \"$d\" && npm publish --access public)\ndone\n```\n\n### For Plugin Developers\n```bash\n# Scaffold from template\nallternit-plugin create my-tool --template code-review\n\n# Customize\nvim src/index.ts\n\n# Test\nallternit-plugin run --input \"test\"\n\n# Publish\nnpm publish\n```\n\n### For End Users\n```bash\n# Install and use\nnpm install -g @allternit/market-research-plugin\nallternit-plugin run market-research --topic \"EVs\"\n```\n\n---\n\n## 🔧 Platform-Specific Setup\n\n### Claude Desktop\n```json\n{\n  \"mcpServers\": {\n    \"allternit\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@allternit/plugin-sdk\", \"serve\", \"--adapter\", \"mcp\"]\n    }\n  }\n}\n```\n\n### VS Code\n```typescript\nimport { loadPlugin } from '@allternit/plugin-sdk/adapters/vscode';\nconst plugin = await loadPlugin('@allternit/market-research-plugin');\n```\n\n### HTTP API\n```bash\ncurl http://localhost:3000/v1/execute/market-research \\\n  -d '{\"topic\": \"AI\"}'\n```\n\n---\n\n## 📦 Publishing\n\n1. **Create NPM Organization**\n   ```bash\n   # Go to https://www.npmjs.com/org/create\n   # Name: allternit\n   ```\n\n2. **Add GitHub Secret**\n   ```bash\n   npm token create\n   # Add to: https://github.com/allternit/plugin-sdk/settings/secrets\n   # Name: NPM_TOKEN\n   ```\n\n3. **Publish**\n   ```bash\n   git tag v1.0.0\n   git push origin v1.0.0\n   # GitHub Actions auto-publishes\n   ```\n\nSee [`NEXT_STEPS.md`](NEXT_STEPS.md) for detailed instructions.\n\n---\n\n## 🤝 Contributing\n\n```bash\n# Clone\ngit clone https://github.com/allternit/plugin-sdk.git\ncd plugin-sdk\n\n# Install\nnpm install\n\n# Build\nnpm run build\n\n# Test\nnpm test\n```\n\n---\n\n## 📄 License\n\nMIT © Allternit\n\n---\n\n## 🔗 Links\n\n- [Documentation](https://plugins.allternit.com) (deploy after setup)\n- [NPM Package](https://www.npmjs.com/package/@allternit/plugin-sdk)\n- [GitHub](https://github.com/allternit/plugin-sdk)\n- [Issues](https://github.com/allternit/plugin-sdk/issues)\n","readmeFilename":"README.md"}