Claude Code

AI Coding Agents for (Finance) Researchers
60-minute hands-on workshop  ·  No programming experience required

Navigate with for next topic  ·  for detail on any topic
Press O (letter O, not zero) to browse all slides at once
Before the Workshop

Setup — Pick Your Track

A  ·  Cloud Only

Browser + free account. No local install. Safe — nothing runs on your machine.

  • 0 min setup
  • Works for Demo 5 live
  • All other demos: watch + try at home

B  ·  Desktop App + GitHub

Install Claude Desktop. Connect GitHub MCP. Can also read and write local files via MCP — no terminal required.

  • ~10 min setup
  • Works for Demos 1–3 live (with MCP)
  • No /skill shortcuts

C  ·  Full CLI

Node.js + Claude Code. Default mode always asks before touching any file. Required for /skill invocations and local code execution.

  • ~15 min setup
  • All 7 demos live
  • Required for /skill shortcuts
👇 Scroll for step-by-step instructions on each track. Come back with when you're ready.

Track A — Cloud Only (No Install)

Step 1 — Create a free Anthropic account

# Open in your browser:
https://claude.ai

Step 2 — Create a Project

Click Projects → New Project. Give it a name (e.g. Workshop). Upload any PDF or text file as context.

Step 3 — You're ready

Follow Demo 5 live (academic homepage from CV). For the /skill demos, watch along — you can run them yourself with Track B later.

🔒 Nothing runs on your machine. Claude.ai is a web interface — no files are created or modified locally. The Pro plan ($20/mo) gives longer conversations and priority access; the free plan is fine for today.

Track B — Claude Desktop App + GitHub

Step 1 — Install Claude Desktop

Download from claude.ai/download. Sign in with your Anthropic account.

Step 2 — Connect GitHub MCP

In Claude Desktop: Settings → Extensions → GitHub → Authorize. This lets Claude read and push to your repositories.

Step 3 (optional) — Add local file access

Add a filesystem MCP server to give Claude access to a specific folder on your machine — without using the terminal.

💡 Works locally too. MCP servers let the Desktop App read and modify files in a folder you specify. The underlying task prompts from the demos work here — only the /skill-name shortcuts require the CLI.

Track C — Full CLI (~15 min)

Step 1 — Install Node.js 18+  (node --version to check; if missing: Mac brew install node · Windows winget install OpenJS.NodeJS · Linux nvm install --lts)

Step 2 — Install Claude Code & authenticate

npm install -g @anthropic-ai/claude-code
claude            # Opens browser → sign in with your Anthropic account
claude --version  # Verify install

Optional — also install Codex or Gemini CLI to compare

npm install -g @openai/codex          # OpenAI Codex CLI
npm install -g @google/gemini-cli    # Google Gemini CLI
⚠️ Set a spending cap before your first session. Go to console.anthropic.com → Settings → Billing and set a monthly limit (e.g. $10). Default mode always asks before touching files — nothing runs without your approval.

Data Retention & Privacy

InterfaceUsed to train AI?Notes
Claude.ai Free / ProPotentially yesConsumer product; Anthropic may use conversations
Claude API (key)NoAPI terms explicitly exclude training use
Claude for Work / TeamsNoEnterprise DPA available on request
ChatGPT (consumer)Potentially yesCan opt out in Settings → Data Controls
OpenAI APINoAPI terms explicitly exclude training use
🧠 Consumer interfaces (claude.ai, ChatGPT) may use conversations to improve the model. Before uploading any data, know what you're sharing. When in doubt, use the API — your conversations are not used for training.
Section 1

Execution & Supervision

  • Research execution — Python, R, factor models, data cleaning, regressions, replication packages
  • Production tasks — Beamer slides, TikZ diagrams, LaTeX tables, CV updates, academic homepage
  • Teaching & communication — lecture slides, referee reports, meeting summaries, course materials
💡 You direct and supervise. Claude executes and iterates. Your judgment stays in the loop — Claude removes the friction between idea and artifact.
↓ before & after numbers

Before vs. Now

⏱ Before
Merge ESG rating changes (MSCI / Refinitiv) with European returns + analyst coverage from WRDS: 4 hours of identifier matching
Compute Fama-French 5-factor alphas for a European portfolio, produce a LaTeX table: 3 hours
Write a structured referee report for JF / JFE / RFS: 1–2 days
Summarize a 90-min PhD supervision session into action items: never done consistently
Add a new working paper to your homepage + update CV in LaTeX: 30–45 minutes of copy-paste
⚡ Now
Describe the merge logic: 12 minutes
Describe the paper's method: 6 minutes, compilable LaTeX output
Upload the PDF, run /referee-2: 20 minutes — you judge, Claude scaffolds
Run /transcribe-meeting: 3 minutes — decisions, action items, next agenda
Paste the abstract + SSRN link: 90 seconds, both files updated in sync
Section 2

Three Eras of AI

2022–23
Text Era
ChatGPT. It explains. You copy, paste, debug yourself.
2024
Completion Era
Copilot, Cursor. Autocomplete inside your editor.
2025+ ← we are here
Agent Era
Describe a goal. The agent plans, writes, runs, reads errors, and iterates.
  • The 2024→2025 jump isn't incremental — the agent acts.
  • Reads your files, runs code, checks output, fixes errors. In a loop. Unattended.
↓ AI ladder & tool comparison

The AI Ladder — Where Are You?

0
Copy-paste from ChatGPT
Read a response in the browser, manually copy code or text into your work.
1
Chat in Claude.ai or ChatGPT
Conversational Q&A, iterating in the browser. No file access, no code execution.
2
Single CLI skills — this workshop
Claude Code runs a single goal: reads your files, executes code, saves output. You review.
3
Multi-step agents
Chain of tasks: pull WRDS data → clean → run regressions → write results → commit to Git. One instruction.
4
Multi-agent orchestration
Parallel specialists: one fetches Compustat, another reviews the code, a third drafts the paper section.
5
Autonomous pipelines
Scheduled, unattended agents: nightly ESG data pulls, automatic robustness checks, draft updates on new releases.
📍 Most researchers gain the most productivity at Level 2–3. Levels 4–5 require DevOps infrastructure — worth it for systematic literature reviews or ongoing data production.

Three CLI Tools at a Glance

Claude Code (Anthropic)Codex CLI (OpenAI)Gemini CLI (Google)
ModelsHaiku 4.5 / Sonnet 4.6 / Opus 4.7o4-mini / o3Gemini 2.5 Flash / Gemini 3 / 3.1 Pro
Context window200K tokens128K tokens1M tokens
Runs locallyYes — reads & writes your filesYes — CLI + cloud exec for parallel tasksYes — CLI on your machine
Memory fileCLAUDE.mdAGENTS.mdGEMINI.md
PlansPro $20 / Max $100 / Max $200 (20×)Free / Plus $20 / Pro $100–200Free / AI Pro $20 / AI Ultra $250
Best forLong files, local data, research pipelinesRapid async code generationLargest context, multimodal (PDFs, audio)
🛡 All three CLIs share the same install pattern: npm install -g <package>, authenticate via browser, run from your project folder. The /skill-name shortcuts in the demos are Claude Code-specific.
Section 3

Six Things to Know

A
Tools & Agents
What is an agent, exactly?
B
CLAUDE.md
Giving the agent memory
C
Plan Mode
Preview steps before executing
D
Models & Effort
Pick the right model for the task
E
Context Windows
How much the agent can "see"
F
Plan Limits
Your subscription quota, not tokens
↓ scroll through each concept

A · Tools & Agents

  • Claude Code has tools: read file, write file, run shell command, search web.
  • An agent = model + tools + loop. It calls tools, reads results, decides the next step — without you driving each step.
You
Agent
read_file
Agent
run_code
Agent
Result

Under the hood — the ReAct loop (Reason + Act):

Think
Act
Observe
Respond
↺ loop
  • Three interfaces, one model. The CLI and Desktop App (via MCP) can read and run code in your local files. The web interface works in Claude's own sandboxed environment.
  • Skills are shareable instruction sets invoked with a slash: /review, /init. Use /resume to continue a previous session. Anyone can author a skill.

B · CLAUDE.md — Giving the Agent Memory

CLAUDE.md → Claude Code
Created with claude init. Place in project root. Claude reads it automatically at the start of every session.
AGENTS.md → OpenAI Agents / Codex
Same concept, different filename. Used by OpenAI's agent-based tools. The approach is identical — put your project context here.
# My Research Project

## Data
- Source: WRDS / Compustat annual, 1990–2023
- Key file: data/compustat_clean.csv

## Conventions
- Python only · Save all tables to results/ · Always print N before/after filters
💡 Think of CLAUDE.md as the methods section of your paper, written for an AI. If you'd explain it to a new PhD student, put it here.

C · Permission & Plan Modes

ModeHow to activateWhat happens
Default (safe) claude Claude asks before every file write, shell command, network call.
Plan first CLI: claude --plan "..."
Web/Desktop: toggle Plan mode in UI
Proposes full plan, waits for approval before executing anything.
Auto-approve claude --dangerously-skip-permissions All permissions pre-approved. Zero interruptions. Only in sandboxed repos.
💡 --plan is a CLI startup flag — start a fresh session in plan mode. Inside a running session, just ask Claude to "show me what you would do first". In the web and Desktop apps, click the Plan-mode toggle in the input bar.
⚠️ --dangerously-skip-permissions lets Claude write any file and run any command. Use only in a Docker devcontainer or a fresh git worktree on a clean branch. Never on a bare host with your home directory in scope.

D · Models & Effort

ModelSpeedCostBest for
Claude Haiku 4.5FastCheapBulk formatting, quick lookups
Claude Sonnet 4.6BalancedMidMost research tasks — workshop default
Claude Opus 4.7SlowHighComplex, ambiguous problems
o3 (Codex)SlowHighComplex reasoning tasks (Codex default)
o4-mini (Codex)Very fastLowRapid iteration, agentic coding, high usage limits
🧠 Extended thinking: Claude Opus can reason harder before answering. For a standard regression: unnecessary. For a novel identification strategy: worth the cost.

E · Context Windows

  • The context window is how much the model holds in memory at once — like RAM, not storage.
  • Claude Sonnet 4.6: 200K tokens ≈ a full PhD dissertation in one session.
  • Each conversation starts fresh. Use CLAUDE.md to carry over project knowledge.
  • Run /compact to summarise prior context and continue, or /clear to reset fully — useful when the window fills mid-task.
⚠️ Hit "context length exceeded"? Break the task into smaller steps or run /clear and summarise prior results into CLAUDE.md. Claude Pro triggers a cooldown after heavy use (up to 5 hours).
📊 See usage in real time. The CLI status bar can show context %, rate-limit cooldown, and session tokens. Run /statusline-setup in Claude Code CLI to configure it.

F · Plan Limits & Usage Quotas

Claude Free
Free
Limited messages per day. Haiku model only. Good for exploring.
Claude Pro ★ workshop default
~$20/month
Sonnet + Opus access. Heavy use triggers cooldown (up to 5h).
Claude Max (5×)
~$100/month
5× the Pro quota. For long coding sessions and automated pipelines.
Claude Max (20×)
~$200/month
20× the Pro quota. Overnight pipelines, large replication packages, unattended agents. Equivalent to ChatGPT Pro ($200).
API (pay-per-use)
Per token, no message caps
Best for running scripts overnight. Set a spending limit first.
📊 Check your live usage at claude.ai/settings/usage.  ·  API users: set a monthly spending cap in the Anthropic Console before your first session — $5–10 covers this workshop.
Section 4

Skills: Standing on Others' Shoulders

  • A skill is a markdown file with structured instructions — shareable, version-controlled, community-built.
  • Scott Cunningham (Causal Inference: The Mixtape) built a full economist toolkit: mixtapetools
  • Pull any skill into your project. Invoke with /skill-name.
🎨 Skills in mixtapetools: beautiful-deck (Beamer slides from your results), referee-2 (structured 5-part code audit), blindspot (surfaces overlooked problems in your analysis).
⚠️ Security note: A skill is a markdown file containing instructions that Claude executes with full access to your machine. Only pull skills from sources you trust. A crafted skill file can read sensitive data or run arbitrary commands — treat it like executable code, not just text.
↓ how to pull and invoke

Pulling a Skill from mixtapetools

# 1 · Create the skills directory in your project
mkdir -p .claude/skills

# 2 · Pull the beautiful-deck skill from Scott Cunningham's repo
curl -o .claude/skills/beautiful-deck.md \
  https://raw.githubusercontent.com/scunning1975/mixtapetools/main/skills/beautiful-deck.md

# 3 · Start Claude Code and invoke it
claude
> /beautiful-deck
✓ The agent reads the skill instructions, inspects your results folder, and generates a Beamer (LaTeX) presentation — slides ready to compile with pdflatex. A skill is just a markdown file with structured prompts anyone can author and share.
🔗 Browse all skills: github.com/scunning1975/mixtapetools — and write your own for your team's recurring tasks (e.g., /wrds-pull, /robustness-check).
Section 5

Live Demos

RESEARCH

  • Demo 1 — Write a referee report with /referee-2 + references check
  • Demo 2 — Plan an R&R response with /strategic-revision
  • Demo 3 — Generate a conference slide deck with /beautiful-deck
  • Demo 4 — Replicate Stata analysis in Python & R

TEACHING & ADMIN

  • Demo 5 — Build your academic homepage from CV
  • Demo 6 — Transcribe a student meeting with /transcribe-meeting
  • Demo 7 — Build interactive teaching tools
🛠 Skills used: referee-2, beautiful-deck (from mixtapetools); strategic-revision (from jusi-aalto); transcribe-meeting (from tchew86).
↓ commands for each demo

1 Referee Report with /referee-2

Step 1 — pull the skill once:

git clone https://github.com/scunning1975/mixtapetools \
  .claude/skills/mixtapetools

Step 2 — run against the paper:

claude "I need to review this paper: paper.pdf
/referee-2
After the structured report, also scan the bibliography:
flag any references where the year or journal name looks incorrect,
and list any key papers in this literature that are missing."
Claude produces a 5-part structured report (contribution, methodology, data, results, recommendation) plus a reference audit — what used to take a morning now takes 20 minutes. You judge; Claude scaffolds the structure.
🔗 See also coarse.ink — a dedicated web tool for AI-assisted peer review.

2 Plan Your R&R Response with /strategic-revision

Step 1 — pull the skill once:

git clone https://github.com/jusi-aalto/strategic-revision \
  .claude/skills/strategic-revision

Step 2 — feed it the reviewer reports + your manuscript:

claude "Manuscript: paper.pdf
Reviews: editor-and-reviewer-comments.pdf
/strategic-revision
Output the revision plan to output/."
Six phases: every reviewer comment → an atomic task with verbatim quote → classified (empirical / argumentative / structural) → dependency DAG → NetworkX validates acyclicity → parallelizable batches A–E with reviewer-conflict flags. The output is a checklist you can hand to a co-author.

3 Slide Deck from Paper with /beautiful-deck

Step 1 — pull the skill once:

curl -o .claude/skills/beautiful-deck.md \
  https://raw.githubusercontent.com/scunning1975/mixtapetools/main/skills/beautiful-deck.md

Step 2 — generate the conference presentation:

claude "Here is my working paper: paper.pdf
/beautiful-deck
Target audience: finance conference (EFA / AFA style).
12 slides maximum. Include motivation, data, key table, main figure, conclusion."
Claude reads the paper, structures 12 Beamer slides with logical narrative flow, and writes compilable LaTeX — a .tex file ready for pdflatex. Replace copy-pasting from the paper with a single command.

4 Replicate Stata Analysis in Python & R

Give Claude your Stata code and let it handle the translation:

claude "I have Stata code in analysis.do running factor regressions.
Replicate the full analysis in Python (pandas + statsmodels) and R (tidyverse + fixest):
  (1) Match sample selection and variable construction exactly
  (2) Reproduce all tables — same column order, same significance stars
  (3) Flag any Stata-specific syntax that required a workaround
Then run /beautiful-deck to turn the comparison into presentation slides."
Three-language replication in one session. Claude traces Stata syntax to Python/R equivalents, flags divergences, and hands off to /beautiful-deck for the final slides — useful for journal replication requirements and teaching cross-language workflows.

5 Build Your Academic Homepage from CV

claude "Create a clean academic homepage from cv.pdf.
Sections: About, Research (working papers + publications), Teaching, Contact.
Minimal HTML, no frameworks. Output: index.html"
Claude reads your CV PDF, extracts structured data, and writes a deployable index.html. 90 seconds vs 30–45 minutes of copy-paste.

6 Transcribe a Meeting & Produce a Structured Summary

git clone https://github.com/tchew86/transcribe-meeting \
  .claude/skills/transcribe-meeting
claude
> /transcribe-meeting meeting.m4a

The skill produces a structured summary with:

  • Key decisions made — numbered list
  • Action items: who is responsible, what, by when
  • Open questions that still need resolving
  • Suggested agenda items for the next meeting
🔒 Fully local — no cloud. Whisper transcribes the audio, Ollama (local LLM) writes the summary. Your recording never leaves the machine.

7 Build Interactive Teaching Tools

Single-prompt build — no prior coding knowledge needed:

claude "Build a student mock-exam interface for a financial markets course.
Use Google Apps Script + Google Sheets as the database. Features:
  - One question at a time, multiple choice, 90-second timer
  - Running score + instant feedback after each answer
  - All submissions logged to a Sheet; admin view shows live results
Deploy as a Google Apps Script Web App."
Claude writes the Apps Script + HTML, wires it to a Google Sheet, and gives you a deployable web app URL. Same approach powers student trading competitions and text-analysis games — no server to manage, submissions stored automatically.
🔗 Live examples: mock exam (admin pw: mads)  ·  trading competition  ·  text-as-data game
Section 6

Your Turn

A · Analyse data
I have [YOUR_FILE.csv]…
I want to know [question].
Please: describe, test,
visualise, interpret.
B · Automate a task
I have [N] files in a folder…
Write a script that
[combines / extracts]
and saves to output.csv.
C · Build to show
Create a webpage for
[topic] using data from
[source]. Suitable for
students or a conference.
↓ full templates, troubleshooting & takeaways

Starter Prompt Templates

I have a dataset called [YOUR_FILE.csv] with columns [describe].
I want to know [research question].
Please:
  (1) describe the data: rows, columns, missing values
  (2) run an appropriate statistical test
  (3) visualise the key result as a chart
  (4) write a 3-sentence interpretation suitable for a paper
I have [N] Excel/CSV files in a folder, each containing [describe structure].
Write a script that [combines / extracts / calculates / formats] them
and saves the result to output.csv.

Troubleshooting

What you seeWhat to do
"Not reading my file"Check directory: run pwd and compare to where the file lives
"Installed unexpected packages"Normal — Claude manages dependencies. Review with pip list
"Running in a loop"Press Ctrl+C to interrupt · Use --plan next time
"Context length exceeded"Break into steps · Summarise prior work into CLAUDE.md
"Rate limited / cooldown"Wait up to 5h, or switch to API access with a token budget

Take-Home Checklist

  • Create CLAUDE.md in every research project — run claude init
  • Use --plan before any operation that touches shared files
  • Ask Claude to explain its own code: "Walk me through what that script does"
  • Use Claude.ai Projects for cross-session memory when working in the browser
  • Set a monthly spending cap in the Anthropic Console before using an API key

Start building.

These slides live at uufinance.github.io/agents
All commands and templates are one away on any section slide.
Press O to browse the full deck.
Finance @ Utrecht University
Inspired by & built on the work of:
Scott Cunningham — github.com/scunning1975/mixtapetools
Mihail Velikov — github.com/velikov-mihail/edhec-master-class
Jukka Sihvonen — github.com/jusi-aalto/strategic-revision