{ "name": "terminaltui", "version": "2.1.0", "main": "dist/index.js", "scripts": { "test": "npx tsx test/run-all.ts", "test:colors": "npx tsx test/test-apple-terminal-colors.ts", "test:components": "npx tsx test/test-all-components.ts", "test:emulator": "npx tsx test/test-emulator.ts", "build": "tsup src/index.ts src/cli/index.ts src/emulator/index.ts --format esm --dts --clean --external ssh2", "dev": "tsup src/index.ts --format esm --dts --watch", "web:dev": "npm --prefix web run dev", "web:build": "npm --prefix web run build", "web:check": "npm --prefix web run check", "web:preview": "npm --prefix web run preview", "typecheck": "tsc --noEmit", "lint:dist": "node -e \"const fs=require('fs');const bad=fs.readdirSync('dist',{recursive:true}).map(String).filter(f=>/ \\\\d+(\\\\.|$)/.test(f));if(bad.length){console.error('iCloud conflict copies in dist:',bad);process.exit(1)}\"", "prepack": "npm run typecheck && npm run build && npm run lint:dist", "prepublishOnly": "npm test" }, "keywords": [ "tui", "terminal", "terminal-ui", "tui-framework", "terminal-app", "terminal-website", "cli", "ssh", "npx", "file-based-routing", "spatial-navigation", "ascii-art", "dashboard", "typescript", "interactive" ], "author": "Omar Musayev", "license": "MIT", "homepage": "https://terminaltui.dev", "repository": { "type": "git", "url": "https://github.com/omarmusayev/terminaltui.git" }, "bugs": { "url": "https://github.com/omarmusayev/terminaltui/issues" }, "description": "Next.js for the terminal — file-based routing, 42 components, 12 themes, real images and video, spatial navigation, and SSH hosting. Ship with npx.", "type": "module", "types": "dist/index.d.ts", "sideEffects": false, "exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js", "default": "./dist/index.js" }, "./emulator": { "types": "./dist/emulator/index.d.ts", "import": "./dist/emulator/index.js", "default": "./dist/emulator/index.js" }, "./package.json": "./package.json" }, "bin": { "terminaltui": "dist/cli/index.js" }, "files": [ "dist", "!**/* [0-9]", "!**/* [0-9].*", "claude/SKILL.md", "claude/prompt.md", "claude/examples", "demos/band", "demos/cinema", "demos/coffee-shop", "demos/conference", "demos/dashboard", "demos/developer-portfolio", "demos/freelancer", "demos/mac-monitor", "demos/restaurant", "demos/server-dashboard", "demos/startup", "demos/welcome", "!demos/**/dist" ], "engines": { "node": ">=18" }, "devDependencies": { "@types/node": "^25.5.0", "@types/ssh2": "^1.15.0", "ssh2": "^1.16.0", "tsup": "^8.5.1", "tsx": "^4.19.0", "typescript": "^5.9.3" }, "peerDependencies": { "node-pty": ">=1.0.0", "ssh2": "^1.16.0" }, "peerDependenciesMeta": { "node-pty": { "optional": true }, "ssh2": { "optional": true } }, "dependencies": { "esbuild": "^0.28.2", "jpeg-js": "^0.4.4", "pngjs": "^7.0.0" }, "overrides": { "picomatch": "^4.0.4" } }