[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80277":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":15,"starSnapshotCount":15,"syncStatus":41,"lastSyncTime":42,"discoverSource":43},80277,"catgo-LRG","Hello-QM\u002Fcatgo-LRG","Hello-QM","AI-driven workbench for computational materials science — interactive 3D structure viewer, natural-language CatBot assistant, visual DAG workflow engine, HPC job submission. Tauri desktop app with SvelteKit frontend and FastAPI Python backend. Drives VASP, ORCA, CP2K, QE, GPAW, DFTB+, SIESTA, LAMMPS.",null,"TypeScript",124,12,1,3,0,7,13,48.14,"GNU Affero General Public License v3.0",false,"main",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"ase","catalysis","computational-chemistry","cp2k","dft","hpc","llm-agent","materials-science","orca","pymatgen","structure-viewer","sveltekit","tauri","threejs","vasp","2026-06-11 04:07:04","\u003Ch1 align=\"center\">\n  \u003Cimg src=\"desktop\u002Flogo.png\" alt=\"CatGo Logo\" width=\"120\">\u003Cbr>\n  CatGo\n\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>AI-driven workbench for computational materials science.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"readme.zh.md\">简体中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\n[![Tests](https:\u002F\u002Fgithub.com\u002FHello-QM\u002Fcatgo-LRG\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FHello-QM\u002Fcatgo-LRG\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![License: AGPL v3+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0--or--later-blue.svg)](license)\n[![DOI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDOI-10.5281%2Fzenodo.19709425-blue)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.19709425)\n\n\u003C\u002Fp>\n\nCatGo is a desktop application that combines an interactive 3D structure viewer, a natural-language AI assistant (**CatBot**), a visual DAG **workflow engine**, and **HPC integration** into a single tool. It is designed for catalysis and surface-science research — building slabs and adsorbates, generating DFT\u002FMD\u002FML inputs, submitting and monitoring jobs on remote clusters, and post-processing the results — all from one window.\n\n> CatGo draws on **[MatterViz](https:\u002F\u002Fgithub.com\u002Fjanosh\u002Fmatterviz)** by [Janosh Riebesell](https:\u002F\u002Fgithub.com\u002Fjanosh) for inspiration: the 3D structure viewer, periodic table, and several core UI components originate from MatterViz, though they have been substantially modified in CatGo. On top of that foundation, CatGo adds the catalysis pipeline, workflow engine, HPC integration, CatBot, and plugin system. We are deeply grateful for the original work.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"static\u002Fcatgo-viewer.png\" alt=\"CatGo 3D structure viewer — Si40Bi4Te8H292C100 with bonds, lattice axes, and composition badges\" width=\"780\">\n\u003C\u002Fp>\n\n---\n\n## 🔗 Links\n\n| | |\n|---|---|\n| **Web app** — try instantly, no install | \u003Chttps:\u002F\u002Fapp.catgo-ucsd.org> |\n| **Tutorial \u002F Docs** | \u003Chttps:\u002F\u002Fdocs.catgo-ucsd.org> |\n| **Downloads** — prebuilt editions | \u003Chttps:\u002F\u002Fgithub.com\u002FHello-QM\u002Fcatgo-LRG\u002Freleases> |\n| **Source** | \u003Chttps:\u002F\u002Fgithub.com\u002FHello-QM\u002Fcatgo-LRG> |\n| **Forum** — questions & discussion | \u003Chttps:\u002F\u002Fgroups.google.com\u002Fg\u002Fcatgo_official> |\n\n### Community\n\nScan to join the CatGo QQ group:\n\n\u003Cimg src=\"static\u002Fqr-qq-group.jpg\" alt=\"CatGo QQ group QR code\" width=\"200\">\n\n---\n\n## ✨ Features\n\n| Area | Capability |\n|---|---|\n| **3D Viewer** | Crystals · molecules · surfaces · trajectories · PBC image atoms · bond rendering across cell boundaries · selectable polyhedra · per-element \u002F per-site colour overrides · light, dark, white, black themes |\n| **CatBot** | Natural-language structure operations and workflow authoring via Claude, Codex, Gemini, or OpenAI |\n| **Workflow** | DAG editor for chained calculations (opt → SP → DOS \u002F NEB \u002F MD \u002F slow-growth …) with one-click stock-recipe Quick-Build (HER, OER, ORR, NRR, CO₂RR, NEB, slow-growth, DOS) |\n| **HPC** | SSH terminal, file browser, job submit and monitor, OTP + jump-host + SOCKS5 |\n| **DFT inputs** | Native: VASP, Quantum ESPRESSO, LAMMPS, CP2K, ORCA. CatBot-drafted only (skill text, no workflow node executor): GPAW, ABINIT, SIESTA, DFTB+, Gaussian |\n| **ML potentials** | MACE (incl. mace_mp foundation), CHGNet, M3GNet (via matgl) |\n| **Other fast calculators** | EMT (effective-medium theory), xTB \u002F GFN-xTB (semi-empirical tight-binding via tblite + xtb-CLI) |\n| **Analysis** | DOS \u002F PDOS, band structure, COHP \u002F ICOHP, d-band centre, charge-density cube isosurface, volcano plots, Gibbs free-energy corrections, Bader-charge label overlay (reads pre-computed values from site properties) |\n| **Catalysis** | OER \u002F HER \u002F ORR \u002F CO₂RR \u002F NRR pathways, ICONST templates for slow-growth, C–N coupling reaction network |\n\n---\n\n## 🔧 Capabilities in detail\n\n### Build & manipulate structures\n\n- **Interactive editing** — pencil-mode atom drawing (drag from one atom to plant a new one), single-atom add \u002F delete \u002F replace \u002F move via right-click menu, arrow-key \u002F W-S rotation of selected atoms, box selection for multi-atom selection, atom-cluster generation (`add_cluster`) using ASE icosahedral \u002F octahedral \u002F cuboctahedral \u002F FCC \u002F HCP \u002F decahedral geometries plus a small library of metal-oxide clusters (Pt₂O₂, CeO₂ trimer, TiO₂ anatase 8-atom, Al₂O₃ 5-atom)\n- **Slab cutting** — Miller-index slab cutter with primitive-cell reduction, layer count + vacuum control, supercell expansion, frozen-layer presets for adsorbate work\n- **Adsorbates** — alpha-shape adsorption-site finder (top\u002Fbridge\u002Fhollow\u002FFCC\u002FHCP), single-molecule placement with bond-length-aware offsets, dual-adsorbate placement for C–N \u002F C–C \u002F N–N coupling at a controlled separation, full water-layer addition via Packmol packing\n- **Build tools** (dedicated panes) — lattice transformations (matrix supercell), moiré builder for twisted bilayers, nanotube roller (CNT \u002F BNNT \u002F chiral indices), heterostructure stacker with lattice-matching, substitutional doping (one-off or enumerate-all-configurations), pseudo-hydrogen passivation for dangling bonds, water-layer addition, adsorbate placement\n- **Additional builders via CatBot skills** (text-driven, no dedicated UI pane yet) — point defects, intercalation, systematic element substitution, strain\n\n### Inspect & analyse\n\n- **Symmetry** — moyo-driven space-group + Wyckoff-position detection, primitive \u002F conventional cell conversion, symmetry-equivalent site coloring\n- **Measurement** — point-to-point distance, three-atom angle, persistent measurement overlay\n- **Charge density** — cube-file isosurface rendering (web worker), positive \u002F negative isosurfaces, sliceable orthogonal planes, Bader-charge labels overlaid on atoms\n- **Property colouring** — coordination number, Wyckoff orbit, Bader charge, custom user expression; supports element hiding, prop-value filtering, individual site hiding\n- **Trajectory playback** — MD \u002F NEB \u002F IRC trajectory frames with timeline scrubbing, per-frame bond connectivity, energy \u002F force \u002F per-atom property overlays, frame export\n\n### Calculations & ML potentials\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"static\u002Fcatgo-workflow.png\" alt=\"CatGo visual workflow editor — INPUT \u002F CALCULATION \u002F TOOLS \u002F LOGIC \u002F ANALYSIS palette with a free-energy node on the canvas\" width=\"780\">\n\u003C\u002Fp>\n\n- **DFT engines** — natively driven by the workflow executor: VASP, Quantum ESPRESSO, LAMMPS, CP2K, ORCA. CatBot-drafted only via skill text (no workflow node executor yet): GPAW, ABINIT, SIESTA, DFTB+, Gaussian. Native engines support geo_opt \u002F single_point \u002F cell_opt \u002F freq \u002F NEB \u002F TS-search \u002F MD \u002F slow-growth nodes with parameter presets\n- **ML potentials** — MACE (incl. mace_mp foundation models), CHGNet, M3GNet (via matgl); geometry optimisation, single-point energy, force evaluation, NEB endpoint refinement, fast pre-screening before DFT\n- **Other fast calculators** — EMT (effective-medium theory, ASE built-in), xTB \u002F GFN-xTB (semi-empirical tight-binding DFT via tblite for GFN2\u002FGFN1\u002FIPEA1, via xtb-CLI for GFN0\u002FGFN-FF). Not machine-learning potentials, but used for the same role: cheap pre-screening before DFT\n- **Workflow engine** — DAG executor with HPC submission, automatic dependency resolution, per-task convergence monitoring, real-time job status, AI-powered error diagnosis on failed tasks\n\n### Post-processing\n\n- **Electronic structure** — DOS \u002F PDOS, d-band centre, projected orbital character, band structure with high-symmetry k-paths, COHP \u002F ICOHP bonding analysis via LOBSTER. Bader-charge values written into site properties (e.g. by an external `bader` run) render as labels on atoms in the viewer; CatGo does not run Bader integration itself\n- **Catalysis** — Gibbs free-energy diagrams with ZPE + thermal corrections, OER \u002F NRR \u002F CO₂RR catalysis modules (`server\u002Fworkflow\u002Fcatalysis\u002F`), HER \u002F ORR achievable via the `free_energy` workflow node with target= keyword, volcano plots across descriptor space\n- **Vibrations & thermodynamics** — frequency parsing from VASP \u002F ORCA outputs, ZPE, entropy at user-specified T\u002FP, IR intensities. Phonopy output parsing exists (`src\u002Flib\u002Fstructure\u002Fparsers\u002Fphonopy.ts`) but Phonopy itself runs externally — CatBot has a `phonopy` skill that drafts the run, no in-app executor\n\n### HPC integration\n\n- **Connect** — SSH key, password, OTP (KAUST Shaheen-style key+OTP), password+OTP, SOCKS5 proxy, jump host\n- **Browse** — remote file tree, in-place Monaco editor for INCAR \u002F KPOINTS \u002F job-script editing, Threlte-powered viewer preview of CIF \u002F POSCAR \u002F TRAJ \u002F HDF5 directly from the remote tree, scp upload\u002Fdownload without size limits\n- **Submit & monitor** — SLURM \u002F PBS \u002F LSF \u002F SGE adapters, job templates per partition, queue-state polling, log tail, convergence point streaming, AI diagnosis on FAILED \u002F REMOTE_ERROR tasks\n- **Terminal** — full xterm.js PTY session per host, CWD broadcast to the file browser, multi-tab + split panes\n\n### AI agent (CatBot)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"static\u002Fcatgo-catbot.png\" alt=\"CatGo CatBot chat pane — Claude Code provider with workflow \u002F structure \u002F analysis quick prompts\" width=\"780\">\n\u003C\u002Fp>\n\n- **Providers** — local Ollama, SDK agents (Claude Code, Gemini CLI, Codex CLI), and API providers (DeepSeek, Qwen, Kimi, Zhipu GLM, Gemini) via OpenAI-compatible streaming\n- **MCP tools** — `catgo_structure`, `catgo_fetch`, `catgo_workflow`, `catgo_quickbuild`, `catgo_analyze`, `catgo_view`, `catgo_catalysis`, `catgo_skills`, `catgo_workflow_engine`, `catgo_diagnose`, `catgo_file`, `catgo_system`\n- **Skills** — server-side reference docs CatBot reads on demand (workflow_builder, atom_ops, cluster_ops, plus ~40 DFT-code skill guides)\n- **Quick-build hook** — UI button strip + HTTP endpoint that builds a complete workflow with zero LLM round-trips (~200 ms)\n- **Session resume** — `record_session` writes a local history index that survives reloads; clicking an entry continues the conversation with the same Claude\u002FCodex\u002FGemini session id\n\n### Plugin system\n\n- **Plugin Hub** — install \u002F enable \u002F disable plugins from a registry; built-in readers for VASP `vaspout.h5`, `PROCAR`, `vasprun.xml` bands, COHPCAR\n- **Plugin API** — Python `catgo-plugin.json` manifest with backend calculators, structure readers, analyzers, workflow nodes; sample plugins shipped (Lennard-Jones calculator, charge-coloring)\n- **VS Code extension** — preview CIF \u002F POSCAR \u002F XYZ \u002F TRAJ \u002F HDF5 files inside the editor (right-click → *Render with CatGo*, or \u003Ckbd>Ctrl\u003C\u002Fkbd>\u002F\u003Ckbd>⌘\u003C\u002Fkbd> + \u003Ckbd>Shift\u003C\u002Fkbd> + \u003Ckbd>V\u003C\u002Fkbd>)\n\n### Structure I\u002FO\n\n- **Import** — drag-drop, paste, OPTIMADE search (Materials Project, MC3D, Alexandria, MaterialsCloud, OMDB, 2DMatPedia), PubChem molecule search, file browser, HPC remote file read\n- **Export** — POSCAR, CIF, XYZ, extxyz, mol2, PDB, NEB-image set, full workflow JSON\n\n---\n\n## 📦 Get CatGo\n\nPrebuilt artifacts are published on [GitHub Releases](https:\u002F\u002Fgithub.com\u002FHello-QM\u002Fcatgo-LRG\u002Freleases):\n\n- **Desktop app** — Tauri build, bundled backend + agent + shell.\n- **IDE extension** — a cross-platform `.vsix` (Windows \u002F macOS \u002F Linux). Installs in **VS Code, Cursor, and other VS Code-compatible IDEs**, bringing the full CatGo workbench (including the bundled backend and shell) inside your editor.\n- **Linux server binary** — headless backend for remote \u002F HPC hosts.\n- **HPC bundle** — for cluster deployment.\n\n### Web version — frontend only\n\n\u003Chttps:\u002F\u002Fapp.catgo-ucsd.org> is a hosted static single-page app (SvelteKit `adapter-static`). It runs **frontend features only**: structure viewing, editing, and 3D visualization in the browser, with zero install.\n\nIt does **not** include the backend: no DFT\u002FMD execution, no HPC job submission, and no AI-agent task execution. Those require the desktop app or the IDE extension, which bundle the backend and an integrated shell. Use the web app to inspect and edit structures; use a full edition to run real work.\n\n### Built-in shell\n\nThe desktop app and the IDE extension ship with an **integrated shell** — drive jobs, inspect outputs, and move files without leaving CatGo. In the shell, **Ctrl + click** a structure file path (POSCAR, CIF, XYZ, extxyz, trajectory, …) opens it directly in the 3D viewer — no manual upload step.\n\nThe rest of this README covers running CatGo **from source** for development.\n\n---\n\n## 🚀 Quick Start\n\n### Requirements\n\n- **Node.js** ≥ 20 with **pnpm**\n- **Python** ≥ 3.10 (Conda recommended)\n- **Git**\n\n### Install & Run\n\n```bash\n# 1. Clone\ngit clone https:\u002F\u002Fgithub.com\u002FHello-QM\u002Fcatgo-LRG.git\ncd catgo-LRG\n\n# 2. Frontend dependencies\npnpm install\n\n# 3. Python environment\nconda create -n catgo python=3.11\nconda activate catgo\npip install -r server\u002Frequirements.txt\n```\n\nThen pick one of three ways to run:\n\n**Option A — Browser dev (fastest iteration)**\n\n```bash\npnpm desktop:serve            # vite on :3100, FastAPI on :8000\n```\n\nOpen \u003Chttp:\u002F\u002Flocalhost:3100> in any browser. Hot-reload on every save.\n\n**Option B — Tauri native shell (recommended for daily use)**\n\n```bash\n# One-time: install Rust toolchain + Tauri prerequisites\n# (https:\u002F\u002Ftauri.app\u002Fstart\u002Fprerequisites\u002F)\npnpm tauri:dev                # builds vite then opens a native window\n```\n\n`tauri:dev` runs the same backend on :8000 but renders the frontend in\na native WebKit \u002F WebView2 window. ~40 % smoother than the browser\nbuild because the production frontend skips Svelte 5's dev-mode\nreactivity tracking + HMR client overhead. The Tauri shell also keeps\nthe Python backend alive as a sidecar so closing the window stops\neverything cleanly.\n\n**Option C — Build an installer (.dmg \u002F .msi \u002F .deb \u002F .AppImage)**\n\n```bash\npnpm tauri:build              # desktop app only — server runs separately\npnpm bundle                   # app + Python backend (PyInstaller sidecar)\npnpm bundle:windows           # cross-platform variants\npnpm bundle:mac-arm\n```\n\nThe bundled artefact lands under `src-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002F` —\ndouble-click to run; the backend auto-starts as a packaged sidecar.\n\nOnce running (any of the three), drop a CIF \u002F POSCAR \u002F XYZ \u002F extxyz \u002F mol2 \u002F pdb \u002F traj file onto the viewer, or ask CatBot: *\"fetch Cu from Materials Project and cut a (100) slab.\"*\n\n---\n\n## 🤖 CatBot Examples\n\n```text\n\"Fetch TiO2 anatase from Materials Project, make a 2×2×2 supercell,\n cut a (101) slab with 3 layers and 15 Å vacuum.\"\n\n\"Find adsorption sites and place CO on the most stable hollow site.\"\n\n\"Generate VASP input for relaxation with PBE+D3, ENCUT=520, ISMEAR=0.\"\n\n\"Create a workflow: geo_opt → single_point → DOS analysis,\n then submit it to Shaheen partition workq with 64 cores.\"\n\n\"Place CO and NH2 on Cu(111) at 3.5 Å for a C-N coupling slow-growth\n run, set up the ICONST and propose ENCUT\u002Fk-mesh.\"\n```\n\n### How chat-driven workflow generation works\n\nCatGo has two workflow-authoring paths:\n\n1. **Visual editor** — drag nodes from the left palette (Input \u002F\n   Calculation \u002F Tools \u002F Logic \u002F Analysis), wire them on the canvas,\n   then run the graph.\n2. **CatBot pane** — type a request such as \"set up a HER free-energy\n   workflow on Pt(111) with three intermediates\"; CatBot builds the DAG\n   through CatGo's MCP-backed workflow APIs.\n\nThe in-app CatBot path uses the running backend's HTTP MCP endpoint. It\ndoes not register the same stdio MCP server used by the standalone\nterminal plugin.\n\n```text\nYou ─ chat ─▶ CatBot pane                         (src\u002Flib\u002Fchat\u002F*)\n              │\n              ▼\n        agent bridge                              (vite-plugin-agent-bridge.ts in dev;\n              │                                   desktop bridge in packaged builds)\n              │\n              ▼\n        provider adapter                          (for Claude: @anthropic-ai\u002Fclaude-agent-sdk query())\n              │\n              │  MCP server URL: http:\u002F\u002Flocalhost:\u003Cport>\u002Fapi\u002Fmcp\n              │  plus X-CatGo-Tab-Id so tool results return to the active viewer tab\n              ▼\n        server\u002Fcatgo\u002Frouters\u002Fmcp_http.py\n              │\n              │  imports the consolidated tool schema\u002Fhandlers from\n              ▼\n        server\u002Fcatgo\u002Fmcp_tools\u002Fserver_claude_code.py\n              │\n              ├── catgo_structure   — build\u002Fedit\u002Finspect the viewer structure\n              ├── catgo_fetch       — Materials Project \u002F OPTIMADE \u002F PubChem\n              ├── catgo_workflow    — create \u002F batch-edit DAG nodes + edges\n              ├── catgo_quickbuild  — one-call recipe builders\n              ├── catgo_analyze     — DOS \u002F band \u002F COHP \u002F adsorption-site analysis\n              ├── catgo_view        — viewer state and screenshots\n              ├── catgo_catalysis   — free-energy diagrams and volcano plots\n              ├── catgo_file        — local + remote file I\u002FO\n              └── catgo_system      — environment, sessions, settings\n```\n\nThe MCP tool mutates backend state (workflow DAGs, viewer-panel state,\nor HPC job records). The frontend then sees those backend updates through\nthe normal app state and streaming response path, so from the user's\nperspective a sentence in CatBot turns into a visible workflow graph.\n\nThere is also a separate **terminal plugin** path:\n\n```text\nClaude Code terminal\n  └── catbot-plugin\u002F.mcp.json\n        └── ${CLAUDE_PLUGIN_ROOT}\u002Fserver\u002Fmcp_server.py\n              └── symlink to server\u002Fmcp_server.py\n                    └── catgo.mcp_tools.server\n```\n\nThat standalone stdio server exposes the broader fine-grained MCP tool\nset plus dynamic tool lifecycle commands such as `catgo_create_tool` and\n`catgo_save_tool`. It is useful for terminal agents, but it is not the\nsame MCP surface as the in-app CatBot pane.\n\nThe browser UI does not call model APIs directly. Model traffic is owned\nby the local agent bridge\u002Fprovider adapter, while CatGo operations flow\nthrough the backend MCP endpoint.\n\n### AI Provider Setup\n\nPick any available provider in CatBot settings:\n\n| Provider group | Options | Notes |\n|---|---|---|\n| **Local** | Ollama | Runs against `http:\u002F\u002F127.0.0.1:11434`; no API key required. |\n| **SDK agents** | Claude Code, Gemini CLI, Codex CLI | Install the matching CLI. Claude can also use `ANTHROPIC_API_KEY`; Gemini can use CLI OAuth or `GEMINI_API_KEY`; Codex uses the Codex SDK\u002FCLI auth flow. |\n| **API providers** | DeepSeek, Qwen, Kimi, Zhipu GLM, Gemini | Use an API key from settings or server env (`DEEPSEEK_API_KEY`, `DASHSCOPE_API_KEY`, `MOONSHOT_API_KEY`, `ZHIPUAI_API_KEY`, `GEMINI_API_KEY`). These go through CatGo's OpenAI-compatible streaming path. |\n\nFor API providers, the Base URL field is editable, so the same path can be\npointed at another OpenAI-compatible endpoint when needed.\n\n---\n\n## 🗂️ Project Layout\n\n```\ncatgo-LRG\u002F\n├── src\u002F                      # SvelteKit + Svelte 5 frontend\n│   └── lib\u002F\n│       ├── structure\u002F        # 3D viewer (Threlte \u002F Three.js)\n│       ├── workflow\u002F         # DAG editor and node definitions\n│       ├── chat\u002F             # CatBot (in-app AI loop)\n│       └── api\u002F              # Tauri \u002F desktop \u002F browser routing\n├── server\u002F                   # FastAPI Python backend\n│   ├── routers\u002F              # REST endpoints\n│   ├── workflow\u002Fengines\u002F     # VASP \u002F QE \u002F LAMMPS \u002F CP2K \u002F ORCA …\n│   ├── mcp_tools\u002F            # MCP definitions for AI agents\n│   └── catgo\u002F                # Workflow engine and HPC submitter\n├── src-tauri\u002F                # Rust + Tauri desktop shell\n├── desktop\u002F                  # Standalone Vite dev frontend\n├── extensions\u002F\n│   ├── rust\u002F                 # Rust → WASM (bonding, supercell, slab)\n│   └── vscode\u002F               # VS Code extension\n├── catbot-plugin\u002F            # CatBot agent prompts and tools\n└── plugins\u002F                  # User plugins (analysis, viewers, …)\n```\n\n---\n\n## 🛠️ Development\n\n| Command | Description |\n|---|---|\n| `pnpm desktop:serve` | Frontend on port 3100 plus Python backend on port 8000 (recommended) |\n| `pnpm desktop:dev` | Frontend only |\n| `pnpm tauri:dev` | Full Tauri desktop app |\n| `pnpm check` | Svelte \u002F TypeScript check |\n| `pnpm test` | Vitest unit tests |\n| `cd server && pytest` | Python backend tests |\n\n---\n\n## 🧩 VS Code Extension\n\nA separate VS Code extension under [`extensions\u002Fvscode\u002F`](extensions\u002Fvscode\u002F) previews CIF \u002F POSCAR \u002F XYZ \u002F TRAJ \u002F HDF5 files directly inside the editor (right-click → *Render with CatGo*, or \u003Ckbd>Ctrl\u003C\u002Fkbd>\u002F\u003Ckbd>⌘\u003C\u002Fkbd> + \u003Ckbd>Shift\u003C\u002Fkbd> + \u003Ckbd>V\u003C\u002Fkbd>).\n\n---\n\n## 🙏 Acknowledgements\n\nCatGo would not exist without a tremendous amount of open-source work. We are particularly indebted to:\n\n### Foundation\n\n- [**MatterViz**](https:\u002F\u002Fgithub.com\u002Fjanosh\u002Fmatterviz) by [Janosh Riebesell](https:\u002F\u002Fgithub.com\u002Fjanosh) — the 3D structure viewer, periodic-table widgets, element data, color schemes, and several UI patterns originate from MatterViz. CatGo has reworked many of them significantly, but the foundation remains MatterViz.\n\n### Frontend stack\n\n[Svelte 5](https:\u002F\u002Fsvelte.dev) · [SvelteKit](https:\u002F\u002Fkit.svelte.dev) · [Tauri](https:\u002F\u002Ftauri.app) · [Vite](https:\u002F\u002Fvitejs.dev) · [pnpm](https:\u002F\u002Fpnpm.io) · [three.js](https:\u002F\u002Fthreejs.org) · [threlte](https:\u002F\u002Fthrelte.xyz) · [d3](https:\u002F\u002Fd3js.org) · [Monaco Editor](https:\u002F\u002Fmicrosoft.github.io\u002Fmonaco-editor\u002F) · [xterm.js](https:\u002F\u002Fxtermjs.org) · [moyo](https:\u002F\u002Fgithub.com\u002Fspglib\u002Fmoyo) (symmetry).\n\n### Python backend\n\n[FastAPI](https:\u002F\u002Ffastapi.tiangolo.com) · [pymatgen](https:\u002F\u002Fpymatgen.org) · [ASE](https:\u002F\u002Fwiki.fysik.dtu.dk\u002Fase\u002F) · [Open Babel](https:\u002F\u002Fopenbabel.org) · [Packmol](https:\u002F\u002Fm3g.github.io\u002Fpackmol\u002F) · [Phonopy](https:\u002F\u002Fphonopy.github.io\u002Fphonopy\u002F) · [Phonopy + Spglib](https:\u002F\u002Fspglib.readthedocs.io) · [RDKit](https:\u002F\u002Fwww.rdkit.org).\n\n### Machine-learning potentials\n\n[MACE](https:\u002F\u002Fgithub.com\u002FACEsuit\u002Fmace) · [CHGNet](https:\u002F\u002Fgithub.com\u002FCederGroupHub\u002Fchgnet) · [M3GNet \u002F MatGL](https:\u002F\u002Fgithub.com\u002Fmaterialsvirtuallab\u002Fmatgl) · [ORB](https:\u002F\u002Fgithub.com\u002Forbital-materials\u002Forb-models) · [FAIR-Chem \u002F UMA](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Ffairchem) · [DeePMD-kit](https:\u002F\u002Fgithub.com\u002Fdeepmodeling\u002Fdeepmd-kit) · [xTB](https:\u002F\u002Fxtb-docs.readthedocs.io).\n\n### DFT \u002F MD engines (input + post-processing)\n\n[VASP](https:\u002F\u002Fwww.vasp.at) · [Quantum ESPRESSO](https:\u002F\u002Fwww.quantum-espresso.org) · [LAMMPS](https:\u002F\u002Flammps.org) · [CP2K](https:\u002F\u002Fwww.cp2k.org) · [ORCA](https:\u002F\u002Fwww.faccts.de\u002Forca\u002F) · [GPAW](https:\u002F\u002Fwiki.fysik.dtu.dk\u002Fgpaw\u002F) · [ABINIT](https:\u002F\u002Fwww.abinit.org) · [SIESTA](https:\u002F\u002Fsiesta-project.org) · [DFTB+](https:\u002F\u002Fdftbplus.org) · [Gaussian](https:\u002F\u002Fgaussian.com).\n\n### AI agents\n\n[Anthropic Claude](https:\u002F\u002Fwww.anthropic.com) \u002F [Claude Code CLI](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) · [OpenAI Codex CLI](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) · [Google Gemini CLI](https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli) · [Ollama](https:\u002F\u002Follama.com) · [DeepSeek](https:\u002F\u002Fwww.deepseek.com) · [Qwen](https:\u002F\u002Fhelp.aliyun.com\u002Fzh\u002Fmodel-studio\u002F) · [Kimi](https:\u002F\u002Fplatform.moonshot.ai) · [Zhipu GLM](https:\u002F\u002Fopen.bigmodel.cn) · [Gemini API](https:\u002F\u002Fai.google.dev).\n\n### Testing & tooling\n\n[Vitest](https:\u002F\u002Fvitest.dev) · [Playwright](https:\u002F\u002Fplaywright.dev) · [pytest](https:\u002F\u002Fpytest.org) · [Deno](https:\u002F\u002Fdeno.land) (lint\u002Fformat).\n\nThank you to every maintainer of these projects — the science work CatGo enables stands entirely on your shoulders.\n\n---\n\n## 📚 Citation\n\nIf you use CatGo in a publication, please cite the ChemRxiv preprint:\n\n```bibtex\n@misc{liu2026catgo,\n  author    = {Liu, Guangsheng and Ma, Xiao and Zhang, Leshen and Pascasio, Jenedith and Yang, Jonathan and Chen, Yuxiang and Li, Wan-Lu},\n  title     = {CatGo: Bridging CLI Coding Agents with Interactive Structure and Workflow Management for Computational Chemistry},\n  year      = {2026},\n  doi       = {10.26434\u002Fchemrxiv.15002984\u002Fv1},\n  url       = {https:\u002F\u002Fdoi.org\u002F10.26434\u002Fchemrxiv.15002984\u002Fv1},\n  publisher = {ChemRxiv},\n  note      = {Preprint},\n}\n```\n\n---\n\n## 📄 License\n\nCatGo is distributed under the [**GNU Affero General Public License v3.0 or later**](license) (AGPL-3.0-or-later). You are free to use, modify, and redistribute the software under the terms of that license. If you run a modified version of CatGo as a network service, you must make the corresponding source code available to your users under the same license.\n\n---\n\n\u003Cp align=\"center\">\n  Developed at \u003Ca href=\"https:\u002F\u002Fwanlulilab.ucsd.edu\u002F\">Dr. Wanlu Li Lab @ UCSD\u003C\u002Fa>.\n\u003C\u002Fp>\n","CatGo 是一个面向计算材料科学的AI驱动工作台，集成了交互式3D结构查看器、自然语言AI助手（CatBot）、可视化DAG工作流引擎以及高性能计算（HPC）集成。其核心功能包括通过直观的3D界面展示晶体、分子和表面结构，利用先进的AI技术简化复杂的工作流程创建过程，并支持多种流行的计算化学软件如VASP、ORCA等进行作业提交与管理。特别适合于催化及表面科学研究领域中构建模型、生成输入文件、远程集群任务调度与结果后处理等应用场景。基于Tauri框架开发，前端采用SvelteKit，后端则使用FastAPI编写，确保了良好的跨平台兼容性和用户体验。",2,"2026-06-11 04:00:08","CREATED_QUERY"]