{"_id":"@calebmabry/wami","_rev":"6-5e1fd00b1b6b59af39d852bb9bab40b7","name":"@calebmabry/wami","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@calebmabry/wami","version":"0.1.0","keywords":["cli","tui","terminal","developer-tools","repository","package-manager"],"author":{"name":"Caleb Mabry"},"license":"MIT","_id":"@calebmabry/wami@0.1.0","maintainers":[{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"}],"homepage":"https://github.com/caleb-mabry/wami#readme","bugs":{"url":"https://github.com/caleb-mabry/wami/issues"},"bin":{"wami":"dist/cli.js"},"dist":{"shasum":"81a736707ca65ac7066faeb11b80021c86574397","tarball":"https://registry.npmjs.org/@calebmabry/wami/-/wami-0.1.0.tgz","fileCount":3,"integrity":"sha512-lOyo0qb5iKHLqc05qM53f/u62XuknxIuJxBsjiQeGpmZodP3YbYiMtWzwf+DftxUJ3KTQ8szFy86JLD+Ji95ew==","signatures":[{"sig":"MEQCIE9yodWTaaqqU9VKzSfaqItjAS+3CvsuEHIEIyG7mLohAiAk4joKZKKHHx8AM6ii0Ib48TAduSsfoafbxhoeXK/Rlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91598},"type":"module","module":"src/cli.tsx","gitHead":"a8489124f8504ef33b6ff06804f5f47458c97a8f","scripts":{"dev":"bun run src/cli.tsx","build":"bun build src/cli.tsx --outdir dist --target node --format esm --external react --external ink --external yoga-layout-prebuilt","start":"bun run dist/cli.js","publish":"bun run build && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"},"repository":{"url":"git+https://github.com/caleb-mabry/wami.git","type":"git"},"_npmVersion":"11.8.0","description":"Where Am I - A TUI tool that detects your repository and shows available commands","directories":{},"_nodeVersion":"25.5.0","dependencies":{"ink":"^6.7.0","react":"^19.2.4","ink-spinner":"^5.0.0","yoga-layout-prebuilt":"^1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/node":"^25.2.3","@types/react":"^19.2.13"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/wami_0.1.0_1770771948683_0.7806961698949277","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.1":{"name":"@calebmabry/wami","version":"0.1.1","keywords":["cli","tui","terminal","developer-tools","repository","package-manager"],"author":{"name":"Caleb Mabry"},"license":"MIT","_id":"@calebmabry/wami@0.1.1","maintainers":[{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"}],"homepage":"https://github.com/caleb-mabry/wami#readme","bugs":{"url":"https://github.com/caleb-mabry/wami/issues"},"bin":{"wami":"dist/cli.js"},"dist":{"shasum":"2896015ac973b1b2ab6f34360701ac063c7f2d60","tarball":"https://registry.npmjs.org/@calebmabry/wami/-/wami-0.1.1.tgz","fileCount":3,"integrity":"sha512-atKW05VW5g5chqB+Tb2pgxfLpfavbefstJ86Gd4SGoz19koQEWFL3If+Gco8Y8v00Qk5zjYlB6QbxQGzwCE8jg==","signatures":[{"sig":"MEUCICYsd57zGLCog7pyXWf3PvpSntTqk/r9uQM6D5yw4eE9AiEA9UtEYgSWw8sAW/mxWkyAo8wZbJr7ZsaorlFhkr3HHw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91592},"type":"module","module":"src/cli.tsx","gitHead":"232b81c188b5712d55a58d159cb9095dda90e895","scripts":{"dev":"bun run src/cli.tsx","build":"bun build src/cli.tsx --outdir dist --target node --format esm --external react --external ink --external yoga-layout-prebuilt","start":"bun run dist/cli.js","publish":"bun run build && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"},"repository":{"url":"git+https://github.com/caleb-mabry/wami.git","type":"git"},"_npmVersion":"11.8.0","description":"Where Am I - A TUI tool that detects your repository and shows available commands","directories":{},"_nodeVersion":"25.5.0","dependencies":{"ink":"^6.7.0","react":"^19.2.4","ink-spinner":"^5.0.0","yoga-layout-prebuilt":"^1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/node":"^25.2.3","@types/react":"^19.2.13"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/wami_0.1.1_1770772101401_0.2304402033157935","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.2":{"name":"@calebmabry/wami","version":"0.1.2","keywords":["cli","tui","terminal","developer-tools","repository","package-manager"],"author":{"name":"Caleb Mabry"},"license":"MIT","_id":"@calebmabry/wami@0.1.2","maintainers":[{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"}],"homepage":"https://github.com/caleb-mabry/wami#readme","bugs":{"url":"https://github.com/caleb-mabry/wami/issues"},"bin":{"wami":"dist/cli.js"},"dist":{"shasum":"e9a00a5a9098ae00fbe136952f676e768c069648","tarball":"https://registry.npmjs.org/@calebmabry/wami/-/wami-0.1.2.tgz","fileCount":3,"integrity":"sha512-UiXxLRcWRd1M2wjESlqsIahBPFKpIrd9PJYEEDbLJpJLchOVDES76id4grDtRbCqIp21JS3CFolMWJDzdH5EPw==","signatures":[{"sig":"MEUCID/IxdDLa5Nk0Fiy2SnLEwwh5ozg9rX8sTzpwFmWkjKVAiEA9RJcBmFVQoqpeKpCOt0tb9pSYUkuXeE8Xy9yglQy2Ms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91594},"type":"module","module":"src/cli.tsx","gitHead":"8e587f1b88d27488bcbdb70c234dc2dc22c9941e","scripts":{"dev":"bun run src/cli.tsx","build":"bun build src/cli.tsx --outdir dist --target node --format esm --external react --external ink --external yoga-layout-prebuilt","start":"bun run dist/cli.js","publish":"bun run build && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"},"repository":{"url":"git+https://github.com/caleb-mabry/wami.git","type":"git"},"_npmVersion":"11.8.0","description":"Where Am I - A TUI tool that detects your repository and shows available commands","directories":{},"_nodeVersion":"25.5.0","dependencies":{"ink":"^6.7.0","react":"^19.2.4","ink-spinner":"^5.0.0","yoga-layout-prebuilt":"^1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/node":"^25.2.3","@types/react":"^19.2.13"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/wami_0.1.2_1770772194774_0.8227767286091763","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.3":{"name":"@calebmabry/wami","version":"0.1.3","keywords":["cli","tui","terminal","developer-tools","repository","package-manager"],"author":{"name":"Caleb Mabry"},"license":"MIT","_id":"@calebmabry/wami@0.1.3","maintainers":[{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"}],"homepage":"https://github.com/caleb-mabry/wami#readme","bugs":{"url":"https://github.com/caleb-mabry/wami/issues"},"bin":{"wami":"dist/cli.js"},"dist":{"shasum":"4d8ad38ed58a2e33225a5d504603144f3729301c","tarball":"https://registry.npmjs.org/@calebmabry/wami/-/wami-0.1.3.tgz","fileCount":3,"integrity":"sha512-qNSqhxHClcmJZJ4tcv+CqCbn53JK8dWSbLeRt/asmwggzwyr4XyIBLwZSMy2dfvH6dERq5GzAllP2oPRdC6gCA==","signatures":[{"sig":"MEQCIHJ2PfM1swROFSGoqmOSUaT3kHnhGjvOEqDtKpCB7fptAiBjgY9KK8azz6q2LlqYJSbT9sdl99cc6j3EyDXrsLKB/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91636},"type":"module","module":"src/cli.tsx","gitHead":"7d120b38ea6b6a4cff98af7a993930fd9d1b1833","scripts":{"dev":"bun run src/cli.tsx","build":"bun build src/cli.tsx --outdir dist --target node --format esm --external react --external ink --external yoga-layout-prebuilt","start":"bun run dist/cli.js","publish":"bun run build && npm publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"},"repository":{"url":"git+https://github.com/caleb-mabry/wami.git","type":"git"},"_npmVersion":"11.8.0","description":"Where Am I - A TUI tool that detects your repository and shows available commands","directories":{},"_nodeVersion":"25.5.0","dependencies":{"ink":"^6.7.0","react":"^19.2.4","ink-spinner":"^5.0.0","yoga-layout-prebuilt":"^1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/node":"^25.2.3","@types/react":"^19.2.13"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/wami_0.1.3_1770772296059_0.26041078252508054","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.0":{"name":"@calebmabry/wami","version":"0.2.0","keywords":["cli","tui","terminal","developer-tools","repository","package-manager","npm","yarn","pnpm","bun","python","nodejs","poetry","uv","pdm","pipenv","poethepoet","poe","task-runner","monorepo","project-detection","command-runner","dev-tools","pytest","ruff","eslint","prettier","typescript","script-runner","vim-navigation","ink","react-terminal"],"author":{"name":"Caleb Mabry"},"license":"MIT","_id":"@calebmabry/wami@0.2.0","maintainers":[{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"}],"homepage":"https://github.com/caleb-mabry/wami#readme","bugs":{"url":"https://github.com/caleb-mabry/wami/issues"},"bin":{"wami":"dist/cli.js"},"dist":{"shasum":"87657a9deaad5f75de0a08dc1ff7d4e9eb642408","tarball":"https://registry.npmjs.org/@calebmabry/wami/-/wami-0.2.0.tgz","fileCount":3,"integrity":"sha512-5KeOEJ06QmveIWvHFZnG3doU2mKybvsy3Ea/2vX/3XhiwUNrTJ75cqr4evQUU0+cPcFTqm5/bQa+6mMja0qzdw==","signatures":[{"sig":"MEYCIQCELywUr2h1LYU/P+E2f32uzz0eBeVyYHCfiJYfwDOCNwIhAIANpw+Yn5lwYRkeyIG2OvQJ0d1kRTpbg/Wmo+TNfJFl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187296},"type":"module","module":"src/cli.tsx","gitHead":"27638e5133bac464e9fa5526e3c95611760fc14e","scripts":{"dev":"bun run src/cli.tsx","build":"bun build src/cli.tsx --outdir dist --target node --format esm --external react --external ink --external yoga-layout-prebuilt","start":"bun run dist/cli.js","release":"bun run build && npm publish","typecheck":"tsc --noEmit","release:major":"npm version major && npm publish && git push --follow-tags","release:minor":"npm version minor && npm publish && git push --follow-tags","release:patch":"npm version patch && npm publish && git push --follow-tags","prepublishOnly":"bun run build"},"_npmUser":{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"},"repository":{"url":"git+https://github.com/caleb-mabry/wami.git","type":"git"},"_npmVersion":"11.8.0","description":"Smart TUI that auto-detects your project type (Python, Node.js, etc.) and shows available commands - package manager scripts, task runners (poe, npm), and dev tools (ruff, pytest, eslint)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"ink":"^6.7.0","react":"^19.2.4","@iarna/toml":"^2.2.5","ink-spinner":"^5.0.0","yoga-layout-prebuilt":"^1.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/node":"^25.2.3","@types/react":"^19.2.13"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/wami_0.2.0_1770846200135_0.8557928287809149","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-02-11T01:05:48.330Z","modified":"2026-02-23T19:38:51.324Z","0.1.0":"2026-02-11T01:05:48.837Z","0.1.1":"2026-02-11T01:08:21.554Z","0.1.2":"2026-02-11T01:09:54.934Z","0.1.3":"2026-02-11T01:11:36.210Z","0.2.0":"2026-02-11T21:43:20.340Z"},"bugs":{"url":"https://github.com/caleb-mabry/wami/issues"},"author":{"name":"Caleb Mabry"},"license":"MIT","homepage":"https://github.com/caleb-mabry/wami#readme","keywords":["cli","tui","terminal","developer-tools","repository","package-manager","npm","yarn","pnpm","bun","python","nodejs","poetry","uv","pdm","pipenv","poethepoet","poe","task-runner","monorepo","project-detection","command-runner","dev-tools","pytest","ruff","eslint","prettier","typescript","script-runner","vim-navigation","ink","react-terminal"],"repository":{"url":"git+https://github.com/caleb-mabry/wami.git","type":"git"},"description":"Smart TUI that auto-detects your project type (Python, Node.js, etc.) and shows available commands - package manager scripts, task runners (poe, npm), and dev tools (ruff, pytest, eslint)","maintainers":[{"name":"calebmabry","email":"caleb.mabry.dev@gmail.com"}],"readme":"# wami (Where Am I?)\n\n> A smart TUI that detects your repository and shows available commands. Works everywhere, zero config.\n\n![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)\n[![npm version](https://img.shields.io/npm/v/@calebmabry/wami.svg)](https://www.npmjs.com/package/wami)\n\n## ✨ Features\n\n- 🚀 **Zero Config** - Works instantly in any repo. No setup files needed.\n- 🔍 **Smart Detection** - Auto-detects Node.js, Python, and more\n- 🛠️ **Auto-discover Dev Tools** - Detects ruff, pytest, eslint, prettier, and more from dependencies\n- 📦 **Multi-Package Manager** - Supports npm, yarn, pnpm, bun, poetry, uv, pipenv, pip\n- 🎯 **Task Runner Support** - Poethepoet (poe), npm scripts, and more\n- 📝 **Command History** - Remembers commands with arguments across sessions\n- ✏️ **Interactive Editing** - Add arguments on-the-fly, edit before running\n- ⚡ **Custom Commands** - Create and save custom commands with arguments\n- 🔎 **Smart Search** - Filter through 50+ scripts instantly with fuzzy search\n- 🏢 **Mono-repo Ready** - Intelligently detects and switches between multiple projects\n- ⌨️ **Vim Navigation** - j/k keys for navigation, familiar keyboard shortcuts\n\n## 📦 Installation\n\n### Try it without installing (npx)\n\n```bash\nnpx @calebmabry/wami\n```\n\nPerfect for trying it out or using in CI/CD without global installation!\n\n### Install globally\n\n```bash\n# Using npm\nnpm i -g @calebmabry/wami\n\n# Using bun\nbun install -g @calebmabry/wami\n\n# Using pnpm\npnpm add -g @calebmabry/wami\n\n# Using yarn\nyarn global add @calebmabry/wami\n```\n\n## 🚀 Usage\n\nNavigate to any project and run:\n\n```bash\n# If installed globally\nwami\n\n# Or use npx (no installation needed)\nnpx @calebmabry/wami\n```\n\n### Keyboard Shortcuts\n\n#### Navigation\n- **↑/↓ or j/k** - Navigate through scripts (vim-style)\n- **Enter** - Run selected script immediately\n- **Esc** - Go back/cancel (context-aware)\n- **q** - Quit application\n\n#### Actions\n- **a** - Add arguments to command before running\n- **e** - Edit full command before running\n- **c** - Create custom command (or clear search if active)\n- **d** - Delete command from history\n- **/** or **s** - Search/filter scripts\n- **p** - Switch between projects (in mono-repos)\n\n#### In Input Modes\n- **Tab** - Switch between fields\n- **←/→** - Move cursor\n- **Backspace** - Delete character\n- **Esc** - Cancel and return\n\n## 🎯 Supported Ecosystems\n\n### Node.js\n**Detects:** \\`package.json\\`\n**Package Managers:** npm, yarn, pnpm, bun\n**Auto-detected Tools:** TypeScript, ESLint, Prettier, Biome, Vitest, Jest, Playwright, Cypress\n\nAutomatically discovers and shows dev tools installed in your dependencies.\n\n### Python\n**Detects:** \\`pyproject.toml\\`, \\`Pipfile\\`, \\`requirements.txt\\`\n**Package Managers:** poetry, uv, pipenv, pip, PDM\n**Task Runners:** poethepoet (poe)\n**Auto-detected Tools:** ruff, pytest, black, mypy, pyright, isort, flake8, pylint, coverage, pre-commit, bandit, sphinx\n\nAutomatically discovers:\n- Scripts from \\`[project.scripts]\\` (PEP 621)\n- Tasks from \\`[tool.poe.tasks]\\` (poethepoet)\n- Dev tools from dependencies (both main and dev groups)\n\n## 🏗️ How It Works\n\n\\`wami\\` uses an extensible plugin architecture to detect your project type:\n\n1. Searches for ecosystem marker files (package.json, pyproject.toml, etc.)\n2. Detects the package manager from lock files or configuration\n3. Parses available scripts/commands\n4. Presents an interactive TUI with keyboard navigation\n5. Remembers your commands with arguments for future use\n\n## 🔧 Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/caleb-mabry/wami.git\ncd wami\n\n# Install dependencies\nbun install\n\n# Run in development\nbun run dev\n\n# Build for production\nbun run build\n\n# Type check\nbun run typecheck\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n### Adding New Ecosystem Support\n\n1. Create a new detector class extending \\`EcosystemDetector\\`\n2. Implement \\`detect()\\`, \\`parse()\\`, and \\`buildCommand()\\` methods\n3. Register it in \\`src/core/registry.ts\\`\n\nSee \\`src/core/nodejs-detector.ts\\` or \\`src/core/python-detector.ts\\` for examples.\n\n## 📄 License\n\nMIT © Caleb Mabry\n\n## 🙏 Acknowledgments\n\nBuilt with:\n- [Ink](https://github.com/vadimdemedes/ink) - React for interactive CLIs\n- [Bun](https://bun.sh) - Fast all-in-one JavaScript runtime\n\n---\n\n**Never forget your commands again.** 🎯\n","readmeFilename":"README.md"}