Agent skill

Orca Opt

by Hello-QM in Hello-QM/catgo-LRG

ORCA geometry optimization. An agent skill from Hello-QM/catgo-LRG.

AGPL-3.0Auto-check passed

Install Orca Opt

skills CLI
$ npx skills add Hello-QM/catgo-LRG --skill orca-opt -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Hello-QM/catgo-LRG orca-opt --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Hello-QM/catgo-LRG.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/orca-opt .claude/skills/orca-opt && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
orca-opt
GitHub stars
205
Token cost
~2.7k tokens
SKILL.md length
925 words
Files
1
Skills in repo
75
Repo updated
First seen
Licence
AGPL-3.0

At a glance

ORCA geometry optimization. An agent skill from Hello-QM/catgo-LRG.

  • Works in 9 steps: Confirm structure is loaded → Find the Expanse session_id → Create the workflow (auto-captures… → …
  • SKILL.md covers When to Use, Node Parameters (canonical…, MCP Tool Examples — proven… and Dispersion Corrections, plus 3 more sections
  • Calls curl and pip

What it does

Orca Opt is an agent skill from Hello-QM/catgo-LRG. ORCA geometry optimization. Handles method/basis selection, dispersion corrections, solvent models, and convergence settings.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: AI-driven workbench for computational materials science — interactive 3D structure viewer, natural-language CatBot assistant, visual DAG workflow engine, HPC job submission… The licence is AGPL-3.0.

Example prompts

  • “/orca-opt”

Requirements

  • Python 3

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Confirm structure is loaded
  2. Find the Expanse session_id
  3. Create the workflow (auto-captures viewer structure)
  4. Add the geo_opt node and connect it
  5. Run with the full HPC run_config
  6. Common parameter variations
  7. Monitor
  8. Pull results when COMPLETED
  9. Parse with OPI

What it can do on your machine

Read from SKILL.md and the folder at commit fd6291b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl and pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Orca Opt loads about 2.7k tokens when it runs. Until then it costs about 34 tokens; SKILL.md has 925 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~34
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Hello-QM/catgo-LRG at commit fd6291b, republished under its AGPL-3.0 licence (© Hello-QM). 925 words, ~2,722 tokens.

Download SKILL.mdSave it as .claude/skills/orca-opt/SKILL.md (or your agent's skills folder).
name
orca-opt
description
ORCA geometry optimization. Handles method/basis selection, dispersion corrections, solvent models, and convergence settings.

ORCA Geometry Optimization Skill

When to Use

Use this skill when the user wants to:

  • Optimize a molecular geometry with ORCA
  • Find the minimum energy structure of a molecule
  • Relax a molecular cluster or complex

Do NOT use for periodic systems (use VASP or CP2K instead).

Node Parameters (canonical names — these are what the engine actually reads)

ParameterDefaultDescription
methodB3LYPDFT functional (e.g. B3LYP, PBE0, wB97X-D4, r2SCAN-3c)
basisdef2-SVPBasis set (omit for composite methods like r2SCAN-3c)
charge0Total charge
multiplicity1Spin multiplicity (2S+1)
dispersion(none)D4 | D3BJ | D3 | none. Put D4/D3BJ HERE, not in method.
three_body_dispersionfalseAdds ABC term (D3-class only; ignored for D4)
gridDefGrid2DefGrid1/2/3 — emitted only when ≠ default
wavefunction(none)e.g. UKS for unrestricted
uno, ucofalseUnrestricted natural / corresponding orbital tweaks
num_cores4%pal nprocs
max_core_mb4000%maxcore
opt_convergence(none)e.g. TightOpt, VeryTightOpt

⚠️ extra_keywords and extra_blocks are NOT read by the ORCA workflow engine. Earlier versions of this skill recommended them; anything passed via those keys is silently dropped. Use the dedicated fields above. CPCM solvation, SlowConv/SOSCF, and NumFreq currently have no first-class field on the opt/freq/neb_ts/irc nodes — that is a node-def gap, not a usage problem.

MCP Tool Examples — proven Expanse submission flow

Use catgo_workflow (graph-based), NOT catgo_workflow_engine (task-based). The graph-based tool auto-captures the viewer structure on create. The task-based tool's add_task does not, so jobs fail with "No input structure provided". Param keys differ too: graph-based uses method/basis, task-based uses orca_method/orca_basis.

1. Confirm structure is loaded
json
catgo_view(action: "get_state")
2. Find the Expanse session_id

Session IDs are volatile — they change on every reconnect. Discover the current one:

bash
curl -s http://localhost:8000/api/hpc/connections

Look for the entry with host: login.expanse.sdsc.edu and copy its session_id.

3. Create the workflow (auto-captures viewer structure)
json
catgo_workflow(action: "create", name: "Benzene optimization")

Returns a workflow with one structure_input node containing the current viewer structure. Note its node ID (e.g., n1777012885-iode).

4. Add the geo_opt node and connect it

Inject extra_blocks: "%output jsongbwfile True jsonpropfile True end" so ORCA emits the JSON files OPI parses on the way back. Without this, OPI parsing falls back to grepping ORCA.out (still works, just less rich).

json
catgo_workflow(action: "batch", workflow_id: "<wf_id>", operations: [
  {"op": "add_node", "node_type": "geo_opt", "label": "opt",
   "params": {
     "software": "orca",
     "method": "B3LYP",
     "basis": "def2-SVP",
     "charge": 0,
     "multiplicity": 1,
     "extra_blocks": "%output jsongbwfile True jsonpropfile True end"
   }},
  {"op": "connect", "from_id": "<structure_input_id>", "to_id": "opt",
   "from_handle": "structure", "to_handle": "structure"}
])
5. Run with the full HPC run_config

Real opt jobs on non-trivial molecules can run for hours — default to partition: "shared" with a generous walltime. Use debug only for tiny sanity checks (≤ a couple of heavy atoms, single-point or quick test). Read server/templates/orca_generic.sh and pass its contents as default_template.

json
catgo_workflow(action: "run", workflow_id: "<wf_id>", run_config: {
  "execution_mode": "hpc",
  "default_session_id": "<expanse_session_id>",
  "base_work_dir": "/expanse/lustre/projects/sdp126/jyang25/ORCA/catgo",
  "default_job_params": {
    "nodes": 1, "ntasks": 8, "cpus_per_task": 1,
    "walltime": "04:00:00", "partition": "shared"
  },
  "cluster_configs": {
    "<expanse_session_id>": {
      "account": "sdp126",
      "partition": "shared",
      "module_loads": "module load cpu/0.17.3b\nmodule load gcc/10.2.0/npcyll4\nexport PATH=$HOME/openmpi-4.1.8/bin:$PATH\nexport LD_LIBRARY_PATH=$HOME/openmpi-4.1.8/lib:$LD_LIBRARY_PATH",
      "orca_dir": "/home/jyang25/orca_6_1_1_RRP8",
      "default_template": "<contents of server/templates/orca_generic.sh>",
      "default_job_params": {
        "nodes": 1, "ntasks": 8, "cpus_per_task": 1,
        "walltime": "04:00:00", "partition": "shared"
      }
    }
  }
})

For a quick sanity check (e.g., H2O / methane / single small molecule), override to partition: "debug", walltime: "00:30:00", ntasks: 4. The debug partition caps at 30 min — anything bigger will be rejected after the limit.

The local-scratch template stages I/O to $TMPDIR/orca_$SLURM_JOB_ID and copies results back to the Lustre work_dir. Required on Expanse — Lustre is bad for ORCA's many small temp files.

6. Common parameter variations

For dispersion (non-covalent systems, dimers, π-stacking, H-bonding):

json
"params": {"method": "B3LYP", "basis": "def2-TZVP", "dispersion": "D3BJ", "charge": 0, "multiplicity": 1}

For D4 (newer Grimme correction, slightly better for metals):

json
"params": {"method": "B3LYP", "basis": "def2-SVP", "dispersion": "D4", "charge": 0, "multiplicity": 1}

For implicit solvation:

CPCM is currently a node-def gap on opt/freq/neb_ts/irc — there's no first-class solvation/solvent field, and extra_keywords is not read. UV-Vis is the exception (it has dedicated solvation/solvent fields). Until this is fixed, single-point CPCM on a gas-phase optimized geometry, or running on a non-CatGo input file, is the workaround.

For tight convergence (publication quality, pre-freq):

json
"params": {"method": "B3LYP", "basis": "def2-TZVP", "opt_convergence": "TightOpt", "dispersion": "D3BJ", "charge": 0, "multiplicity": 1}

For open-shell radicals:

json
"params": {"method": "UB3LYP", "basis": "def2-SVP", "charge": 0, "multiplicity": 2}
7. Monitor
json
catgo_workflow(action: "status", workflow_id: "<wf_id>")

Or query SLURM directly via the live session:

bash
curl -s "http://localhost:8000/api/hpc/jobs/<job_id>?session_id=<expanse_session_id>"
Show full SKILL.md (381 more words)Show less
8. Pull results when COMPLETED

Pull the ORCA outputs into a local directory, including the OPI JSON files (*.property.json is the rich structured output OPI parses):

bash
mkdir -p ./local_run
for f in ORCA.out ORCA.xyz ORCA.engrad ORCA.property.json ORCA.json; do
  curl -s -X POST http://localhost:8000/api/hpc/files/read-content \
    -H 'Content-Type: application/json' \
    -d "{\"session_id\":\"<expanse_session_id>\",\"file_path\":\"<work_dir>/$f\"}" \
    > ./local_run/$f
done

ORCA.json and ORCA.property.json only exist if the input had the %output jsongbwfile True jsonpropfile True end block (step 4). If you omitted it, OPI parsing falls back to grepping ORCA.out.

9. Parse with OPI

Replaces hand-walking ORCA.xyz / ORCA.engrad. Requires pip install orca-pi.

python
import sys
sys.path.insert(0, ".claude/skills")  # for the _shared helper
from _shared.orca_opi import parse_local

out = parse_local("./local_run")

print("SCF converged:        ", out.scf_converged())
print("Geometry converged:   ", out.geometry_optimization_converged())
print("Final energy (Eh):    ", out.get_final_energy())
print("Optimized XYZ:\n", out.get_structure().to_xyz_block())

# Per-step trajectory (energy curve)
for i, geom in enumerate(out.results_properties.geometries):
    print(i, geom.single_point_data.finalenergy)

# Population analyses (any of these are one call now)
mulliken = out.get_mulliken()
print("HOMO/LUMO/gap (eV):", out.get_homo(), out.get_lumo(), out.get_hl_gap())
Viewing the optimization curve in the IDE

Use the shared helper to plot per-step energies and surface the PNG inline.

python
from _shared.orca_opi import quick_plot_opt_energy, show_png
png = quick_plot_opt_energy(out)            # writes ./local_run/opt_energy.png
show_png(png, "Opt energy convergence")     # prints `![Opt energy convergence](local_run/opt_energy.png)`

After running this, reply to the user with the markdown link the script printed (e.g. ![Opt energy convergence](local_run/opt_energy.png)) so Claude Code renders the figure inline in chat.

Submission gotchas (real failures we hit)
  • catgo_workflow_engine.add_task doesn't auto-attach the viewer structure → "No input structure provided".
  • partition=workq (Shaheen default) is invalid on Expanse → use debug or shared.
  • Missing account=sdp126 → "Invalid account or account/partition combination".
  • Missing module_loads + orca_dir → orca not on PATH, job runs ORCA-not-found and silently produces nothing.
  • After re-connecting to Expanse, the session_id changes — re-discover via /api/hpc/connections and update default_session_id + cluster_configs key.
  • Engine doesn't regenerate submit.sh on retry alone — call run with the new run_config to get a fresh script with updated SBATCH headers.

Dispersion Corrections

KeywordMethodWhen to use
D3BJGrimme D3 with Becke-Johnson dampingDefault choice for dispersion
D3Grimme D3 with zero dampingLegacy, use D3BJ instead
D4Grimme D4Newer, slightly better for metals

Always include dispersion for: molecular dimers, adsorption complexes, conformational searches, anything with pi-stacking or H-bonding.

Basis Set Ladder

BasisQualityCostUse
def2-SVPDouble-zetaLowScreening, initial opt
def2-TZVPTriple-zetaMediumProduction geometry
def2-TZVPPTriple-zeta+polHighAccurate energetics
def2-QZVPPQuadruple-zetaVery highBenchmark only

Strategy: optimize with def2-SVP, then single-point with def2-TZVP for energy.

SCF Convergence Issues

ORCA SCF tweaks like SlowConv, VerySlowConv, SOSCF, SmearTemp 5000 are not exposed as first-class node params (gap in the engine). For now: pre-optimize with a smaller basis (def2-SVP) and feed that geometry to a larger-basis run, or run ORCA directly on a hand-edited input file outside the workflow engine.

Common Mistakes

  • Forgetting dispersion for non-covalent systems (huge geometry errors)
  • Using restricted (R) method for open-shell (use UB3LYP, not B3LYP)
  • Basis set too large for optimization (optimize with SVP, refine energy with TZVP)
  • Not checking for imaginary frequencies after optimization

© Hello-QM, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/orca-opt of Hello-QM/catgo-LRG.

Open the folder on GitHubat commit fd6291b

Compare with similar skills

Orca Opt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Orca Opt compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Orca Opt this skillHello-QM/catgo-LRG205—~2.7kAutomated safety check: PassAGPL-3.0
Error Handlingaffaan-m/ECC275k1 repos~2.7kAutomated safety check: PassMIT
Error Handlingthedaviddias/Front-End-Checklist74k—~416Automated safety check: PassMIT
Error Handlingaffaan-m/ECC275k—~2.4kAutomated safety check: PassMIT
Python Error Handlingwshobson/agents40k—~1.5kAutomated safety check: PassMIT
Error Handling Patternswshobson/agents40k11 repos~1kAutomated safety check: PassMIT

Similar skills

  • Error Handling

    affaan-m/ECC

    Patterns for robust error handling across TypeScript, Python, and Go.

    275k GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • Error Handling

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing scripts, client components, bundles, or runtime behavior related to Implement proper error handling.

    74k GitHub stars~416 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Error Handling

    affaan-m/ECC

    TypeScript、Python、Goにわたる堅牢なエラー処理のパターン。型付きエラー、エラー境界、リトライ、サーキットブレーカー、ユーザー向けエラーメッセージをカバーします。

    275k GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed
  • Python Error Handling

    wshobson/agents

    Python error handling patterns including input validation, exception hierarchies, and partial failure handling.

    40k GitHub stars~1.5k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications.

    40k GitHub starsUsed in 11 repos~1k tokens
    DevelopmentAuto-check passed
  • Orca

    alsk1992/CloddsBot

    Orca Whirlpools - concentrated liquidity on Solana. An agent skill from alsk1992/CloddsBot.

    2.9k GitHub stars~119 tokensUpdated 6 days ago
    Auto-check passed

More from Hello-QM/catgo-LRG

All 75 skills in this repo
  • Campaign Md Orchestration

    Hello-QM/catgo-LRG

    Drive a file-first, agent-in-the-loop computational campaign via a folder + markdown tree (no DB).

    205 GitHub stars~1.6k tokensUpdated 16 days ago
    Auto-check passed
  • Lammps Deepmd

    Hello-QM/catgo-LRG

    Run LAMMPS molecular dynamics with DeePMD-kit machine learning potentials.

    205 GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed
  • Catgo Gibbs Pipeline

    Hello-QM/catgo-LRG

    Compute adsorption/reaction Gibbs free energies, free-energy diagrams, and electrochemical overpotentials (HER/ORR/OER/CO2RR/NRR) with VASP.

    205 GitHub stars~669 tokensUpdated 16 days ago
    Auto-check passed
  • Abinit

    Hello-QM/catgo-LRG

    Generate and manage ABINIT DFT calculations. An agent skill from Hello-QM/catgo-LRG.

    205 GitHub stars~963 tokensUpdated 16 days ago
    Auto-check passed
  • Adsorbate Placement

    Hello-QM/catgo-LRG

    A skill your agent uses when the user asks to place an adsorbate molecule on a surface, find adsorption sites, or set up a surface+adsorbate model for DFT.

    205 GitHub stars~3k tokensUpdated 16 days ago
    Auto-check passed
  • Adsorption Energy

    Hello-QM/catgo-LRG

    A skill your agent uses when the user asks for adsorption energy, binding energy, or wants to compare how strongly a molecule binds to a surface.

    205 GitHub stars~1.4k tokensUpdated 16 days ago
    Auto-check passed

Questions about Orca Opt

What does Orca Opt do?

ORCA geometry optimization. An agent skill from Hello-QM/catgo-LRG. Orca Opt is an agent skill from Hello-QM/catgo-LRG. ORCA geometry optimization.

How do I install Orca Opt in Claude Code?

Run `npx skills add Hello-QM/catgo-LRG --skill orca-opt -a claude-code`. Or copy the skill folder (.claude/skills/orca-opt in Hello-QM/catgo-LRG) into .claude/skills/orca-opt in your project. Claude Code loads it when a task matches its description.

How do I install Orca Opt in Codex?

Run `npx skills add Hello-QM/catgo-LRG --skill orca-opt -a codex`. Or copy the skill folder (.claude/skills/orca-opt in Hello-QM/catgo-LRG) into .agents/skills/orca-opt in your project. Codex loads it when a task matches its description.

Can I use Orca Opt in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Hello-QM/catgo-LRG --skill orca-opt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/orca-opt, .gemini/skills/orca-opt, .github/skills/orca-opt and .opencode/skills/orca-opt in your project.

What does Orca Opt need to run?

Going by SKILL.md and its folder, Orca Opt needs the command-line tools its instructions call (curl and pip). Our summary lists: Python 3.

Does Orca Opt access the network?

SKILL.md contains no URLs. Its commands use curl and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Orca Opt safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Orca Opt use?

Orca Opt is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Orca Opt use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Orca Opt?

Skills that share tags, products or a category with Orca Opt: Error Handling (affaan-m/ECC, 275k stars), Error Handling (thedaviddias/Front-End-Checklist, 74k stars), Error Handling (affaan-m/ECC, 275k stars) and Python Error Handling (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Orca Opt?

Hello-QM (a GitHub user) maintains it in Hello-QM/catgo-LRG, which has 205 GitHub stars. The repository holds 75 skills in this directory. The repository was last updated on September 22, 2026.

Source: Hello-QM/catgo-LRG on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.