Agent skill

Vasp Freq

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

VASP vibrational frequency calculation. An agent skill from Hello-QM/catgo-LRG.

AGPL-3.0Auto-check passed

Install Vasp Freq

skills CLI
$ npx skills add Hello-QM/catgo-LRG --skill vasp-freq -a claude-code

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

GitHub CLI
$ gh skill install Hello-QM/catgo-LRG vasp-freq --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/vasp-freq .claude/skills/vasp-freq && 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
vasp-freq
GitHub stars
205
Token cost
~1.9k tokens
SKILL.md length
531 words
Files
1
Skills in repo
75
Repo updated
First seen
Licence
AGPL-3.0

At a glance

VASP vibrational frequency calculation. An agent skill from Hello-QM/catgo-LRG.

  • Works in 4 steps: After geometry optimization — compute… → Transition state verification — confirm… → IR/Raman spectra — predict vibrational… → …
  • SKILL.md covers When to Use, Discussion Checkpoints, Basic Frequency Calculation and Frozen Atoms for Slab Systems, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Vasp Freq is an agent skill from Hello-QM/catgo-LRG. VASP vibrational frequency calculation. Compute ZPE and thermodynamic corrections. Handles frozen atoms for slab systems with multiple freeze modes.

Its SKILL.md is about 1.9k 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

  • “/vasp-freq”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. After geometry optimization — compute ZPE and Gibbs energy corrections
  2. Transition state verification — confirm exactly one imaginary frequency
  3. IR/Raman spectra — predict vibrational spectra
  4. Thermodynamic properties — feed into gibbs_energy task

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

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

  • Network

    No URLs in SKILL.md.

    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

Vasp Freq loads about 1.9k tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 531 words of instructions outside code blocks.

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

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). 531 words, ~1,921 tokens.

Download SKILL.mdSave it as .claude/skills/vasp-freq/SKILL.md (or your agent's skills folder).
name
vasp-freq
description
VASP vibrational frequency calculation. Compute ZPE and thermodynamic corrections. Handles frozen atoms for slab systems with multiple freeze modes.

VASP Frequency Calculation

Compute vibrational frequencies using finite differences. Used for zero-point energy (ZPE), thermodynamic corrections, and checking transition states.

When to Use

  1. After geometry optimization — compute ZPE and Gibbs energy corrections
  2. Transition state verification — confirm exactly one imaginary frequency
  3. IR/Raman spectra — predict vibrational spectra
  4. Thermodynamic properties — feed into gibbs_energy task

Discussion Checkpoints

🔴 Must discuss with user:

  • freeze_mode — which atoms vibrate determines the thermodynamic corrections; freezing too few atoms wastes compute, freezing the adsorbate itself gives wrong ZPE
  • LREAL=.FALSE. — mandatory for frequency calculations; real-space projection introduces noise that corrupts finite-difference frequencies; this is non-negotiable

🟡 Recommend confirming:

  • POTIM (default: 0.015) — displacement step size; reduce to 0.01 if numerical noise appears, increase to 0.02 for heavier atoms
  • NFREE (default: 2) — central differences; increase to 4 for higher accuracy at 2x cost
  • ENCUT — must match the preceding geo_opt to ensure consistent forces; mismatched ENCUT invalidates the frequency data

🟢 Safe defaults:

  • IBRION = 5 (finite differences)
  • NSW = 1
  • EDIFF = 1E-6 (tighter than geo_opt for clean forces)

Basic Frequency Calculation

python
from catgo.workflow import Workflow
from catgo.workflow.builtins import geo_opt, freq, gibbs_energy

wf = Workflow("Frequency calculation")
struct = wf.add_task("structure_input", structure=optimized_json)
frq = wf.add_task(freq, structure=struct.output.structure,
                  system_name="CO_gas")
wf.submit()

MCP equivalent:

catgo_workflow_engine(action="create", params={"name": "Frequency calc"})

catgo_workflow_engine(action="add_task", params={
  "workflow_id": "wf_xxx",
  "task_type": "structure_input",
  "structure": "<optimized_json>"
})

catgo_workflow_engine(action="add_task", params={
  "workflow_id": "wf_xxx",
  "task_type": "freq",
  "software": "vasp",
  "structure": "{{t_001.output.structure}}",
  "system_name": "CO_gas"
})

catgo_workflow_engine(action="submit", params={"workflow_id": "wf_xxx"})

Frozen Atoms for Slab Systems

For adsorbates on surfaces, freeze the slab atoms and only compute frequencies for the adsorbate (and optionally top surface layer). This dramatically reduces cost.

freeze_mode Options
ModeDescriptionExample
"none"All atoms vibrate (gas-phase molecules)Small molecules
"layers"Freeze bottom N layers by z-coordinatefreeze_mode="layers", freeze_layers=4
"z_range"Freeze atoms below a z thresholdfreeze_mode="z_range", freeze_z_below=8.0
"element"Freeze specific elementsfreeze_mode="element", freeze_elements=["Ru", "O"]
"indices"Freeze specific atom indicesfreeze_mode="indices", freeze_indices=[0,1,2,3]
"manual"Use selective_dynamics from structurePre-set in POSCAR

For a typical slab with adsorbate:

python
opt = wf.add_task(geo_opt, structure=slab_oh_json,
                  ISIF=2, freeze_layers=2, system_name="*OH")

frq = wf.add_task(freq, structure=opt.output.structure,
                  freeze_mode="layers",
                  freeze_layers=4,    # Freeze bottom 4 layers (all slab atoms)
                  system_name="*OH")

Why freeze_layers=4 for freq but freeze_layers=2 for geo_opt?

  • geo_opt: freeze bottom half, let top surface layers relax with adsorbate
  • freq: freeze ALL slab atoms, only vibrate the adsorbate + binding site atoms
  • This is physically correct: slab phonons are not relevant for adsorption thermodynamics
Freeze by Z-range

Useful when layer detection is ambiguous:

python
frq = wf.add_task(freq, structure=opt.output.structure,
                  freeze_mode="z_range",
                  freeze_z_below=12.5,   # Angstrom
                  system_name="*OH")
Show full SKILL.md (217 more words)Show less

Chain: Optimization then Frequency then Gibbs Energy

The standard thermodynamics workflow:

python
wf = Workflow("OH adsorption Gibbs energy")
struct = wf.add_task("structure_input", structure=slab_oh_json)

# Step 1: Optimize geometry
opt = wf.add_task(geo_opt, structure=struct.output.structure,
                  ISIF=2, freeze_layers=2, system_name="*OH")

# Step 2: Frequency on optimized structure
frq = wf.add_task(freq, structure=opt.output.structure,
                  freeze_mode="layers", freeze_layers=4,
                  system_name="*OH")

# Step 3: Gibbs energy from DFT energy + frequencies
gib = wf.add_task(gibbs_energy,
                  energy=opt.output.energy,
                  frequencies=frq.output.frequencies,
                  phase="adsorbed",       # Harmonic approximation for adsorbates
                  temperature=298.15,     # K
                  freq_cutoff=50,         # cm-1, replace low freqs with this value
                  system_name="*OH")

wf.submit()

Gas-Phase Molecule Frequencies

For free molecules (H2, H2O, CO, etc.), do NOT freeze any atoms:

python
frq = wf.add_task(freq, structure=molecule_json,
                  freeze_mode="none",    # All atoms vibrate
                  system_name="H2O_gas")

gib = wf.add_task(gibbs_energy,
                  energy=opt.output.energy,
                  frequencies=frq.output.frequencies,
                  phase="gas",           # Ideal gas partition function
                  system_name="H2O_gas")

Gas vs adsorbed phase:

  • phase="adsorbed": harmonic approximation, frustrated translations/rotations replaced by freq_cutoff
  • phase="gas": ideal gas approximation with translational + rotational contributions

Key Parameters

ParameterDefaultPurpose
IBRION5Finite differences
NFREE2Central differences (2-point)
POTIM0.015Displacement step size (Angstrom)
EDIFF1e-6Tight SCF convergence (tighter than geo_opt)
LREAL.FALSE.Must be exact for frequencies

LREAL=.FALSE. is mandatory. Real-space projection introduces noise in forces that corrupts finite-difference frequencies. The config default overrides LREAL=Auto for freq tasks.

Analyzing Results

# Check frequencies after completion
catgo_analyze(action="frequencies", params={"task_id": "t_freq"})
# Returns: list of frequencies (cm-1), ZPE, imaginary modes

# Get raw result
catgo_workflow_engine(action="get_result", params={"task_id": "t_freq"})
# Returns: {"frequencies": [...], "zpe": 0.543}

Output

The freq task produces:

  • output.frequencies — list of vibrational frequencies in cm-1 (negative = imaginary)
  • output.zpe — zero-point energy in eV

Troubleshooting

ProblemFix
Many imaginary frequenciesStructure not converged — re-optimize with tighter EDIFFG=-0.01
One imaginary frequencyCould be a transition state (expected) or shallow minimum — check mode
Frequencies seem wrongEnsure LREAL=.FALSE. and EDIFF=1e-6
Calculation too expensiveFreeze more atoms (increase freeze_layers)
Numeric noise in frequenciesReduce POTIM to 0.01 or increase NFREE to 4

Cost Estimate

Frequency calculations require 6N single-point calculations where N is the number of free atoms (with NFREE=2). For a 5-atom adsorbate on a frozen slab, that is 30 SCF calculations — roughly 30x the cost of a single point.

© 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/vasp-freq of Hello-QM/catgo-LRG.

Open the folder on GitHubat commit fd6291b

Compare with similar skills

Vasp Freq 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.

Vasp Freq compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Vasp Freq this skillHello-QM/catgo-LRG205—~1.9kAutomated safety check: PassAGPL-3.0
Correctcursor/plugins10k3 repos~612Automated safety check: PassNone
CorrectionNxcoreAI/EverRoom3k—~290Automated safety check: PassCustom licence
Hunting For Beaconing With Frequency Analysismukul975/Anthropic-Cybersecurity-Skills34k—~2kAutomated safety check: PassApache-2.0
Eol Resistor Calculatorsickn33/agentic-awesome-skills47k1 repos~3.5kAutomated safety check: PassMIT
Correction Root-Cause Pipelinegarrytan/gbrain31k—~3.4kAutomated safety check: PassMIT

Similar skills

  • Correct

    cursor/plugins

    Official

    Find the mistakes agents keep repeating in this repo and make each one impossible.

    10k GitHub starsUsed in 3 repos~612 tokens
    Auto-check passed
  • Correction

    NxcoreAI/EverRoom

    Compute Room overview corrections—citation corrections as per-claim edits and general corrections as a single proposal.

    3k GitHub stars~290 tokensUpdated today
    Research & ScienceAuto-check passed
  • Hunting For Beaconing With Frequency Analysis

    mukul975/Anthropic-Cybersecurity-Skills

    Identify command-and-control beaconing patterns in network traffic by applying statistical frequency analysis, jitter calculation, and coefficient of variation scoring to detect periodic callbacks…

    34k GitHub stars~2k tokensUpdated 1 mo ago
    SecurityAuto-check passed
  • Eol Resistor Calculator

    sickn33/agentic-awesome-skills

    Calculates and validates end-of-line (EOL, SEOL, DEOL, TEOL) resistor loops for intrusion alarm panels (Honeywell, DSC, Paradox, Bosch) with wire gauge drop and state tables.

    47k GitHub starsUsed in 1 repo~3.5k tokens
    Auto-check passed
  • Traces a factual error the user points out back to its source (a brain page, a memory file, SOUL.md or USER.md, or a hallucination) and fixes that source instead of just noting the correction.

    31k GitHub stars~3.4k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Calculate optical frequency and wavelength relationships for photonics and electromagnetic analysis.

    169 GitHub starsUsed in 1 repo~499 tokens
    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 17 days ago
    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 17 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 17 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 17 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 17 days ago
    Auto-check passed
  • Analysis Router

    Hello-QM/catgo-LRG

    A skill your agent uses when the user asks to analyze computational results: Gibbs free energy, OER/HER/CO2RR overpotentials, adsorption energy, convergence tests, DOS/d-band analysis, or Bader…

    205 GitHub stars~869 tokensUpdated 17 days ago
    Auto-check passed

Questions about Vasp Freq

What does Vasp Freq do?

VASP vibrational frequency calculation. An agent skill from Hello-QM/catgo-LRG. Vasp Freq is an agent skill from Hello-QM/catgo-LRG. VASP vibrational frequency calculation.

How do I install Vasp Freq in Claude Code?

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

How do I install Vasp Freq in Codex?

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

Can I use Vasp Freq 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 vasp-freq -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vasp-freq, .gemini/skills/vasp-freq, .github/skills/vasp-freq and .opencode/skills/vasp-freq in your project.

What does Vasp Freq need to run?

SKILL.md names no scripts, command-line tools or credentials: Vasp Freq is instructions for the agent only. Our summary lists: Python 3.

Does Vasp Freq access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Vasp Freq 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 Vasp Freq use?

Vasp Freq 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 Vasp Freq use?

About 1.9k tokens (SKILL.md is roughly 7.7k 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 Vasp Freq?

Skills that share tags, products or a category with Vasp Freq: Correct (cursor/plugins, 10k stars), Correction (NxcoreAI/EverRoom, 3k stars), Hunting For Beaconing With Frequency Analysis (mukul975/Anthropic-Cybersecurity-Skills, 34k stars) and Eol Resistor Calculator (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Vasp Freq?

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.