Project64
Project64 is a set of tools, skills, and an MCP to enable agentic Commodore 64 coding and debugging using the VICE emulator.
Install / Use
claude mcp add nschneir -- npx -y github:nschneir/Project64If the server publishes to npm under a different name, use that package instead β check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of Project64
Project64 scores 76/100 on our quality scale, 3703rd of 4,628 Development & Engineering skills we index.
Its MCP Server is 21 KB long, well organised into 14 sections and no code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 2 months ago, so Project64 is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 80/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit β read the skill file before letting an agent act on it.
Project64 compared with similar skills
All 4 of these similar skills score higher than Project64; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| Project64 (this skill)by nschneir | 76 | 3 | 2mo ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 105.0k | 3d ago | CLAUDE.md |
| taste-skillby Leonxlnx | 100 | 103.8k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.1k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 66.9k | today | CLAUDE.md |
Frequently asked questions
- How do I install Project64?
- Run
claude mcp add nschneir -- npx -y github:nschneir/Project64. The install tabs above show the steps for each supported agent. - Which AI agents does Project64 work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is Project64 safe to use?
- It declares no license and scores 80/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is Project64 still maintained?
- The repository was last updated about 2 months ago, so Project64 is actively maintained.
Skill content
View source on GitHubProject64
Project64 is a set of tools, skills, and an MCP to enable agentic Commodore 64 coding and debugging using the VICE emulator.
The Python package is imported as
c64lib, installed asc64-tools, and driven by thec64command-line tool.
Install
Requires Python 3.11+, VICE 3.5+ (provides x64sc and petcat), and
the cc65 suite (ca65/ld65, for assembling 6502 programs). Install this
package into a virtual environment: Debian 12+, Ubuntu 23.04+, and Homebrew
all mark their Python externally-managed (PEP 668), so a bare pip install -e .
fails with error: externally-managed-environment.
macOS (Homebrew):
brew install vice cc65
python3 -m venv .venv
.venv/bin/pip install -e .
Homebrew's VICE bundles the Commodore ROM images, so that is the whole setup.
Debian / Ubuntu:
1. Debian only β enable the contrib component. Ubuntu carries vice in
multiverse, on by default; skip to step 2.
sudo add-apt-repository contrib
If that command is missing, add contrib by hand: to the Components: line
of /etc/apt/sources.list.d/debian.sources (fresh Debian 13 installs), or to
each deb line of /etc/apt/sources.list (Debian 12 and upgraded machines).
2. Install VICE and cc65.
sudo apt update
sudo apt install vice cc65
3. Install the ROMs. The package ships without the Commodore ROM images,
and x64sc will not boot until they are installed:
curl -L -o /tmp/vice.tar.gz https://sourceforge.net/projects/vice-emu/files/releases/vice-3.9.tar.gz/download
tar xf /tmp/vice.tar.gz -C /tmp
mkdir -p ~/.local/share/vice
cp -r /tmp/vice-3.9/data/C64 /tmp/vice-3.9/data/DRIVES ~/.local/share/vice/
rm -rf /tmp/vice.tar.gz /tmp/vice-3.9
C64 is the machine ROMs; DRIVES is the drive DOS ROMs that c64 disk
commands and --disk boots need.
4. Install c64-tools in a venv.
sudo apt install python3-venv
python3 -m venv .venv
.venv/bin/pip install -e .
Ubuntu 22.04 ships Python 3.10, under this project's 3.11 floor β there,
install python3.11 and python3.11-venv and build the venv with
python3.11 -m venv .venv.
Then run the tools as .venv/bin/c64 ..., or activate the environment
(source .venv/bin/activate) and use c64 directly β as the Quickstart does.
Quickstart
source .venv/bin/activate # after the Install section above
c64 session start --model c64 # boot an emulated C64 (NTSC)
c64 run tests/programs/hello-basic/program.bas # tokenize + load + RUN
c64 run tests/programs/hello-asm/program.s # assemble + load + RUN (needs cc65)
c64 screen # read the screen as text
c64 basic type prog.bas --run # type a program via the keyboard
c64 mem read '$0400' 64 # hex dump of screen RAM
c64 break add start # symbolic breakpoint (uses .lbl symbols)
c64 wait --break # block until it fires
c64 step 5 && c64 reg # single-step, inspect (PC annotated)
c64 continue # resume
c64 disk create work.d64 && c64 disk put work.d64 game.prg game
c64 session start --disk work.d64 # boot with the disk attached
c64 disk boot work.d64 # or attach+run mid-session
c64 build game.s --area 'HIGH=$4000:$2000' # link a segment at a fixed address
c64 package game.s -o game.crt # build a bootable cartridge
c64 cart verify game.crt # catch the silent no-boot cases
c64 run game.crt # reboot the session with it mapped
c64 rom info # identify the loaded ROM set
c64 rom disasm CHROUT 16 # annotated live disassembly
c64 session stop
c64 test run mytest.yaml # declarative YAML test (format in docs/cli.md)
c64 test programs # run every example program as a test
Every command takes --json for machine-readable output β the intended
interface for AI agents.
Documentation
| Reference | What's in it |
|---|---|
| docs/cli.md | The complete c64 command reference β one entry per command, every flag, and the *.yaml test and disk-manifest formats. |
| docs/mcp.md | The CLIβMCP map: which tool twins which command. Each MCP tool describes itself, so this page maps rather than repeats. |
| docs/agent-setup.md | The two integration routes, with config for Claude Code, Codex, Cursor, Gemini CLI, Antigravity, and Crush. |
| docs/graphics-and-sprites.md | What demos may use, how sprite and graphic data is authored, and what a test may assert about pixels. |
Domain knowledge β C64 memory maps, KERNAL routines, 6502 idioms, and a
cookbook of working recipes β lives in skills/, written to be
loaded by an agent rather than read start to finish.
Supported machines
Every session boots a Commodore 64 (--model, default c64). The two
profiles differ only in video standard β pick PAL when timing against
50 Hz software:
| Model | RAM | Free at boot | BASIC | Screen | Notes |
|-------|-----|--------------|-------|--------|-------|
| c64 | 64 KB | 38911 bytes | 2.0 | 40Γ25 | The default. NTSC (60 Hz); what the demos use. |
| c64pal | 64 KB | 38911 bytes | 2.0 | 40Γ25 | PAL (50 Hz) β different frame rate and slightly different CPU clock. |
The screen is memory-mapped at $0400 (the power-on default; the VIC-II
can relocate it); "free at boot" is what BASIC reports, and is the budget
a BASIC program (or a SYS-stub assembly program) actually has to fit in.
Using with AI coding agents
This toolset is built to be driven by an AI agent β every c64 command
takes --json, the c64-tools-mcp MCP server exposes the same operations,
and debugging state (a breakpoint halt) persists across the agent's tool
calls. See docs/agent-setup.md for the two
integration routes and step-by-step setup for Claude Code, OpenAI Codex,
Cursor, Gemini CLI, Google Antigravity, and Crush.
Demos β try it with your AI agent
demos/ is a set of ready-to-run prompts in three tiers.
Setup your agent, give it a demo's PROMPT.md, and
watch it write, run, and debug real C64 software on the emulated machine.
Test demos β graded exercises; start at 01 if you're new:
| # | Demo | Language | Description | |---|------|----------|-------------| | 01 | Guess the number | BASIC | A number game played to a win β the writeβrunβverify loop | | 02 | Bouncing ball (sprite) | BASIC | A multicolor sprite bounced off all four borders, proved from the VIC-II registers | | 03 | Sieve benchmark | BASIC + asm | The sieve written twice and timed off the jiffy clock β the asm speedup, then optimized | | 04 | Debug hunt | BASIC + debugger | A dashboard broken in three layers, found with breakpoints and stepping | | 05 | Bach's Invention No. 13 | BASIC | A two-part invention on voices 1 and 2, noise percussion on voice 3 β proved by audio capture, a reference score, and a piano roll |
Game demos β complete builds with sprites, custom charsets, and three-voice SID sound:
| Demo | Language | Description | Screens | |------|----------|-------------|---------| | Snake β βΆ Play | 6502 assembly | Arcade Snake on a custom hires charset β held-key steering read off the keyboard matrix, SID sound, nine speeding-up levels | <img src="demos/snake/evidence/title.png" width="150" alt="Snake title screen: SNAKE in large block letters in five colours, a green snake reaching for a red apple, and PRESS ANY KEY TO PLAY"> <img src="demos/snake/evidence/levelup.png" width="150" alt="Snake at level 2: a light green snake curled inside a light blue double-line border, a red apple ahead of it, SCORE 0050 and LEVEL 2 on the status line"> <img src="demos/snake/evidence/gameover.png" width="150" alt="Snake game over: a panel over the playfield with GAME OVER on a red reverse-video bar, the final score, the high score, and PRESS SPACE TO PLAY AGAIN"> | | Invaders β βΆ Play | 6502 assembly | The 1978 arcade original β sprites and custom charset, the one-invader-per-tick march, 3-voice SID | <img src="demos/invaders/evidence/title.png" width="150" alt="Invaders attract screen: INVADERS in large block letters above a score advance table"> <img src="demos/invaders/evidence/formation.png" width="150" alt="Wave 1 in play: five rows of eleven invaders in cyan, green and red above four green bunkers and the laser base"> <img src="demos/invaders/evidence/ufo.png" width="150" alt="The red mystery saucer crossing the top of the screen while the bunkers show bomb damage"> | | Ms. Muncher β βΆ Play | 6502 assembly | A maze chase β four rotating mazes, per-ghost targeting AI, six sprites, animated cut scenes | <img src="demos/ms-muncher/evidence/title.png" width="150" alt="Ms. Muncher attract screen: MS MUNCHER in large block letters above the four named ghosts and a table of top scores"> <img src="demos/ms-muncher/evidence/chase.png" width="150" alt="Board 1 in play: a blue auto-tiled maze full of yellow dots with four coloured ghosts and Ms. Muncher"> <img src="demos/ms-muncher/evidence/frightened.png" width="150" alt="The same board after an energizer: all four ghosts drawn as blue frightened shapes"> | | La Galaxia β βΆ Play | 6502 assembly | An old school shooter in Spanish with a deliberately off-kilter sound track β a 40-enemy formation in character RAM and raster-IRQ sprite multiplexing | <img src="demos/la-galaxia/evidence/transform.png" width="150" alt="Stage 4: the alien formation in cyan, red and yellow with three transformed enemies diving mid-morph, the player fighter below and the Spanish HUD down both sides"> <img src="demos/la-galaxia/evidence/title.png" width="150" alt="La Galaxia attract screen: the game name in yellow over a starfield, framed by a bezel with the Spanish HUD down both sides"> <img src="demos/la-galaxia/evidence/formation.png" width="150" alt="The settled formation: five rows of alien blocks in cyan, red and yellow above the player fighter"> |
Miscellaneous cool stuff:
| Demo | Language | Description | Screens | |------|----------|-------------|---------| | 1812 β βΆ Play | 6502 assembly | Shapes painted to Tchaikovsky's 1812 Overture β bitmap mode, a rotating polygon rasterizer, 3-voice SID | <img src="demos/1812/evidence/sec1.png" width="150" alt="The 1812 canvas at the end of the Marseillaise: large blue and red polygons over dithered blue, red and white fills"> <img src="demos/1812/evidence/cannon.png" width="150" alt="A cannon shot in the 1812 canvas: the border flashed white around a bitmap of red, orange, yellow and blue dithered shapes"> <img src="demos/1812/evidence/final.png" width="150" alt="The finished 1812 canvas: blue, yellow, brown and white shapes layered over the whole bitmap, a blue star among them"> | | Fugue No. 2 in C Minor β βΆ Play |
Truncated for display β read the full file on GitHub.
Related Skills
Agent-Reach
105.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu β one CLI, zero API fees.
taste-skill
103.8kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
headroom
78.1kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
66.9kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit β see the Safety scan above for what the skill file itself contains.
