{"_id":"@atsumo/voy","name":"@atsumo/voy","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@atsumo/voy","version":"0.1.0","module":"src/index.tsx","type":"module","bin":{"voy":"dist/voy.js"},"scripts":{"start":"bun run src/index.tsx","dev":"bun --watch run src/index.tsx","build":"bun build src/index.tsx --target bun --outfile dist/voy.js","build:compile":"bun build --compile src/index.tsx --outfile voy","prepublishOnly":"bun run build"},"devDependencies":{"@types/bun":"latest","@types/node":"^25.3.0","@types/react":"^19.2.14","react-devtools-core":"^7.0.1"},"peerDependencies":{"typescript":"^5"},"dependencies":{"chalk":"^5.6.2","fullscreen-ink":"^0.1.0","ink":"^6.8.0","react":"^19.2.4","shiki":"^3.22.0"},"_id":"@atsumo/voy@0.1.0","gitHead":"57581e9fade4a594039b4a72173a6c91a5b7b3ab","description":"Three-pane TUI file manager built with Bun + Ink (React for CLI).","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-NHMTG+/9Z/sTS55QwgNn0xE8Fvmpq8pLBSI1rwUBKEXKjU0ymWdtAOKKlEX/vSxSTVKl2CnNlmJ0S9/kQPB5Tw==","shasum":"3630a65e8b5b0c33f7272cef679591acedba03a4","tarball":"https://registry.npmjs.org/@atsumo/voy/-/voy-0.1.0.tgz","fileCount":3,"unpackedSize":11668527,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBq9trIz3fZWSiAtJi9yh9lwWiOLRJx6jDOr+kIDk/kyAiB4Xh88ybx3pGLpAts34B6TnxDJeKnednNItbqoyrf7Dg=="}]},"_npmUser":{"name":"atsumo","email":"bachisuta@gmail.com"},"directories":{},"maintainers":[{"name":"atsumo","email":"bachisuta@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/voy_0.1.0_1771922717709_0.9188629473948258"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-24T08:45:17.641Z","0.1.0":"2026-02-24T08:45:17.960Z","modified":"2026-02-24T08:45:18.126Z"},"maintainers":[{"name":"atsumo","email":"bachisuta@gmail.com"}],"description":"Three-pane TUI file manager built with Bun + Ink (React for CLI).","readme":"# Voy\n\nThree-pane TUI file manager built with Bun + Ink (React for CLI).\n\nThe layout is inspired by [Yazi](https://github.com/sxyazi/yazi), but the keybindings and behavior follow Vim conventions. If you're familiar with Yazi, note that the key mappings are **not** the same — Voy uses its own Vim-oriented bindings.\n\n![demo](demo/demo.gif)\n\n## Features\n\n- **Three-pane layout** — Parent / Current / Preview columns\n- **Vim-style navigation** — `hjkl`, `gg`/`G`, `H`/`M`/`L`, `Ctrl+d`/`Ctrl+u`/`Ctrl+f`/`Ctrl+b`, numeric prefix (`5j`)\n- **File operations** — Copy (`yy`), Cut (`x`), Delete (`dd`/`D`), Paste (`pp`), Rename (`r`), Create (`o`/`O`)\n- **Visual selection** — `Space` toggle, `v` visual mode, `V` select all\n- **Search** — `/` incremental search, `n`/`N` jump between matches\n- **Command mode** — `:q`, `:cd`, `:mkdir`, `:touch`\n- **Preview** — Syntax highlighting (shiki), directory listings, binary detection\n- **Preview mode** — Vim normal-style cursor movement, line selection, copy to clipboard\n- **Directory history** — `Ctrl+o` to jump back, `~` to go home\n- **Hidden files** — `.` to toggle visibility\n- **Virtual scrolling** — Handles large directories efficiently\n- **Color coding** — File type based coloring (30+ extensions)\n\n## Requirements\n\n- [Bun](https://bun.sh/) v1.0+\n\n## Getting Started\n\n```bash\n# Install dependencies\nbun install\n\n# Run\nbun run src/index.tsx\n\n# Or with a specific directory\nbun run src/index.tsx /path/to/dir\n```\n\n## Keybindings\n\n### Normal Mode — Navigation\n\n| Key | Action |\n|-----|--------|\n| `j` / `↓` | Move cursor down |\n| `k` / `↑` | Move cursor up |\n| `l` / `→` / `Enter` | Enter directory / open preview |\n| `h` / `←` / `-` | Parent directory |\n| `gg` | Go to first entry |\n| `G` | Go to last entry |\n| `H` | Jump to top of screen |\n| `M` | Jump to middle of screen |\n| `L` | Jump to bottom of screen |\n| `Ctrl+d` | Half page down |\n| `Ctrl+u` | Half page up |\n| `Ctrl+f` | Full page down |\n| `Ctrl+b` | Full page up |\n| `~` | Go to home directory |\n| `Ctrl+o` | Go back (directory history) |\n\n### Normal Mode — File Operations\n\n| Key | Action |\n|-----|--------|\n| `yy` | Yank (copy) file(s) |\n| `x` | Cut file(s) (move via `pp`) |\n| `dd` / `D` | Delete file(s) (with confirmation) |\n| `pp` | Paste file(s) |\n| `r` | Rename |\n| `o` | Create new file |\n| `O` | Create new directory |\n| `e` | Open in `$EDITOR` |\n| `W` | Open with system default app |\n| `Space` | Toggle selection |\n| `v` | Visual selection mode |\n| `V` | Select / deselect all |\n\n### Normal Mode — Other\n\n| Key | Action |\n|-----|--------|\n| `P` | Enter preview mode |\n| `/` | Search mode |\n| `n` / `N` | Next / previous match |\n| `:` | Command mode |\n| `.` | Toggle hidden files |\n| `q` | Quit |\n\n### Preview Mode\n\nEnter with `P` or `l` on a text file. The preview pane gets a Vim normal-style cursor.\n\n| Key | Action |\n|-----|--------|\n| `j` / `k` / `↑` / `↓` | Move cursor |\n| `gg` / `G` | Go to first / last line |\n| `Ctrl+d` / `Ctrl+u` | Half page down / up |\n| `Space` | Toggle line selection |\n| `v` | Visual line selection |\n| `V` | Select / deselect all lines |\n| `y` | Copy selected lines to system clipboard |\n| `e` | Open in `$EDITOR` at cursor line |\n| `q` / `Esc` | Exit preview mode |\n\n### Visual Mode\n\nEnter with `v` in normal mode.\n\n| Key | Action |\n|-----|--------|\n| `j` / `k` | Extend selection |\n| `v` | Confirm selection |\n| `Esc` | Cancel selection |\n\n### Commands\n\n| Command | Action |\n|---------|--------|\n| `:q` | Quit |\n| `:cd <path>` | Change directory |\n| `:mkdir <name>` | Create directory |\n| `:touch <name>` | Create file |\n\n## Tech Stack\n\n- **Runtime**: Bun\n- **UI**: Ink 6 (React 19)\n- **Fullscreen**: fullscreen-ink\n- **Syntax Highlighting**: shiki (VS Code quality)\n- **Language**: TypeScript (strict mode)\n\n## Testing\n\n```bash\nbun test\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-29c38c365001e914d94733a80cb36c63"}