Skip to content

Wake4188/kage-script

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

170 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kage Script (影文字)

A modern web app for encoding and decoding the historical Shinobi Iroha cipher used in the 17th-century Bansenshūkai.

TypeScript React TanStack Start Tailwind CSS MIT LicenseStackScope score for Kage

Kage - Kage is a website that translates text into Shinobi cipher | Product Hunt

What this project does

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.

Why it exists

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.

Key features

  • 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

Quick example

Hello World

↓

𣘸⾝⻩熿⼟⾊...

Quick start

Prerequisites

  • Bun 1.x or newer
  • Node.js 20+ (if needed by your local setup)

Install

git clone https://github.com/Wake4188/kage-script.git
cd kage-script
bun install

Run locally

bun run dev

Then open http://localhost:8080.

Useful commands

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 project

Project structure

src/
  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

Deployment notes

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_here

Benchmarking of pipeline vs old pipeline.

I had an independent AI (Scouts by Yutori) make an unbiased benchmark of the pipeline. Here it is:

https://passive-white-fixqmfpa.edgeone.dev/

History and inspiration

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.

Contributing

Contributions are welcome. If you want to improve the cipher logic, UI, translations, or documentation, please open an issue or submit a pull request.

License

Kage Script is released under the MIT License. See the LICENSE file for details.

Releases

Packages

Contributors

Languages