Install

1

From GitHub (recommended)

Requires Node.js 18+.

npm install -g github:daniyal-sh/ipho
ipho --help

From npm

npm install -g @daniyalsh/ipho

Package @daniyalsh/ipho · CLI command ipho

From source

git clone https://github.com/daniyal-sh/ipho.git
cd ipho
npm install
npm link

Download PDFs

2
ipho download all

Or separately:

ipho download handouts       # Kevin Zhou curriculum
ipho download ipho           # IPhO theory 2001+ from phoXiv
ipho download ipho -y 2024   # single year

Check what's on disk: ipho status

Open the study site

3
ipho

Opens http://127.0.0.1:3847. Pick a handout from the sidebar.

  • Handout PDF — problem statements
  • Solution PDF — official solutions
  • Click a problem for status, notes, uploads, Xournal++

New? Start with Syllabus, FAQ, and Prelim in Guides.

IPhO past papers

4

Open IPhO Past Papers in the sidebar. Each year has T1, T2, T3.

Papers from phoXiv. Some older years use a combined theory PDF.

Track your work

5
  • Status: not started → in progress → complete (or for later)
  • Notes saved per problem
  • Drag & drop solution photos

Data stays in ipho-library/data/progress.json — nothing leaves your machine.

Xournal++ (optional)

6
ipho xournal status
ipho xournal path "C:\Program Files\Xournal++\bin\xournalpp.exe"
  • Continue in Xournal++ — reopen your notebook
  • New notebook — blank slate
  • Sync all — export previews from all notebooks

Troubleshooting

Windows: EEXIST ipho already exists — remove old global shim, then reinstall. See README.

npm package not found — install from GitHub with npm install -g github:daniyal-sh/ipho until the latest version is published.

Full command reference: CLI docs