Developer resources

Setup guides and documentation for the projects on this site.

When to use these projects

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.