Agent skills for using CSC infrastructure correctly, safely, and in a streamlined way. Each subdirectory is a self-contained skill packaged for Claude Code, Codex, GitHub Copilot CLI, and compatible agent harnesses.
-
csc-allas — use Allas, CSC's object storage. Generates code/scripts (boto3, aws-cli, s3cmd, rclone) for reading, writing, listing, sharing and publishing Allas data; advises on the mechanics (CSC projects & credentials, public/private buckets, ACLs, bucket policies, lifecycle, S3 vs Swift). Defaults to S3, and does not run destructive Allas operations on your behalf.
-
csc-pouta — use Pouta, CSC's OpenStack IaaS cloud (cPouta, plus ePouta for sensitive data). Generates code/scripts (openstack CLI, openstacksdk, Heat/Terraform/Ansible) for launching and managing VMs, volumes, snapshots, images, networking, security groups and SSH access; advises on the mechanics (CSC projects/tenants, flavors, billing & shelving, ephemeral vs persistent storage, application credentials, sending mail via the
smtp.pouta.csc.firelay). Can create resources with clear disclosure of cost/exposure, but does not modify or delete existing OpenStack resources on your behalf, nor run the IaC it writes. -
csc-roihu — use Roihu, CSC's national supercomputer (successor to Puhti and Mahti). Generates Slurm job scripts (CPU and GH200 GPU partitions), SSH-certificate setup (24 h certificates via MyCSC or the certificate helper tool), data-transfer and software-install recipes; advises on the mechanics (the x86/ARM architecture split, partitions and billing units, disk areas and quotas, Lustre vs node-local NVMe, login-node policy and HPC etiquette). Runs read-only inspection and submits jobs only with cost disclosure; does not delete data or cancel/modify existing jobs on your behalf.
-
csc-rahti — use Rahti, CSC's container cloud (OpenShift/OKD, a Kubernetes-based PaaS). Generates manifests and
occommands for deploying and running containerised apps — pods, deployments, services, routes, jobs, persistent volumes (PVC) and snapshots — building and pushing images to the integrated registry (BuildConfig, S2I,oc new-app), custom domains/TLS/IP allowlists, and project/quota setup; advises on the mechanics (OpenShift vs Kubernetes, the non-root multi-tenant security model,*.rahtiapp.firoutes, sending mail via thesmtp.pouta.csc.firelay, billing). Can create resources with clear disclosure of cost (BU) and public exposure, but does not modify or delete existing Rahti resources on your behalf.
The canonical skill content lives under skills/. The checked-in
.agents/skills/ symbolic links expose the same files to Codex and GitHub
Copilot CLI without maintaining copies.
Clone the repository and launch Codex anywhere inside the checkout; Codex
discovers the repository skills through .agents/skills/. Use /skills to
verify discovery.
For a user-wide installation shared with Copilot CLI, link the skills into the standard user directory:
mkdir -p ~/.agents/skills
ln -s "$PWD"/skills/csc-* ~/.agents/skills/Point an Agent Skills-compatible harness at skills/, or link the individual
skill directories into the harness's configured skill search path.
This repo is a Claude Code plugin marketplace. The recommended way to install — and to get updates by pulling — is via the plugin system. In Claude Code, first register the marketplace:
/plugin marketplace add https://github.com/CSCfi/csc-skills.git
Then install the plugin (one plugin bundles all the skills):
/plugin install csc-skills@csc-skills
The form is <plugin>@<marketplace>; here the plugin and the marketplace are
both named csc-skills. After the marketplace is added, /plugin also lets you
browse and toggle plugins interactively. Updating is git pull in the
marketplace checkout, or re-running /plugin marketplace add to refresh.
Skills are loaded on demand — Claude only pulls a skill into context when its description matches what you're doing — so installing the whole plugin costs nothing for the skills you don't happen to use.
Skills are also discovered from ~/.claude/skills/. To install them for your
user without the plugin system:
cp -r skills/csc-* ~/.claude/skills/Or symlink an individual skill so it tracks the repo:
ln -s "$PWD/skills/csc-allas" ~/.claude/skills/csc-allasEither way, ask Claude Code something a skill covers (e.g. "upload this result to an Allas bucket") and it will pick the skill up automatically.
csc-skills/
├── .agents/
│ └── skills/
│ └── csc-allas -> ../../skills/csc-allas
├── .claude-plugin/
│ ├── plugin.json # plugin manifest (source ".": the repo is the plugin)
│ └── marketplace.json # marketplace manifest (lists this one plugin)
├── .codex-plugin/
│ └── plugin.json # Codex skills-only plugin manifest
├── AGENTS.md -> CLAUDE.md # shared agent-maintainer instructions
├── CLAUDE.md
├── README.md
└── skills/
└── csc-allas/ # one directory per skill
├── SKILL.md
└── references/
Add a new directory under skills/ with a SKILL.md (YAML frontmatter name +
description, then the body) and optional references/*.md files loaded on
demand. Add a matching relative symbolic link under .agents/skills/; both
plugin manifests discover everything under skills/, so they need no edits for
a new skill. CSC-specific facts should be sourced from the CSC user
guide.