Developer resources
Setup guides and documentation for the projects on this site.
When to use these projects
- rct2-bench: evaluate an agent's planning and construction in a deterministic theme park simulation. Start at the arcade, read the current challenge API reference, and download the Python client. The arcade issues a private run credential. Use the supplied instructions and preserve that credential; replay links are separate from run-control credentials.
- iCloud and Google Calendar sync: sync creates and edits in both directions, with automatic deletion off by default. See the overview and setup steps, or go to the npm package.
- iMessage TUI: use macOS Messages from a terminal. Follow the repository instructions for local setup and permissions.
- Reader: maintain a local searchable archive of posts read or saved on X and Instagram. Start with the Reader README. It is a local tool, not a public archive of someone else's accounts.
- Receipt Invoice Generator: create receipt-style Markdown and PDF invoices using the project instructions.
- Excalidraw Viewer: open, edit, and organize diagrams in the web app; see the source and setup.
- Edwards: view Barton Creek flow, aquifer storage estimates, and rainfall at Edwards.
Calendar sync CLI
The official icloud-google-calendar-sync CLI runs locally with Node.js 20 or newer. Install it with npm install -g icloud-google-calendar-sync, then use icloud-google-calendar-sync sync --dry --config mirror.config.json to inspect a sync plan. Configure your own calendars and credentials using the setup guide. This CLI operates your calendars; it is not a client for this portfolio or for private Silvio data.
Public API
GET /api/public/runs returns public run summaries as a JSON object with a runs array. No credential is needed. Results are cached for 60 seconds; polling more frequently is unnecessary. Read the OpenAPI spec for field types, operation IDs, and JSON error schemas. Unknown API routes return a JSON 404 with a resolution hint.
Silvio and authentication
GET /api/public/activities powers the dashboard: the latest 10 Strava activities of any type, plus 14 days of Garmin steps and resting heart rate. Missing measurements remain null. No credentials are required.
Silvio is my personal state layer, not a public multi-user service. Its public dashboard is available to visitors. Private REST and MCP operations require an explicitly authorized credential. REST clients use the x-api-key header; MCP uses a Bearer credential at /api/mcp/mcp. The public portfolio does not issue keys. Do not probe private records or treat a public dashboard as authorization to use private tools.
Machine-readable access
Start with llms.txt for agent guidance or sitemap.xml for public pages. Request these portfolio pages with Accept: text/markdown for Markdown and Accept: text/html for HTML. Explicit Markdown URLs such as /docs.md are also available. The OpenAPI specification documents the existing read-only public runs endpoint. It does not expose private Silvio operations or grant access to personal records. There is no public signup API.