Repositories / jai.git

jai.git

Clone (read-only): git clone http://git.guha-anderson.com/git/jai.git

Branch
.gitignoreblob
argtype.hblob
AUTHORSblob
autogen.shblob
bash-completiontree
complete.ccblob
configure.acblob
COPYINGblob
cred.ccblob
cred.hblob
default_conf.ccblob
defer.hblob
err.hblob
fs.ccblob
fs.hblob
INSTALLblob
jai.1.mdblob
jai.ccblob
jai.conf.inblob
jai.hblob
logo.svgblob
Makefile.amblob
move_only_function.hblob
options.ccblob
options.hblob
print_compat.hblob
README.mdblob
teststree

README.md

![](./logo.svg "JAI logo") # JAI - An ultra lightweight jail for AI CLIs on modern linux `jai` strives to be the easiest container in the world to configure--so easy that you never again need to run a code assistant without protection. It's not a substitute for [docker](https://www.docker.com/) or [podman](https://podman.io/) when you need better isolation. But if you regularly do risky things like run an AI CLI with your own privileges in your home directory on a computer that you care about, then `jai` could reduce the damage when things go wrong. `jai` *command* runs *command* with the following policy: * *command* has complete access to the current working directory. * *command* has copy-on-write access to the rest of your home directory. It can write there to store dot files, but the changes will be kept separate in a `changes` directory and will not actually modify your real home directory. * */tmp* and */var/tmp* are private. * The rest of the file system is read only (though devices are still accessible). With command-line options or configuration, `jai` supports the following: * A "strict" mode where jailed processes start with an empty home directory and a different user id, so can read fewer sensitive files. * The ability to grant access to other directories besides your current working directory. * Multiple named sandboxed home directories that do not see each other's changes. * Per-command configuration files. jai emphasizes security over portability. It heavily leverages modern linux APIs to isolate processes and avoid time-of-check-to-time-of-use race conditions. It will not work with kernels older than 6.13 or operating systems other than linux. See the [home page](https://jai.scs.stanford.edu) or the [man page](jai.1.md) for more documentation. See the [INSTALL](INSTALL) file for installation instructions.