8. How it works inside

8.1 Portable and isolated: what it means

Why the kit does not install, does not ask for administrator rights and does not touch the PC that hosts it. And the exceptions.

In short

  • Atollo does not install itself, does not write to the registry and does not ask for administrator rights.
  • The kit's programs start in an environment built from scratch, which points only to kit folders.
  • So they do not see the PC's programs and the PC does not see them: no conflicts, no traces.
  • A few exceptions are declared: the system's temporary folder and, for a few seconds, the keychain.

The idea, with an example

A colleague's PC already has Node.js 18 installed, with its global packages and its npm settings. If you open a kit console and type node --version, the kit's Node 24 answers, not the PC's 18: the kit console does not even know the other one exists. And when you install a global package, it ends up in the kit folder, not in your colleague's profile.

This happens because every program started by the kit receives an environment built from scratch: the kit takes only a handful of system variables from the PC (computer name, Windows folders, language…) and sets all the others so that they point inside data.

What is redirected

GroupMain variablesWhere they point
User folderHOME, USERPROFILE, APPDATA, LOCALAPPDATAdata\home
Temporary filesTEMP, TMP (TMPDIR su macOS e Linux)data\tmp\system or the system's temporary folder, depending on Settings
AgentsCLAUDE_CONFIG_DIR, CODEX_HOME, PI_CODING_AGENT_DIRdata\home\.claude, data\home\.codex, data\home\.pi\agent
GitHub CLIGH_CONFIG_DIRdata\gh
Package cachesNPM_CONFIG_CACHE, PIP_CACHE_DIR, UV_CACHE_DIR, COMPOSER_CACHE_DIR, GOCACHE, NUGET_PACKAGESdata\cache\…
Global packagesNPM_CONFIG_PREFIX, PYTHONUSERBASE, COMPOSER_HOME, GOPATH, GRADLE_USER_HOME, CARGO_HOMEdata\npm-global, data\python-user, data\composer, data\go, data\gradle…
LanguagesJAVA_HOME, DOTNET_ROOT, PHPRC, RUSTUP_HOME…The folders of the kit's programs, at the versions in use
CertificatesSSL_CERT_FILE, REQUESTS_CA_BUNDLE, PIP_CERT, CURL_CA_BUNDLE, GIT_SSL_CAINFO, CARGO_HTTP_CAINFO, NODE_EXTRA_CA_CERTSOnly with a PEM file in Settings › Network: data\app\ca-bundle.pem (the system's certificates plus those of the file); Node.js gets the PEM file
No telemetry and no automatic updatesDOTNET_CLI_TELEMETRY_OPTOUT, POWERSHELL_TELEMETRY_OPTOUT, GOTELEMETRY=off, DISABLE_UPDATESOff: the tools send no data and do not update themselves
PATHPATHFirst the kit folders, then only the system folders (System32 on Windows, /usr/bin and similar on macOS and Linux)

To see the complete environment open a console in the kit folder and use the command .\Atollo.exe env | Out-Host (keys and passwords are masked with ***).

What stays on the PC

The kit does not write to the Windows registry, does not change the system PATH, and creates no services or scheduled tasks. The exceptions, declared:

  • The system's temporary folder, in Atollo\<kit id>: the downloads' work area, files handed over manually, programs' temporary files. It is cleaned on closing and at the following starts.
  • While Antigravity is open, its sign-in is in the system keychain (on Windows only for the session); on closing it goes back into the kit.
  • An empty folder that PowerShell always creates in %LOCALAPPDATA%\Microsoft\PowerShell.
  • If you run gh auth login manually in a console, GitHub CLI may save the sign-in in the Windows Credential Manager: sign in from Settings instead.
  • On macOS: the window's data in ~/Library/WebKit and, if you do not use the token, the Claude Code sign-in in the Keychain.
Under the hood
  • The environment starts empty and copies about 40 system variables from the PC (ComSpec, SystemRoot, PROCESSOR_ARCHITECTURE, LANG, DISPLAY…) plus the proxy variables; the kit sets about a hundred. Atollo env on Windows prints about 130 lines.
  • Every child program starts with the environment emptied and then filled with the kit's: nothing leaks in from the PC.
  • The app's process too redirects its own user folder and temporary files, before starting anything.
  • Variables containing KEY, TOKEN, SECRET or PASSWORD are masked in the env command and in the log.