{"_id":"@bosun-sh/ohtools","_rev":"3-accf48b99cdc04534374d5e405b53767","name":"@bosun-sh/ohtools","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@bosun-sh/ohtools","version":"0.1.0","license":"MIT","_id":"@bosun-sh/ohtools@0.1.0","maintainers":[{"name":"ggofri","email":"ignaciojulianramirez@gmail.com"}],"homepage":"https://ohtools.dev","bugs":{"url":"https://github.com/bosun-sh/ohtools/issues"},"bin":{"ohtools":"dist/bin/ohtools.js"},"dist":{"shasum":"f38f695f8d9726b62cdb891b33b753acd5cff98f","tarball":"https://registry.npmjs.org/@bosun-sh/ohtools/-/ohtools-0.1.0.tgz","fileCount":33,"integrity":"sha512-VJiJMzLhl4mE8SPJAoKZnYpio2KqWLLbQXh91VzeosN+JBBYU6RzDDZ7U9GOhOE7xEzqcYfCXotwXMDnVGf2NA==","signatures":[{"sig":"MEQCIBT0RP3598hCWoHkA7+omMdpI7IV0lGMkLtEoQvwq/hTAiBBgjIRV68gIiWtdGI4jC/4mkKMSk1vH0AUo9fXJApIVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2767404},"type":"module","shasum":"f38f695f8d9726b62cdb891b33b753acd5cff98f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./adapters/cli":{"types":"./dist/adapters/cli.d.ts","import":"./dist/adapters/cli.js"},"./adapters/mcp":{"types":"./dist/adapters/mcp.d.ts","import":"./dist/adapters/mcp.js"}},"scripts":{"test":"bun test","build":"bun run clean && bun build ./src/index.ts ./src/schemas.ts ./src/adapters/mcp.ts ./src/adapters/cli.ts ./src/bin/ohtools.ts --outdir ./dist --target bun --format esm && tsc -p tsconfig.build.json && bun ../../scripts/fix-declarations.ts && chmod +x dist/bin/ohtools.js","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"bun run build && bun run --cwd ../.. pack:check","publish:release":"bun run --cwd ../.. release:check && bun publish --access public"},"_npmUser":{"name":"ggofri","email":"ignaciojulianramirez@gmail.com"},"_integrity":"sha512-VJiJMzLhl4mE8SPJAoKZnYpio2KqWLLbQXh91VzeosN+JBBYU6RzDDZ7U9GOhOE7xEzqcYfCXotwXMDnVGf2NA==","repository":{"url":"https://github.com/bosun-sh/ohtools.git","type":"git"},"_npmVersion":"10.8.3","description":"Bun-first framework for explorable AI tools with MCP and CLI adapters.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.13.10","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ohtools_0.1.0_1778121940868_0.20261238729338849","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bosun-sh/ohtools","version":"0.1.1","license":"MIT","_id":"@bosun-sh/ohtools@0.1.1","maintainers":[{"name":"ggofri","email":"ignaciojulianramirez@gmail.com"}],"homepage":"https://ohtools.dev","bugs":{"url":"https://github.com/bosun-sh/ohtools/issues"},"bin":{"ohtools":"dist/bin/ohtools.js"},"dist":{"shasum":"753df71c455793f3c46e69fa0c4d8c9368d12f00","tarball":"https://registry.npmjs.org/@bosun-sh/ohtools/-/ohtools-0.1.1.tgz","fileCount":33,"integrity":"sha512-WhCCsMekTRBqzdVZRL06BhrFJ22OyuIPojdzPGsNA/4xGXOCOtcP7Eo9MZ/tzBQFDxj7L/t2PgYb4Sit6IPZKA==","signatures":[{"sig":"MEUCIQCL+Eul1OFrsN2Qe+bJ2DW15e7u7IrAInA1wxiBMFu7tQIgMkuiy6+sdHDgl0n5oxqQ+t/MEcp6HEhZ/vew3qABSRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2770140},"type":"module","shasum":"753df71c455793f3c46e69fa0c4d8c9368d12f00","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./adapters/cli":{"types":"./dist/adapters/cli.d.ts","import":"./dist/adapters/cli.js"},"./adapters/mcp":{"types":"./dist/adapters/mcp.d.ts","import":"./dist/adapters/mcp.js"}},"scripts":{"test":"bun test","build":"bun run clean && bun build ./src/index.ts ./src/schemas.ts ./src/adapters/mcp.ts ./src/adapters/cli.ts ./src/bin/ohtools.ts --outdir ./dist --target bun --format esm && tsc -p tsconfig.build.json && bun ../../scripts/fix-declarations.ts && chmod +x dist/bin/ohtools.js","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"bun run build && bun run --cwd ../.. pack:check","publish:release":"bun run --cwd ../.. release:check && bun publish --access public"},"_npmUser":{"name":"ggofri","email":"ignaciojulianramirez@gmail.com"},"_integrity":"sha512-WhCCsMekTRBqzdVZRL06BhrFJ22OyuIPojdzPGsNA/4xGXOCOtcP7Eo9MZ/tzBQFDxj7L/t2PgYb4Sit6IPZKA==","repository":{"url":"https://github.com/bosun-sh/ohtools.git","type":"git"},"_npmVersion":"10.8.3","description":"Bun-first framework for explorable AI tools with MCP and CLI adapters.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"effect":"^3.13.10","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ohtools_0.1.1_1779419454453_0.7585563415064918","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bosun-sh/ohtools","version":"0.2.0","description":"Bun-first framework for explorable AI tools with MCP and CLI adapters.","type":"module","license":"Apache-2.0","author":{"name":"bosun.sh"},"keywords":["ai","agents","workflow","typescript","bun","mcp","tools","cli"],"repository":{"type":"git","url":"git+https://github.com/bosun-sh/ohtools.git"},"homepage":"https://github.com/bosun-sh/ohtools#readme","bugs":{"url":"https://github.com/bosun-sh/ohtools/issues"},"publishConfig":{"access":"public"},"bin":{"ohtools":"dist/bin/ohtools.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./adapters/mcp":{"types":"./dist/adapters/mcp.d.ts","import":"./dist/adapters/mcp.js"},"./adapters/cli":{"types":"./dist/adapters/cli.d.ts","import":"./dist/adapters/cli.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"}},"engines":{"bun":">=1.0.0"},"scripts":{"build":"bun run clean && bun build ./src/index.ts ./src/schemas.ts ./src/adapters/mcp.ts ./src/adapters/cli.ts ./src/bin/ohtools.ts --outdir ./dist --target bun --format esm && tsc -p tsconfig.build.json && bun ../../scripts/fix-declarations.ts && chmod +x dist/bin/ohtools.js","clean":"rm -rf dist","prepublishOnly":"bun run build && bun run --cwd ../.. pack:check","publish:release":"bun run --cwd ../.. release:check && npm publish --access public","publish:npm":"npm publish --access public","typecheck":"tsc --noEmit","test":"bun test"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","effect":"^3.13.10"},"gitHead":"a22036033e53b2978402fcf2109d3eb92697d4a0","_id":"@bosun-sh/ohtools@0.2.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-eQZbZ62tX3N9RjpbD+65CICavK0w95Y7B6sh6jM+eGo26Qj+Jt5LxXUgXbJRUceZRm2wTNNY+ahsOFg/OoP2cA==","shasum":"4fa7e17248b733f5f18416b55a8a6fb7c75028f3","tarball":"https://registry.npmjs.org/@bosun-sh/ohtools/-/ohtools-0.2.0.tgz","fileCount":33,"unpackedSize":2776392,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDUIgGQUkYwSHUbT6D/XDp6h2hcJdSH635aFoJfROV7mAiASFSJ1ubN6Kzg2n1UCw+xLEiSnULHQ2/n05IcZD24LhQ=="}]},"_npmUser":{"name":"ggofri","email":"ignaciojulianramirez@gmail.com"},"directories":{},"maintainers":[{"name":"ggofri","email":"ignaciojulianramirez@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ohtools_0.2.0_1782688934092_0.5739086970145493"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T02:45:40.796Z","modified":"2026-06-28T23:22:14.412Z","0.1.0":"2026-05-07T02:45:41.053Z","0.1.1":"2026-05-22T03:10:54.634Z","0.2.0":"2026-06-28T23:22:14.269Z"},"bugs":{"url":"https://github.com/bosun-sh/ohtools/issues"},"license":"Apache-2.0","homepage":"https://github.com/bosun-sh/ohtools#readme","repository":{"type":"git","url":"git+https://github.com/bosun-sh/ohtools.git"},"description":"Bun-first framework for explorable AI tools with MCP and CLI adapters.","maintainers":[{"name":"ggofri","email":"ignaciojulianramirez@gmail.com"}],"readme":"# Ohtools\n\nDefine tool registries with a fluent TypeScript API, explore them without side\neffects, run them through an Effect runtime, and expose them through MCP or CLI.\n\nUse the published\n[`@bosun-sh/ohtools`](https://www.npmjs.com/package/@bosun-sh/ohtools)\npackage for npm-backed CLI, install, and version operations.\n\nCreate a new Bun TypeScript app:\n\n```sh\nnpx @bosun-sh/ohtools create my-tools\ncd my-tools\nbun install\nbun run ohtools:list\n```\n\nOr initialize an existing project:\n\n```sh\nnpx @bosun-sh/ohtools init\n```\n\nBoth commands install `.agents/skills/ohtools` so agents can discover Ohtools\nproject guidance locally.\n\nProjects that do not already include the scaffolded skill can install the shared\nskill registry entry:\n\n```sh\nnpx skills add https://github.com/bosun-sh/skills --skill ohtools\n```\n\n```ts\nimport { Ohtools, jsonSchema } from \"@bosun-sh/ohtools\";\n\nexport default new Ohtools().tool(\"hello\", {\n  description: \"Return a greeting.\",\n  input: jsonSchema<{ name: string }>({\n    type: \"object\",\n    properties: { name: { type: \"string\" } },\n    required: [\"name\"]\n  }),\n  run: ({ name }) => ({ message: `Hello, ${name}` })\n});\n```\n\nFor modular apps, define tools once and compose hierarchy elsewhere:\n\n```ts\nimport { Effect } from \"effect\";\nimport { Ohtools, defineGroup, defineTool, jsonSchema } from \"@bosun-sh/ohtools\";\n\nconst hello = defineTool({\n  id: \"people.hello\",\n  description: \"Return a greeting.\",\n  input: jsonSchema<{ name: string }>({\n    type: \"object\",\n    properties: { name: { type: \"string\" } },\n    required: [\"name\"]\n  }),\n  run: ({ name }) => ({ message: `Hello, ${name}` })\n});\n\nconst people = defineGroup({ id: \"people\", description: \"People tools.\" }, (group) =>\n  group.tool(hello)\n);\n\nconst runtime = new Ohtools().group(people).runtime();\nconst result = await Effect.runPromise(runtime.runTool(hello, { name: \"Ada\" }));\n\nresult.output.message;\n```\n","readmeFilename":"README.md","keywords":["ai","agents","workflow","typescript","bun","mcp","tools","cli"],"author":{"name":"bosun.sh"}}