{"_id":"@benvinegar/termdraw","_rev":"2-1aa81dc9bf2ab61de5c2cf4d65277550","name":"@benvinegar/termdraw","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@benvinegar/termdraw","version":"0.1.0","keywords":["ascii-art","diagram","drawing","opentui","react","terminal","tui"],"author":{"name":"Ben Vinegar"},"license":"MIT","_id":"@benvinegar/termdraw@0.1.0","maintainers":[{"name":"benvinegar","email":"ben@benv.ca"}],"homepage":"https://github.com/benvinegar/termdraw#readme","bugs":{"url":"https://github.com/benvinegar/termdraw/issues"},"bin":{"termdraw":"dist/cli.js"},"dist":{"shasum":"2ed08567081b9913fcabdf33db52b62f2f161cbd","tarball":"https://registry.npmjs.org/@benvinegar/termdraw/-/termdraw-0.1.0.tgz","fileCount":27,"integrity":"sha512-3131PscwSZa+E4awDyOp9j1hDoc8yNPHaPG6DCf/VCEQzvmS8kFEaPIv8ra5mmAdAl7ZiWzOpRk464ZtFX6YjQ==","signatures":[{"sig":"MEUCIQC8zya3EgF4aHVhAVkeFnI3MuLNnsmV7hzjW8j3EIKMjgIgPpYisJxkZ/77Ys2kGsqx+YplGO7GdA0VSUX+nLBouxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6188943},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e2b8c511ac6a26b6871332a6a2755fd42056c848","scripts":{"dev":"bun --watch run src/cli.tsx","lint":"oxlint .","test":"bun test","build":"bun run clean && bun run build:lib && bun run build:cli","check":"bun run format:check && bun run lint && bun test && bun run typecheck","clean":"rm -rf dist","start":"bun run src/cli.tsx","format":"oxfmt .","prepack":"bun run build","prepare":"simple-git-hooks","lint:fix":"oxlint --fix .","build:cli":"bun build src/cli.tsx --outdir dist --target=bun && chmod +x dist/cli.js","build:lib":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","format:check":"oxfmt --check .","prepublishOnly":"bun run check"},"_npmUser":{"name":"benvinegar","email":"ben@benv.ca"},"repository":{"url":"git+https://github.com/benvinegar/termdraw.git","type":"git"},"_npmVersion":"11.11.0","description":"Object-based terminal illustrator for diagrams, UI mocks, and terminal-native graphics.","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}":["oxlint --fix --quiet"],"*.{js,jsx,ts,tsx,mjs,cjs,mts,cts,json,jsonc,md}":["oxfmt --write"]},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.44.0","react":"^19.2.5","oxlint":"^1.59.0","@types/bun":"latest","typescript":"^5.9.3","lint-staged":"^16.4.0","@types/react":"^19.2.14","@opentui/core":"^0.1.97","@opentui/react":"^0.1.97","simple-git-hooks":"^2.13.1"},"peerDependencies":{"react":"^19.0.0","@opentui/core":"^0.1.97","@opentui/react":"^0.1.97"},"simple-git-hooks":{"pre-commit":"bunx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/termdraw_0.1.0_1775743129175_0.043005614659162195","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@benvinegar/termdraw","version":"0.2.0","description":"Object-based terminal illustrator for diagrams, UI mocks, and terminal-native graphics.","keywords":["ascii-art","diagram","drawing","opentui","react","terminal","tui"],"homepage":"https://github.com/benvinegar/termdraw#readme","bugs":{"url":"https://github.com/benvinegar/termdraw/issues"},"license":"MIT","author":{"name":"Ben Vinegar"},"repository":{"type":"git","url":"git+https://github.com/benvinegar/termdraw.git"},"bin":{"termdraw":"dist/cli.js"},"type":"module","sideEffects":false,"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"start":"bun run src/cli.tsx","dev":"bun --watch run src/cli.tsx","clean":"rm -rf dist","build":"bun run clean && bun run build:lib && bun run build:cli","build:lib":"tsc -p tsconfig.build.json","build:cli":"bun build src/cli.tsx --outdir dist --target=bun && chmod +x dist/cli.js","check":"bun run format:check && bun run lint && bun test && bun run typecheck","prepack":"bun run build","prepublishOnly":"bun run check","test":"bun test","typecheck":"tsc --noEmit","format":"oxfmt .","format:check":"oxfmt --check .","lint":"oxlint .","lint:fix":"oxlint --fix .","prepare":"simple-git-hooks"},"devDependencies":{"@opentui/core":"^0.1.97","@opentui/react":"^0.1.97","@types/bun":"latest","@types/react":"^19.2.14","lint-staged":"^16.4.0","oxfmt":"^0.44.0","oxlint":"^1.59.0","react":"^19.2.5","simple-git-hooks":"^2.13.1","typescript":"^5.9.3"},"peerDependencies":{"@opentui/core":"^0.1.97","@opentui/react":"^0.1.97","react":"^19.0.0"},"simple-git-hooks":{"pre-commit":"bunx lint-staged"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs,cjs,mts,cts,json,jsonc,md}":["oxfmt --write"],"*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}":["oxlint --fix --quiet"]},"engines":{"bun":">=1.3.0"},"gitHead":"5d9105e65cf0d80082f0a91c96aa6b152024508c","_id":"@benvinegar/termdraw@0.2.0","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-K2NUF59SubcY0Wpmzcwwt2ZkYWOHmelpPtuMXm3aIk4ucHOn3jzRF8efjN5tVJXPwwkrjv/J7MPavz+STGAYEQ==","shasum":"7268af3b7d4111c4b732a8a0fafa574f9e230f65","tarball":"https://registry.npmjs.org/@benvinegar/termdraw/-/termdraw-0.2.0.tgz","fileCount":27,"unpackedSize":6206486,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEf31k3ojJ65Zo0s34O4pW0x3zod9jnX/fV/2+DHBS11AiBd0YsC4kWo/fyXQ6vY2rY2zbcbHJckS1Tzlzd6oa3g7w=="}]},"_npmUser":{"name":"benvinegar","email":"ben@benv.ca"},"directories":{},"maintainers":[{"name":"benvinegar","email":"ben@benv.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/termdraw_0.2.0_1775745814760_0.32519511354914776"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-09T13:58:49.098Z","modified":"2026-04-09T14:43:35.123Z","0.1.0":"2026-04-09T13:58:49.432Z","0.2.0":"2026-04-09T14:43:35.006Z"},"bugs":{"url":"https://github.com/benvinegar/termdraw/issues"},"author":{"name":"Ben Vinegar"},"license":"MIT","homepage":"https://github.com/benvinegar/termdraw#readme","keywords":["ascii-art","diagram","drawing","opentui","react","terminal","tui"],"repository":{"type":"git","url":"git+https://github.com/benvinegar/termdraw.git"},"description":"Object-based terminal illustrator for diagrams, UI mocks, and terminal-native graphics.","maintainers":[{"name":"benvinegar","email":"ben@benv.ca"}],"readme":"# termDRAW!\n\ntermDRAW! is an object-based terminal illustrator for diagrams, UI mocks, and terminal-native graphics.\n\n## Why termDRAW!\n\n- Make terminal-native diagrams without leaving your terminal.\n- Keep editing as you think: drawn elements stay selectable, movable, and resizable.\n- Group related content inside boxes so diagrams stay organized while you iterate.\n- Export plain text or fenced Markdown for READMEs, docs, tickets, and agent prompts.\n\n## Install\n\nRequirements:\n\n- [Bun](https://bun.sh)\n- A terminal with mouse support\n\nFrom npm:\n\n```bash\nbun add @benvinegar/termdraw\n```\n\nOr from source:\n\n```bash\ngit clone https://github.com/benvinegar/termdraw.git\ncd termdraw\nbun install\n```\n\n## Quick start\n\nStart the app from a local checkout:\n\n```bash\nbun run start\n```\n\nOr run the published CLI:\n\n```bash\nbunx @benvinegar/termdraw\n```\n\nDraw something, then press `Enter` or `Ctrl+S` to save. By default, termDRAW! writes the result to stdout after the app exits.\n\nWrite directly to a file:\n\n```bash\nbun run start -- --output diagram.txt\n```\n\nExport as a fenced Markdown code block:\n\n```bash\nbun run start -- --fenced > diagram.md\n```\n\nShow CLI help:\n\n```bash\nbun run start -- --help\n```\n\n## Usage\n\ntermDRAW! behaves more like a small vector-style editor than a paint program. Lines, boxes, and text are retained objects, so you can keep rearranging the diagram after you draw it. Boxes can also act as frames for fully contained children.\n\nEverything still snaps to terminal cells. termDRAW! outputs terminal art, not SVG or bitmap graphics.\n\nControls are shown in the app footer and tool palette.\n\n## Output examples\n\nPlain text to stdout:\n\n```bash\nbun run start > drawing.txt\n```\n\nPlain text to a file:\n\n```bash\nbun run start -- --output drawing.txt\n```\n\nMarkdown fenced output:\n\n```bash\nbun run start -- --fenced > drawing.md\n```\n\n## Embedding\n\ntermDRAW! can also be mounted as OpenTUI React components inside another terminal app.\n\n- `TermDrawApp`: the full app chrome with header, palette, footer, and splash\n- `TermDrawEditor`: the bare editor surface without the surrounding app chrome\n- `TermDraw`: an alias for `TermDrawApp`\n\nFull chrome:\n\n```tsx\nimport { createCliRenderer } from \"@opentui/core\";\nimport { createRoot } from \"@opentui/react\";\nimport { TermDrawApp } from \"@benvinegar/termdraw\";\n\nconst renderer = await createCliRenderer({\n  useMouse: true,\n  enableMouseMovement: true,\n  autoFocus: true,\n  screenMode: \"alternate-screen\",\n});\n\ncreateRoot(renderer).render(\n  <TermDrawApp\n    width=\"100%\"\n    height=\"100%\"\n    autoFocus\n    onSave={(art) => {\n      console.log(art);\n    }}\n    onCancel={() => {\n      renderer.destroy();\n    }}\n  />,\n);\n```\n\nBare editor surface:\n\n```tsx\nimport { TermDrawEditor } from \"@benvinegar/termdraw\";\n\n<TermDrawEditor width=\"100%\" height=\"100%\" autoFocus onSave={(art) => console.log(art)} />;\n```\n\n## Development\n\nIf you want to hack on termDRAW! locally:\n\n```bash\nbun run format\nbun run lint\nbun test\nbun run typecheck\n```\n\n## Contributing\n\nContributions are welcome.\n\nBefore opening a PR:\n\n- keep the change focused\n- run `bun run format`, `bun run lint`, `bun test`, and `bun run typecheck`\n- add or update tests when you change editor behavior\n- open an issue first for larger UX or architecture changes\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n## Publishing note\n\nThe unscoped `termdraw` package name is already taken on npm, so this package is configured to publish as `@benvinegar/termdraw`.\n\n## Support\n\n- Bugs and feature requests: [GitHub issues](https://github.com/benvinegar/termdraw/issues)\n- Source: [github.com/benvinegar/termdraw](https://github.com/benvinegar/termdraw)\n","readmeFilename":"README.md"}