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

✍️ OpenClawRadar📅 Published: April 26, 2026🔗 Source
Using Claude Code to revive abandoned personal projects: a practical walkthrough
Ad

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.
Ad

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

Ad

👀 See Also