# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## What this repo is

This directory is served as the document root for a local static HTTP server. There is no application code — the repo itself *is* the web root, so any files placed here become directly downloadable at `http://127.0.0.1:8000/`.

## Running service

A Python `http.server` instance is registered as a per-user `launchd` LaunchAgent so it survives closing the terminal and restarts automatically on crash or login.

- **Binary**: `/Users/vdryzheruk/.pyenv/versions/3.14.4/bin/python3` (pyenv-managed 3.14.4)
- **Command**: `python3 -m http.server 8000 --bind 127.0.0.1 --directory /Users/vdryzheruk/work/datum/http-server`
- **Address**: `http://127.0.0.1:8000/` (loopback only, not exposed on the network)
- **Label**: `com.vdryzheruk.http-server`
- **Plist**: `~/Library/LaunchAgents/com.vdryzheruk.http-server.plist`
- **Logs**: `~/Library/Logs/com.vdryzheruk.http-server.log` (stdout), `~/Library/Logs/com.vdryzheruk.http-server.err.log` (stderr)
- Runs as the current user — no `sudo` required (port 8000 is unprivileged, unlike port 80).

## Service management

No `sudo` needed for any of these — it's a user-level LaunchAgent (`gui/<uid>` domain), not a system LaunchDaemon.

Start:
```bash
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.vdryzheruk.http-server.plist
```

Stop:
```bash
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.vdryzheruk.http-server.plist
```

Restart:
```bash
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.vdryzheruk.http-server.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.vdryzheruk.http-server.plist
```

Check status:
```bash
launchctl print gui/$(id -u)/com.vdryzheruk.http-server
```

Verify it's responding:
```bash
curl -sS -o /dev/null -w "HTTP %{http_code}\n" http://127.0.0.1:8000/
```

## Removing the service entirely

```bash
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.vdryzheruk.http-server.plist
rm -f ~/Library/LaunchAgents/com.vdryzheruk.http-server.plist
rm -f ~/Library/Logs/com.vdryzheruk.http-server.log ~/Library/Logs/com.vdryzheruk.http-server.err.log
```

This unloads the LaunchAgent, deletes its plist so it won't be re-registered on next login, and removes its log files.
