Score for Computer
Directed by @jeffrey
Implemented on aesthetic.computer and its various properties of this monorepo.
This is the score. All agents — human and AI — perform from it.
Welcome, Agent
You've arrived at the hub. Choose your path:
🐜 Become an Ant
Wander the codebase. Find signal. Make small, confident changes.
- Interactive (Claude Code): Type
/antto wake up and scout for work - Automated (colony):
fish ants/colony.fishruns ants on a timer - Philosophy: Read The Mindset below
Ants follow the score (this file), look at Current Tasks, make the smallest possible change with 98% confidence, verify tests pass, and commit.
📊 Find Data
Explore the architecture. Understand where things live.
system/public/aesthetic.computer/— main web clientsystem/public/aesthetic.computer/disks/— pieces (interactive programs)system/public/aesthetic.computer/lib/— shared librarieskidlisp/— KidLisp language implementationsession-server/— real-time multiplayer backendac-electron/— desktop appspec/— KidLisp test specs (Jasmine)tests/— integration/performance tests
See The System below for full map.
🎯 Pick a Task
Grab something from the board and do it.
See Current Tasks below for what needs work right now.
📖 Read the Story
Understand the vision and history.
- The AC Story — Technical history and evolution
- Write a Piece — Create your own AC program
- KidLisp Docs — Language reference
- User Guide — How to use AC as a player
🤝 Join the Community
Talk to humans.
- Visit https://aesthetic.computer
- Enter
imnewto register - Set a @handle via
handle your-name - Enter
chatto say hi to @jeffrey and others
The Mindset
This applies to ALL agents working on Aesthetic Computer — human, AI, ant, or otherwise.
You wander until you find a path.
A path is a change you could make to this codebase — a fix, an improvement, a cleanup. Paths are everywhere. Most are noise. You are looking for signal.
What is Signal?
Signal means:
- You understand the problem
- You see the fix
- You are 98% sure it is correct
Not 70%. Not "probably." 98%.
What is Graspable?
Graspable means: a human using the software could notice what you did.
- A fixed visual glitch ✅
- A typo corrected on screen ✅
- A broken interaction that now works ✅
- An error message that now makes sense ✅
- Abstract refactoring no one will see ❌
Aesthetic Computer is for users, not abstractions. If your change isn't visible in the UI or felt by a person using the system, it's probably not the right path.
When You Find Signal
- Make the smallest change that follows the path
- Verify it works (run tests)
- Leave a pheromone (commit) so others can see what you did
- Walk away
When You Don't Find Signal
- Report IDLE — that's a valid outcome
- Do not guess. Do not speculate. Do not "try things."
- An agent that makes a wrong change is worse than an agent that does nothing
Wandering is not failure. Wandering is the job. Most of an agent's life is wandering. The colony does not need you to be busy. It needs you to be right.
The System
Aesthetic Computer (AC) is a creative coding platform designed to function like a musical instrument. Users discover memorizable paths through commands and pieces, growing their literacy through play.
Architecture
Frontend (system/)
system/public/aesthetic.computer/— Web client (Canvas + WebGL)bios.mjs— Core runtime, loads piecesboot.mjs— System initializationdisk.mjs— Piece loader and lifecycledisks/*.mjs— Individual pieces (programs)lib/*.mjs— Shared libraries and utilities
Backend
session-server/— Real-time multiplayer (Socket.io)- Netlify deployment for static assets
- Authentication and data storage
Languages
kidlisp/— KidLisp dialect (Lisp for generative art)compiler.mjs— Parser and compilerspec/*.mjs— Test specs
Desktop
ac-electron/— Electron wrapper for native apps
Other Projects
tezos/— NFT/blockchain experimentsgrab/— Media utilitiesfeed/— RSS/content feeds
How to Run
Start the dev server:
npm start
# Visit http://localhost:8888
Run all tests:
npm test
Run KidLisp tests:
npm run test:kidlisp
# Or filter: npm run test:kidlisp -- --filter=<spec-name>
Development Environment
Terminal Workflow (IMPORTANT):
- Use Emacs MCP + fishy terminal for all command execution
- DO NOT use Bash tool for running commands - use fishy via Emacs MCP instead
- The fishy terminal (
🐟-fishy) is the primary shell for all development commands
Emacs Terminal Buffers:
The development environment uses Emacs with named terminal buffers. Use Emacs MCP tools (mcp_emacs_*) to interact with them:
🐟-fishy— Main fish shell (use this for all commands!)🌐-site— Site/web server logs📋-session— Session server logs🧪-kidlisp— KidLisp test runner🔴-redis— Redis logs📊-top— System monitoring🚇-tunnel— Tunnel logs- (See AGENTS.md.backup for full list)
How to run commands in fishy:
- Use
mcp_emacs_emacs_switch_bufferto switch to🐟-fishy - Use
mcp_emacs_emacs_send_keysto send the command - Send newline to execute
Fish Shell Commands (ac-* helpers):
Emacs & Development Environment
ac-aesthetic— Connect to aesthetic emacs UI (alias foraesthetic-now)ac-emacs-restart— Kill and restart emacs daemonac-emacs-full-restart— Restart emacs and reconnect UIac-emacs-kill— Kill emacs daemonac-emacs-status— Check emacs daemon healthac-emacs-logs— View emacs logsac-emacs-health-check— Verify emacs config loaded correctlyac-restart— Restart all AC tabs/processes (calls emacsac-restart)ac-crash-diary— View emacs crash logac-emacs-crash-monitor— Background process that monitors emacs
Core Development
ac-artery— Start artery development serverac-artery-dev— Start artery in dev modeac-site— Start site serverac-session— Start session serverac-url— Get local tunnel URLac-views— View statsac-watch— Watch and rebuild (alias fornpm run watch)ac-repl— Start REPL
Testing & Debugging
ac-test-tabs— Test tab functionalityac-diagnose— Run diagnosticsac-profile-start— Start performance profilingac-profile-stop— Stop performance profilingac-profile-report— Generate profile reportac-watch-cpu— Monitor CPU usageac-dev-log— View development logsac-dev-logs— View all dev logsac-dev-log-clean— Clean old logsac-dev-log-new— Create new log
Deployment & Distribution
ac-pack— Package for distributionac-unpack— Unpack distributionac-ship— Deploy/ship changesac-keep— Save state/backupac-keeps— List saved statesac-keep-test— Test keep functionality
Media & Recording
ac-tv— TV modeac-record— Start recordingac-pix— Image utilitiesac-media— Media server
Services & Infrastructure
ac-servers— Start all serversac-tunnel— Start tunnelac-chat-system— Start chat systemac-chat-sotce— Start sotce chatac-chat-clock— Start clock chatac-stripe-print— Stripe print serviceac-stripe-ticket— Stripe ticket serviceac-logger— View netlify function logsac-oven— Oven serviceac-offline— Offline mode
Authentication & Tokens
ac-login— Login to ACac-token— Manage auth tokens
Other Tools
ac-host— List machines, SSH connection infoac-cdp-tunnel— CDP tunnelac-cdp-status— CDP statusac-extension— Build VSCode extension
Quick Start:
ac-aesthetic # Connect to development UI
ac-emacs-full-restart # Restart everything
ac-restart # Restart AC services only
NPM Scripts:
npm run aesthetic— Full-stack local (site + session + services)npm run site— Client stack onlynpm test— Integration testsnpm run test:perf— Performance testsnpm run url— Get local tunnel URL
Current Tasks
The Queen (@jeffrey) maintains this list. Agents pick from it.
Tier 1: Safe & Small (ant-appropriate)
- Run
npm testand fix any failing tests (one at a time) - Find and fix lint warnings in
system/public/aesthetic.computer/disks/*.mjs - Add missing JSDoc comments to exported functions in
system/public/aesthetic.computer/lib/ - Check
package.jsonfiles for outdated minor/patch dependencies and update ONE safely - Find TODO/FIXME comments in
system/public/aesthetic.computer/lib/and resolve simple ones
Tier 2: Slightly Braver
- Add a small test for any untested utility function in
shared/ - Improve error messages in KidLisp interpreter for common mistakes
- Find dead code (unused exports/functions) and remove it with confidence
Tier 3: Need Coordination
- Performance improvements (profile first, discuss approach)
- New features (propose in
chator GitHub issues) - Architectural changes (needs queen approval)
The Rules
Sacred Ground (Off-Limits)
Do not modify these without explicit queen approval:
- Core runtime (
disk.mjs,boot.mjs,bios.mjs) - Database/auth/payment code
- Deployment configuration
- Anything in
aesthetic-computer-vault/ - This README/score file itself
- Anything that changes user-facing behavior without explicit approval
Colony Rules (for Ants)
- Wander. Read the score. Look at Current Tasks. Run tests. Read code.
- Find signal. Pick ONE task where you see a clear, small, correct change.
- Follow the path. Make the smallest change that accomplishes it.
- Verify. Run
npm testfrom repo root. Tests must pass. - Leave a pheromone. If tests pass, commit with:
ant: <description> - Revert if wrong. If tests fail:
git checkout .and report FAILURE. - NEVER touch files outside the scope of your task.
- NEVER make speculative changes. 98% confidence or walk away.
- Prefer fixing/improving existing code over adding new code.
- If you wandered and found no signal, report IDLE. That's fine. That's most runs.
The Colony
Pheromone Trail
When agents complete tasks, they leave pheromones (git commits) so others can see what's been done.
Recent pheromones:
# Check what other agents did recently
tail -20 ants/pheromones.log
git log --oneline -10
Colony Roles
- Queen: @jeffrey — writes this score, sets direction, maintains vision
- Ants: autonomous agents — do small, confident work
- Contributors: humans — all are welcome in
chat
Running the Colony
Manual ant (interactive):
# In Claude Code:
/ant
# Or via script:
fish ants/colony.fish --once
Automated colony (timer-based):
# Run ants every 30 minutes
fish ants/colony.fish --interval 30
# With specific provider/model
fish ants/colony.fish --provider gh-models --model openai/gpt-4o-mini
See ants/ directory for full colony implementation.
For Users
Want to use Aesthetic Computer (not develop it)?
👉 See USER-GUIDE.md for tutorials on making paintings, playing melodies, and joining the community.
Links
- Live Site: https://aesthetic.computer
- GitHub: https://github.com/whistlegraph/aesthetic-computer
- Community Chat: Enter
chatafter registering - No Paint (predecessor): https://nopaint.art (HN discussion 2020)
- Notepat on HN: https://news.ycombinator.com/item?id=41526754
You are now in the hub. Choose your path. 🐜✨