Using Claude Code to revive abandoned personal projects: a practical walkthrough

Matthew Brunelle writes about using AI coding assistance tools (specifically Claude Code with Opus 4.6) to revive personal projects that have been abandoned. His project: a shim between YouTube Music and the OpenSubsonic API that allows any Subsonic-compatible client (Navidrome, Feishin, Symfonium) to stream music from YouTube Music. The project originally stalled because of the long tail of endpoints to implement.
Setup
Brunelle created a uv project with fastapi, pydantic, ytmusicapi, and yt-dlp as dependencies. He dropped the OpenSubsonic OpenAPI spec in the folder, added a brief README, an empty TODO file, and generated a CLAUDE.md via /init. He also added conventions to CLAUDE.md:
## Conventions
- Methods should have type annotations for args and returns as well as docstrings.
- Use Pydantic for data modeling. Use modern Pydantic V2 conventions.
- Doc strings should use the Google style format with an args and returns sections.
- Write unit tests with modern pytest style, eg top level methods using `assert` and fixtures.
Workflow
Brunelle's typical workflow:
- Enter plan mode. Prompt for the next piece of work.
- After getting the initial plan, look for gaps / problems and ask follow‑up questions until satisfied.
- Provide links to resources when Claude is off.
- Ask Claude to use the search tool for idiomatic approaches.
- Use "Accept and clear context". Repeat.
Initial implementation
First prompt: Have a look at the openapi.json file. This is a spec for the opensubsonic api. Implement an async fastapi server that stubs out all of the methods. You only need to handle the newer json endpoints.
After implementing stubs, he double‑checked correctness with a follow‑up prompt. Even with a spec, Claude made mistakes the first time but caught them on the second pass. He also re‑ran /init to update CLAUDE.md.
Next major prompt
The methods for all endpoints are stubbed out now. I want to connect a subsonic client, search for a song, and stream it to the client. What is the minimum amount of functionality needed to implement that? Use ytmusicapi for searching YouTube music and yt-dlp for streaming.
Brunelle reports that the initial streaming implementation looked reasonable but failed when connecting with Feishin. The article cuts off before detailing the fix, but the full post contains the resolution.
Brunelle notes that abandoned projects are ideal candidates for testing AI coding assistance: “they were never going to get done anyway.” He plans to follow up with a post on OpenCode.
📖 Read the full source: HN AI Agents
👀 See Also

Claude Code Skill Converts Stitch Designs to Next.js with Zero Pixel Drift
A Claude Code skill converts Google Stitch AI designs to Next.js components with mandatory verification checkpoints to prevent pixel drift, preserving exact values and handling assets.

RAG Learning Academy Built Inside Claude Code with 20 Specialist Agents
A developer created an interactive RAG learning academy inside Claude Code featuring 20 specialist agents, 17 slash commands, and a 9-module curriculum that assesses knowledge level and uses open-source tools by default.

MoltNow.app: One-Click OpenClaw Deployment Platform Emerges
A new service promises to simplify OpenClaw deployment to just one click with custom UI and browser automation.

AutoAgents Rust Framework Adds Python Bindings for Prototyping
AutoAgents, a Rust-based multi-agent framework, now has Python bindings that allow developers to prototype in Python while maintaining the same Rust core runtime, provider interfaces, pipeline model, and agent semantics. The bindings enable experimentation with local AI models without external systems.