What Is Claude Code?
An AI assistant that lives in your terminal
The Short Version
Claude Code is a command-line tool made by Anthropic. You type natural language instructions in your terminal, and it reads your files, writes code, runs commands, and edits documents — all while explaining what it is doing and asking permission before making changes.
Think of it as having a knowledgeable research assistant sitting beside you at the computer, one who can actually touch the keyboard.
How It Differs from a Chatbot
You have probably used an AI chatbot through a web browser — you paste text in, get text back, copy it somewhere else. Claude Code changes that workflow:
- It sees your files. You do not need to paste your data into a chat window. Claude Code reads files directly from your project folder.
- It writes files. Instead of copying output from a browser, Claude Code creates and edits files on your computer.
- It runs commands. It can execute scripts, install packages, and run programs — with your permission.
- It maintains context within a session. You can build on previous questions and it remembers files it has read. Very long sessions may lose earlier context as the conversation is automatically compressed, but for typical working sessions this is not an issue.
- You control what it knows. Claude Code reads a project instruction file (
CLAUDE.md) at the start of every session, and can be extended with skills — curated markdown files that give it deep knowledge of a specific domain. This is how we turn a general-purpose assistant into an expert on CIDOC-CRM, the LINCS application profile, and RDF. You decide what it needs to know, rather than hoping it remembers from a previous conversation.
What It Looks Like
When you launch Claude Code, you see a terminal prompt. You type in plain English:
Read the file settlements.csv and tell me what columns it has
Claude Code reads the file, reports back, and waits for your next instruction. You might then say:
Convert this data to CIDOC-CRM using the LINCS application profile.
Model each settlement as an E53_Place with an E48_Place_Name.
It writes a Turtle file, shows you the output, and asks if you want to save it. The whole interaction is conversational, but the results are real files on your disk.
Key Concepts
Permissions
Claude Code asks before taking actions — writing files, running commands, installing packages. You see what it plans to do and can approve or deny each action. This is a genuine safeguard, but it is not foolproof. If you approve a command without reading it carefully, or if you allow a broad category of actions for a session, Claude Code can do things you did not intend. In our own work, we once had Claude Code delete a database. We now have rules in place that prevent it from running destructive commands like rm.
The lesson: read what Claude Code is asking to do before you approve it, especially for commands you do not recognize. And keep your work in version control. If your project is in a git repository and you commit regularly, you can always recover from a mistake. Git and backups are your real safety net — the permission system is a first line of defence, not the last one.
Sessions
A session is a single conversation with Claude Code. It starts when you type claude in your terminal and ends when you type /exit or close the window. Within a session, Claude Code maintains context — it remembers files it has read and instructions you have given. Very long sessions are automatically compressed to fit within the model’s context window, which means early details can be lost. For most working sessions this is not a problem.
The CLAUDE.md File
Every project can have a CLAUDE.md file in its root directory. This is a set of standing instructions that Claude Code reads at the start of every session. Unlike conversation context, which is temporary, a CLAUDE.md file is permanent and deterministic — you write it, you can read and edit it, and you know exactly what Claude Code starts with every time.
This is important for domain-specific work. If you need Claude Code to follow particular conventions (how to format URIs, which ontology version to use, what anti-patterns to avoid), put those instructions in CLAUDE.md rather than hoping it remembers them from a previous conversation. Claude Code also has an automatic memory feature that tries to retain important details between sessions, but a CLAUDE.md file gives you explicit control.
For academic work, one rule worth putting in every CLAUDE.md is “always save Python (or R, or shell) scripts to a file before running them, never inline.” Without this, Claude Code will sometimes execute analyses through python -c "..." or piped heredocs to keep the project tidy — which leaves no trace of how a result was produced. In research that needs to be reproducible, citable, and reviewable, that trace is not optional. The first session walks you through writing exactly this kind of CLAUDE.md.
Skills (Slash Commands)
Skills are curated markdown files that give Claude Code deep knowledge of a specific domain. When you load a skill with a slash command like /cidoc-crm or /lincs-profile, Claude Code gains detailed reference material — ontology classes, properties, modeling patterns, validation rules — and uses it to inform its responses.
Skills are essentially the same idea as CLAUDE.md, but modular and on-demand. You load the ones you need for a particular task. The lincs_skills repository we will use in this workshop is a collection of seven skills built from the CIDOC-CRM specification, LINCS application profile documentation, and analysis of existing LINCS datasets. Instead of needing to remember class hierarchies yourself, you let the skill handle that.