Claude Code is the AI engine that reads your CLAUDE.md, runs skills, and executes hooks. You can access it in several ways:
| Interface | Best for | Install |
|---|---|---|
| Terminal CLI | Power users, full control, scripting | See install table below |
| VS Code extension | Integrated coding + chat in one window | Install from VS Code marketplace |
| JetBrains extension | IntelliJ, PyCharm, WebStorm users | Install from JetBrains marketplace |
| Web app | Quick access from any browser, no install | Visit claude.ai/code |
| Desktop app | GUI chat (Mac/Windows) | Download from claude.ai |
All interfaces share the same skills, agents, hooks, and rules once you run the setup script. The terminal CLI is the most full-featured and what this guide focuses on, but you can use whichever interface suits your workflow.
You need an Anthropic account with a Claude subscription (Max plan recommended for heavy research use).
Install a package manager first — it makes installing everything else easy:
| Platform | Package manager | Install command |
|---|---|---|
| macOS | Homebrew | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
| Ubuntu / Debian | apt | Already included |
| Fedora / RHEL | dnf | Already included |
| Arch | pacman | Already included |
| Windows | WinGet | Built into Windows 11. On Windows 10, install App Installer from the Microsoft Store. |
Python is required for several hooks (context monitor, compact save/restore) and the bibliography MCP server.
| Platform | Install command | Verify |
|---|---|---|
| macOS | brew install python@3.12 |
python3 --version |
| Ubuntu 24.04+ | sudo apt install python3.12 python3.12-venv |
python3 --version |
| Ubuntu 22.04 / Debian 11 | See note below | python3 --version |
| Fedora 39+ | sudo dnf install python3.12 |
python3 --version |
| Arch | sudo pacman -S python (ships 3.12+) |
python3 --version |
| Windows | winget install Python.Python.3.12 |
python --version |
Why Python 3.11+? The hooks and MCP servers use modern Python features (
tomllib,matchstatements, type hints) that require 3.11 or later. Python 3.12 is recommended as the current stable release.
Ubuntu 22.04 / Debian 11: These ship Python 3.10, which is too old. Add the deadsnakes PPA first:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.12 python3.12-venv
Windows note: The Windows Python installer adds
python(notpython3) to your PATH. The hooks insettings.jsonreferencepython3— you may need to adjust these topythonon Windows, or create an alias. See the Windows Setup section below.
| Platform | Install command | Verify |
|---|---|---|
| macOS | brew install uv |
uv --version |
| Linux | curl -LsSf https://astral.sh/uv/install.sh | sh |
uv --version |
| Windows | winget install astral-sh.uv |
uv --version |
Why uv instead of pip? uv is a fast Python package manager that handles virtual environments automatically. When Claude runs Python code or installs dependencies, it uses
uv run pythonanduv pip installinstead of barepythonorpip. This prevents conflicts between projects (each gets its own isolated environment) and avoids polluting your system Python. Thesettings.jsonincluded with this repo enforces this by blocking barepythonandpipcommands.
| Tool | What it's for | macOS | Ubuntu/Debian | Fedora | Arch | Windows |
|---|---|---|---|---|---|---|
| Claude Code CLI | The engine | curl -fsSL https://claude.ai/install.sh | bash |
same | same | same | winget install Anthropic.ClaudeCode |
| Git | Version control | Included | sudo apt install git |
sudo dnf install git |
sudo pacman -S git |
winget install Git.Git |
| TeX Live | LaTeX compilation | brew install --cask mactex |
sudo apt install texlive-full |
sudo dnf install texlive-scheme-full |
sudo pacman -S texlive |
install guide |
Optional but recommended:
- VS Code with the LaTeX Workshop extension — handles both code and LaTeX in one window
- Obsidian — for browsing and editing the Research Vault
TeX Live on Windows: The TeX Live install guide walks you through the installer. Alternatively, install MiKTeX which auto-installs missing packages on first use. Either works — just make sure
latexmkis available in your terminal after installation.
TeX Live on Arch: The
texlivegroup installs a minimal set. For full coverage (recommended), usesudo pacman -S texlive-most texlive-lang.
If you have Node.js 18+ installed:
npx flonat-researchThis downloads the package, runs the setup script, and symlinks skills, agents, hooks, and rules into ~/.claude/. Good for trying it out quickly.
Note: The npm install places files inside
node_modules/. For full customisation (editing context files, adding your own skills), use the git clone method below.
git clone https://github.com/flonat/claude-research.git
cd claude-research
./scripts/setup.shOpen PowerShell (not Command Prompt) and run:
git clone https://github.com/flonat/claude-research.git
cd claude-research
.\scripts\setup.ps1If you get an execution policy error: Run
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedfirst, then retry. This allows PowerShell to run local scripts.
The setup script creates links in ~/.claude/ so Claude Code can find your skills, agents, hooks, and rules from any project directory.
- Creates
~/.claude/if it doesn't exist - Links
skills/,agents/,rules/, andhooks/into~/.claude/ - Copies
settings.json(first install only — preserved on updates) - Checks that Python, uv, Git, and LaTeX are installed
- Creates
log/directories for session continuity
# macOS/Linux: pull latest, then re-link without overwriting settings
git pull && ./scripts/setup.sh --update
# Windows (PowerShell):
git pull; .\scripts\setup.ps1 -UpdateLinux is the most straightforward platform — hooks run natively and paths work out of the box. A few things to check:
After cloning, make sure hook scripts are executable:
chmod +x hooks/*.sh hooks/*.pyThe setup script handles this, but if you copy files manually or reset permissions, hooks will silently fail without +x.
Many distros ship an older Python as the system default. Check with python3 --version. If it's below 3.11, install a newer version alongside it (the deadsnakes PPA on Ubuntu, or your distro's package for Python 3.12). The system Python is untouched — uv manages its own environments.
On Linux, ~ resolves to /home/youruser/. Claude Code looks for ~/.claude/ there. If you use a non-standard $HOME, verify the symlinks point correctly after setup.
Windows works well with Claude Code but needs a few adjustments:
The .sh hook scripts require a Unix-like shell. Two options:
-
Git Bash (recommended): Installed automatically with Git for Windows. Claude Code can use Git Bash to run
.shscripts. Make sure Git Bash is in your PATH (the Git installer does this by default). -
WSL (Windows Subsystem for Linux): If you prefer a full Linux environment, install WSL with
wsl --install. You can then run the Linux setup inside WSL.
Windows installs Python as python (not python3). The hook configuration in settings.json uses python3. You have two options:
Option A — Create a python3 alias (recommended):
# Find where python.exe is
where python
# Create a copy named python3.exe in the same directory
Copy-Item (Get-Command python).Source ((Get-Command python).Source -replace 'python\.exe','python3.exe')Option B — Edit settings.json to replace python3 with python:
Open ~/.claude/settings.json and replace every occurrence of "python3 " with "python " in the hooks section.
Claude Code handles path separators automatically. You don't need to change / to \ in any configuration files.
Edit these files with your own details:
.context/profile.md— Your name, institution, research areas, supervisors.context/current-focus.md— What you're working on right now.context/projects/_index.md— Your active research projectsCLAUDE.md— Conventions and tool preferences
Edit .claude/settings.json to adjust:
- Allowed/denied commands
- Hook configuration
- Model preferences
cd ~/your-research-project
claudeClaude will automatically load your context, skills, and rules. Try:
- "Plan my day" — Daily planning with task queries
- "Extract actions from my meeting" — Turn transcripts into tasks
/proofread— Academic proofreading for a LaTeX paper/latex-autofix— Compile LaTeX with automatic error fixing/bib-validate— Check citation keys against your.bibfile/literature— Search for academic papers and manage bibliography/session-recap— End-of-session checklist (update focus, log, sync)/code-review— 11-category quality review for R/Python scripts
- Create a directory for your project
- Add a
CLAUDE.mdin the project with project-specific instructions - Symlink
paper/to your Overleaf directory (if applicable) - Add the project to
.context/projects/_index.md - Create a paper file in
.context/projects/papers/
Create a new directory in skills/ with a SKILL.md file:
skills/my-custom-skill/
└── SKILL.md
The SKILL.md needs YAML frontmatter with name, description, and optionally allowed-tools. See any existing skill for the format.
uv isn't installed or isn't in your PATH. Install it using the commands in the uv section above, then restart your terminal.
Windows uses python instead of python3. See the Python command name section above.
- Check that
~/.claude/settings.jsonexists and contains the"hooks"section - Verify the hook files are executable:
ls -la ~/.claude/hooks/(macOS/Linux) or check they exist in%USERPROFILE%\.claude\hooks\(Windows) - On Windows, ensure Git Bash is in your PATH for
.shhooks
Install a TeX distribution — see the Other tools section. After installing, restart your terminal so latexmk is in your PATH.
Run Set-ExecutionPolicy -Scope CurrentUser RemoteSigned in PowerShell, then retry the setup script.