A modern web app for encoding and decoding the historical Shinobi Iroha cipher used in the 17th-century Bansenshūkai.
Kage Script brings an obscure but fascinating piece of Japanese history into a fast, elegant browser experience. It lets you:
- encode ordinary text into the historical Shinobi Iroha cipher
- decode cipher text back into readable output
- translate between languages before encoding, using a modern Japanese-language pipeline
- explore the result in a clean, minimal interface built for both desktop and mobile
This is not a gimmick cipher toy. It aims to stay faithful to the historical system while making it practical to use today.
The Shinobi Iroha cipher appears in the Bansenshūkai, a 1676 ninja manual from Japan’s Edo period. Rather than inventing a fictional "ninja alphabet," this project recreates the documented process using historical mappings and a modern interface.
- Encode and decode text in the Shinobi Iroha style
- Support for large input blocks up to 2,000 characters
- Language-aware translation flow for more natural encoding
- Minimal, monochrome UI with dark mode support
- Fast, responsive experience powered by React and TanStack Start
- Built with TypeScript for maintainability and confidence
Hello World
↓
𣘸⾝⻩熿⼟⾊...
- Bun 1.x or newer
- Node.js 20+ (if needed by your local setup)
git clone https://github.com/Wake4188/kage-script.git
cd kage-script
bun installbun run devThen open http://localhost:8080.
bun run dev # start the local development server
bun run build # create a production build
bun run preview # preview the production build locally
bun run test # run the test suite
bun run lint # lint the projectsrc/
components/ # UI building blocks and app components
lib/ # cipher logic, translation helpers, i18n, and utilities
routes/ # page-level route definitions
styles.css # global styles
tests/ # Vitest test coverage
The app is designed to run as a modern web app and can be deployed to platforms such as:
- Vercel
- Netlify
- Cloudflare Pages
- Any Node-compatible hosting provider
If you use the translation pipeline that depends on the Lovable integration, make sure to provide the required environment configuration, for example:
LOVABLE_API_KEY=your_key_hereI had an independent AI (Scouts by Yutori) make an unbiased benchmark of the pipeline. Here it is:
https://passive-white-fixqmfpa.edgeone.dev/This project is based on the research and implementation work from the original Text-Shinobi project, adapted into a polished modern experience for browsers and mobile devices.
Contributions are welcome. If you want to improve the cipher logic, UI, translations, or documentation, please open an issue or submit a pull request.
Kage Script is released under the MIT License. See the LICENSE file for details.