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.
Metadata
Release files for nishachar-ide 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nishachar_ide-2.0.0.tar.gz | 50.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nishachar_ide-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 110.9 kB
Release files / nishachar_ide-2.0.0.tar.gz
| Download URL | nishachar_ide-2.0.0.tar.gz |
|---|---|
| Size | 50.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6efaf2d5c77da7ccfd51f87dd37ed572e1edd88a50c84949a7d9afa4153db806
|
|
BLAKE2b-256 checksum How to use checksums |
c809d4bdcf356caef0c1c668572bec2b9630731a81afbf4281e21050c48e4861
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.
Transparency logRelease files / nishachar_ide-2.0.0-py3-none-any.whl
| Download URL | nishachar_ide-2.0.0-py3-none-any.whl |
|---|---|
| Size | 60.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc703fae186a605fc087a30d8c32e8b9ada5a8917f11a8f2def9deb0fb0f3e9f
|
|
BLAKE2b-256 checksum How to use checksums |
1bc9347f3a24541ada9afe5a193e87c22affe52b66b2da20d159b128fce9136d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.
Transparency logSecurity for nishachar-ide 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for nishachar_ide-2.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.