Atomsh
Your autonomous coding agent for science.
Atomsh reads and edits files, searches the codebase, and runs commands from your terminal, and it can look a material up while doing it.
You need an account on atomgpt.org. That account is the only credential Atomsh uses. There is no OpenAI or Anthropic key to supply, and no other provider to configure. Sign up first, then install.
Python 3.10 or newer. Tested on Linux and WSL2; macOS should work. Windows needs WSL.
Full documentation: https://atomgptlab.github.io/atomsh
Install
curl -fsSL https://atomgpt.org/install | bash
The installer uses uv when it is present, falls back to a virtualenv, and
bootstraps uv if the system Python is unusable. Everything lands in an
isolated environment with a launcher in ~/.local/bin. No sudo.
Connect
Sign in at atomgpt.org first if you have not already, then:
atomsh login
This opens atomgpt.org in your browser and starts a one-request listener on
127.0.0.1; you approve once, and the credential comes back to your machine
and is stored 0600 in ~/.config/atomsh/auth.json. Nothing is sent anywhere
else. On a headless machine use atomsh login --key and paste an API key from
Settings → Account → API Keys instead.
On a remote host such as a cluster login node, use atomsh login --manual:
approve in a browser anywhere and paste the redirect address back, since the
browser's 127.0.0.1 is not the machine running Atomsh. atomsh login --key
skips the browser entirely.
atomsh whoami checks the stored credential; atomsh logout forgets it.
Use
atomsh # interactive session
atomsh "fix the failing test" # run one prompt and exit
atomsh -c # resume this directory's last session
git diff | atomsh "review this" # read a prompt from stdin
| Flag | Effect |
|---|---|
-m, --model |
Pick a model (default gemma-4-26b) |
-c, --continue |
Resume the most recent session for this directory |
--yolo |
Do not ask before writing files or running commands |
--readonly |
Refuse all writes and shell commands |
--no-materials |
Leave out the AtomGPT materials tools |
Commands: login, logout, whoami, models.
In a session: !<command> runs a shell command yourself, /history replays
the conversation, /model switches model, /clear starts a fresh thread.
Escape interrupts a response while it is streaming.
Permissions
By default atomsh asks before anything that writes a file or runs a
command; reads and searches happen unattended. Answering a allows that tool
for the rest of the session. A path outside the working directory always
prompts, even after a.
Models
atomsh models lists what your account can use. The mcp.* models are
excluded on purpose: those run the AtomGPT materials agent on the server and
answer in prose rather than making tool calls, so they cannot drive a coding
loop. Use them through a chat client instead.
Tools
read_file, write_file, edit_file, list_dir, glob_files,
grep_files, bash.
Materials tools
atomsh connects to the AtomGPT MCP server with the same credential and
carries six more tools by default: explore, build, predict,
characterize, apply, validate. Each dispatches to a family of AtomGPT apps: JARVIS-DFT lookups,
ALIGNN predictions, band structures, XRD, interfaces, protein folding, so the
agent can look a material up instead of answering from the model's memory:
$ atomsh --materials "bandgap of silicon JVASP-1002 from JARVIS-DFT"
· explore(app=/jarvis_dft/query, params={"jid": "JVASP-1002"})
OptB88vdW 0.731 eV · mBJ 1.277 eV · HSE 1.22 eV
The tool list is cached under ~/.local/share/atomsh/ and refreshed daily,
and the MCP session is opened on first use, so carrying them costs nothing at
startup. --no-materials leaves them out, worth doing for pure coding work,
where a narrower tool surface is easier for the model.
Development
uv venv && uv pip install -e .
ATOMSH_API_KEY=sk-… atomsh --readonly "what does this repo do?"
ATOMSH_API_BASE points the client at a different deployment.
install.sh here is the canonical installer; atomgpt.org/install serves a
copy of it.
License
Apache-2.0
Citing
Atomsh builds on the AtomGPT platform and the JARVIS infrastructure. If it contributes to work you publish, please cite the relevant papers below.
-
J. Lee, J. Ely, K. Zhang, A. Ajith, C. R. Campbell and K. Choudhary, "AGAPI-Agents: An Open-Access Agentic AI Platform for Accelerated Materials Design on AtomGPT.org", The Journal of Physical Chemistry Letters 17 (26), 7221-7231 (2026). doi:10.1021/acs.jpclett.6c00837
-
K. Choudhary, "The JARVIS infrastructure is all you need for materials design", Computational Materials Science 259, 114063 (2025). doi:10.1016/j.commatsci.2025.114063
-
K. Choudhary, "ChatGPT Material Explorer: Design and Implementation of a Custom GPT Assistant for Materials Science Applications", Integrating Materials and Manufacturing Innovation 14 (3), 276-283 (2025). doi:10.1007/s40192-025-00410-9
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 atomsh-2026.9.1.tar.gz.
File metadata
- Download URL: atomsh-2026.9.1.tar.gz
- Upload date:
- Size: 31.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaf1f334332a320a3ee4881c786f08071085097189dd136450159d604411fcbe
|
|
| MD5 |
d3f5e79c1f4ad92ebb3488402ab763cf
|
|
| BLAKE2b-256 |
350486c70be0a1b24051a01bfa03e18beb362453df4a47fbba36b9992df9602a
|
File details
Details for the file atomsh-2026.9.1-py3-none-any.whl.
File metadata
- Download URL: atomsh-2026.9.1-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fe33f7815b63ff57be21d27a7e196f81150130c0a68cb965de3c9b7e0bb498e
|
|
| MD5 |
f6bd0aa3525eb2e7defb8896f2b9a6da
|
|
| BLAKE2b-256 |
e9eda08edeb884116dd93e3e94b7c0dd61f246cff106e4b4965b36b35d4b87c9
|