ni_sh_a.char-IDE
Run any language. Anywhere.
A polyglot execution engine, a standalone IDE, and a one-line embeddable component — in one Apache-2.0 package.
pip install nishachar-ide && nishachar
That opens a full IDE in your browser that runs 62 languages — Python, Rust, Go, C++, Haskell, COBOL, Brainfuck and SHE — plus a real terminal for the system commands your code needs.
Or drop it into any web page, in one line:
<script type="module" src="https://cdn.jsdelivr.net/npm/@nishachar/ide"></script>
<nishachar-ide language="she"></nishachar-ide>
That snippet has no backend. It executes in the visitor's browser tab.
Available everywhere you already work
| Ecosystem | Install | What you get |
|---|---|---|
| Python | pip install nishachar-ide |
The engine, the CLI, the IDE, the server |
| npm | npm i @nishachar/ide |
<nishachar-ide> web component |
| Dart / Flutter | dart pub add nishachar_ide |
Typed client + the registry, offline |
| Maven / Gradle | io.github.ni-sh-a-char:nishachar-ide |
Kotlin & Java client, zero dependencies |
| Docker | ghcr.io/ni-sh-a-char/nishachar-ide |
The server, containerised |
Every client ships the same 62-language registry compiled in, so language lookup works offline and before any backend exists.
Why this exists
Every online IDE has the same architecture: your code is POSTed to somebody's server, run in somebody's container, and billed to somebody's credit card. That works right up until the free tier ends or the project is abandoned.
ni_sh_a.char-IDE inverts it. Code always runs on hardware that is already paid for — the visitor's own browser, or your own machine. There is no central runner to abuse, meter, or shut down. The hosted demo costs its maintainer exactly nothing, and always will.
Three ways to run code
| Tier | Where it runs | Languages | Setup |
|---|---|---|---|
| Browser | the visitor's tab, via WebAssembly | Python, SHE, JavaScript, TypeScript | none — it's a <script> tag |
| Local | your machine, your toolchains | anything you have installed | pip install nishachar-ide |
| Docker | a locked-down container | all 62, safely | Docker running |
One interface covers all three, and auto picks per language: your installed toolchain when you have it, a container when you don't.
Use it three ways
As an IDE
nishachar # the full IDE, in your browser
nishachar run hello.she # language inferred from the extension
nishachar run -l rust -c 'fn main(){println!("hi")}'
nishachar languages # what's available, and what's installed
As an embeddable component — a native Web Component, so it works unmodified in React, Vue, Svelte, Angular, Astro, plain HTML, Electron and Tauri:
<nishachar-ide
language="python"
theme="dark"
endpoint="http://localhost:8777"><!-- omit endpoint to run in-browser -->
</nishachar-ide>
document.querySelector('nishachar-ide')
.addEventListener('result', e => console.log(e.detail.stdout));
As a Python library
import nishachar
result = nishachar.run('say "Hello from SHE!"', "she")
print(result.stdout, result.exit_code, result.duration_ms)
nishachar.run_file("script.rs", runner="docker", timeout=30)
A language is data, not code
No language has an integration written for it. Every one is a single JSON file:
{
"id": "python",
"name": "Python",
"extensions": [".py"],
"image": "python:3.12-slim",
"run": ["python", "{file}"],
"template": "print(\"Hello!\")\n"
}
That is the whole integration. Adding a language is an 8-line pull request that touches no source code — and it is the best first contribution this project has to offer. Start here.
All 62 languages
Ada · Assembly (NASM) · AWK · Bash · Brainfuck · Bun · C · C# · C++ · Clojure · COBOL · CoffeeScript · Common Lisp · Crystal · D · Dart · Deno · Elixir · Elm · Erlang · F# · Fish · Fortran · Gleam · Go · Groovy · Haskell · Haxe · Io · Java · JavaScript · Julia · Kotlin · Lua · Nim · Nushell · Objective-C · OCaml · Pascal · Perl · PHP · PowerShell · Prolog · Python · R · Racket · Raku · Ruby · Rust · Scala · Scheme · SHE · Solidity · SQL (SQLite) · Swift · Tcl · TypeScript · V · Vala · Wren · Zig · Zsh
Security
Executing arbitrary code is this project's job, so the boundaries are drawn explicitly rather than waved away:
- Docker tier — no network, read-only root filesystem, all capabilities dropped,
no-new-privileges, and hard memory/CPU/process caps. Packages a language needs are installed at image build time, so the network is gone by the time your code runs. - Local tier — runs as you, with no isolation. That is correct for your own code and wrong for anyone else's, and the docs say so plainly.
- Every tier — wall-clock timeout, output byte cap, and a full process-tree kill on timeout.
- The server — refuses to serve the unsandboxed runner on a non-loopback address, validates the
Hostheader against DNS rebinding, and ships with CORS closed and the terminal disabled.
Read SECURITY.md for the full model, including what it does not protect against.
Contributing
Good first issues are labelled good first issue, and the easiest of them is adding your favourite language. See CONTRIBUTING.md and ARCHITECTURE.md.
Support this project
ni_sh_a.char-IDE is free, Apache-2.0, and architected so it costs nothing to run — there is no hosted runner to pay for, and there never will be. If it saves you time, you can buy me a coffee.
Starring the repo helps just as much — it is how other people find it.
License
Apache License 2.0 — commercial use, modification and distribution permitted, with an explicit patent grant.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nishachar_ide-2.0.0.tar.gz.
File metadata
- Download URL: nishachar_ide-2.0.0.tar.gz
- Upload date:
- Size: 50.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6efaf2d5c77da7ccfd51f87dd37ed572e1edd88a50c84949a7d9afa4153db806
|
|
| MD5 |
73ae597bc0d0551bb7d91066297998e7
|
|
| BLAKE2b-256 |
c809d4bdcf356caef0c1c668572bec2b9630731a81afbf4281e21050c48e4861
|
Provenance
The following attestation bundles were made for nishachar_ide-2.0.0.tar.gz:
Publisher:
release.yml on ni-sh-a-char/ni_sh_a.char-IDE
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nishachar_ide-2.0.0.tar.gz -
Subject digest:
6efaf2d5c77da7ccfd51f87dd37ed572e1edd88a50c84949a7d9afa4153db806 - Sigstore transparency entry: 2686613884
- Sigstore integration time:
-
Permalink:
ni-sh-a-char/ni_sh_a.char-IDE@9c7bc78224f2cadfbd062854b12ed580bf698e81 -
Branch / Tag:
refs/heads/v2.0.0 - Owner: https://github.com/ni-sh-a-char
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9c7bc78224f2cadfbd062854b12ed580bf698e81 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file nishachar_ide-2.0.0-py3-none-any.whl.
File metadata
- Download URL: nishachar_ide-2.0.0-py3-none-any.whl
- Upload date:
- Size: 60.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc703fae186a605fc087a30d8c32e8b9ada5a8917f11a8f2def9deb0fb0f3e9f
|
|
| MD5 |
7ab4c8a7cb85f7a044245c347b00f83a
|
|
| BLAKE2b-256 |
1bc9347f3a24541ada9afe5a193e87c22affe52b66b2da20d159b128fce9136d
|
Provenance
The following attestation bundles were made for nishachar_ide-2.0.0-py3-none-any.whl:
Publisher:
release.yml on ni-sh-a-char/ni_sh_a.char-IDE
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nishachar_ide-2.0.0-py3-none-any.whl -
Subject digest:
dc703fae186a605fc087a30d8c32e8b9ada5a8917f11a8f2def9deb0fb0f3e9f - Sigstore transparency entry: 2686613905
- Sigstore integration time:
-
Permalink:
ni-sh-a-char/ni_sh_a.char-IDE@9c7bc78224f2cadfbd062854b12ed580bf698e81 -
Branch / Tag:
refs/heads/v2.0.0 - Owner: https://github.com/ni-sh-a-char
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9c7bc78224f2cadfbd062854b12ed580bf698e81 -
Trigger Event:
workflow_dispatch
-
Statement type: