NoShift.js
Write JavaScript without pressing the Shift key.
Install / Use
/learn @otoneko1102/NoShift.jsREADME
NoShift.js
<div align="center"> <img src="./icon.png" alt="NoShift.js" width="128" height="128"> </div> <div align="center">English | 日本語
</div>A joke language that lets you write JavaScript without pressing the Shift key.
Typing shifted symbols (!, ", (, ), {, } …) is tiring.
NoShift.js replaces every shift-required symbol with a ^-prefixed sequence, so you can write JavaScript using only unshifted keys.
.nsjs files compile directly to plain JavaScript via the nsc CLI.
[!Important]
⚠ Breaking Changes (v0.15.0): The syntax has changed significantly.^3is now#(was Capitalize),^6is now Capitalize (was&),^\is now_(was|). New keyword aliases:or→||,and→&&,@or→|,@and→&. Please update your.nsjsfiles.
Symbol Map
This symbol mapping is based on the NoShift.js developer's keyboard (JIS layout).

| NoShift | JS | | NoShift | JS |
|:-------:|:--:|---|:-------:|:--:|
| ^1 | ! | | ^^ | ~ |
| ^2 | " | | ^\ | _ |
| ^3 | # | | ^@ | ` |
| ^4 | $ | | ^[ | { |
| ^5 | % | | ^] | } |
| ^6x | X (capitalize) | | ^; | + |
| ^7 | ' | | ^: | * |
| ^8 | ( | | ^, | < |
| ^9 | ) | | ^. | > |
| ^- | = | | ^/ | ? |
| ^0 | ^ (XOR) | | | |
Template expression: ^4^[ → ${
Keywords: or → ||, and → &&, @or → |, @and → &
Quick Start
Global Install
npm install -g noshift.js@latest
nsc create my-project
Local Install
npm install -D noshift.js@latest
npx nsc create my-project
Example
// src/index.nsjs
const name ^- ^2^6no^6shift.js^2;
console.log^8^2^6hello from ^2 ^; name ^; ^2!^2^9;
Compiles to:
const name = "NoShift.js";
console.log("Hello from " + name + "!");
Programmatic API
You can also use NoShift.js as a library in your code:
// ESM
import { compile } from "noshift.js";
// CJS
const { compile } = require("noshift.js");
const result = compile('console.log^8^2^6hello^2^9;');
console.log(result.outputText);
// => console.log("Hello");
Ecosystem / Links
- noshift.js (npm) — The Core Compiler CLI
- @noshift.js/lint (npm) — The Official Linter
- prettier-plugin-noshift.js (npm) — The Official Prettier Plugin
- VS Code Extension — Editor Support (Syntax Highlighting, Snippets)
- Website & Playground
- Repository
License
MIT © otoneko.
