What is Sproutkit Code?
A command-line toolkit that finds local businesses without a decent web presence, builds them a real site, and handles the whole job through to invoicing — running on your own Claude subscription.
Sproutkit started as a desktop app for one specific problem: there are thousands of local businesses with no website, or with a website so dated it actively costs them work. Finding them is tedious, building for them is repetitive, and the admin around it — the pitch, the handover, the invoice — eats the margin. Sproutkit Code is that whole job as a command-line tool.
It is not a website builder with a chat box bolted on. It is the pipeline: find the businesses, build the sites, pitch them, hand them over properly, and get paid — with the parts that genuinely need judgement handled by Claude, and the parts that need to be exact handled by code.
Why it exists
Every freelancer and small agency doing local web work rebuilds the same machine by hand. A spreadsheet of prospects. A folder of half-reused templates. A Notes file of who was called and when. An invoice template in Word. None of it talks to each other, so the actual constraint isn’t your ability to build a website — it’s how many plates you can keep spinning.
The specific insight behind Sproutkit is that a business with no website is a visible, findable gap. So is a business with a website but no online booking, taking appointments through WhatsApp messages. Those gaps are detectable at scale, and each one is a concrete thing you can pitch — not a cold call, but “here is your site, already built, have a look”.
The hard part of local web work was never the building. It was the fifty small jobs around each build.
How it works
Sproutkit Code runs on your own Claude Pro or Max subscription rather than an API key. That was a deliberate decision: metered API billing makes every experiment feel expensive, and most people doing this work already pay for Claude. You authenticate once with Claude Code and Sproutkit drives it.
You can talk to it conversationally, or use the commands directly. Both run exactly the same code:
$ sproutkit find "Leeds LS1" --categories "barber shop,cafe"$ sproutkit build 42 --multipage$ sproutkit book 42 --standalone$ sproutkit outreach --ids 42$ sproutkit handover 42 --domain thebarbers.co.uk --yes$ sproutkit invoice 42 --items "Website build:1200,Booking system:450"Finding the work
find searches an area for a category of business and keeps the ones with a real gap. By default that means no website at all. With --mode no_booking it finds the opposite case — businesses that clearly want bookings but are handling them by phone or DM, which are often the warmer lead because they’ve already shown they’ll invest in their web presence.
Building something worth pitching
Sites are generated from what’s actually known about the business: their real reviews, their real photos, their real opening hours. The structure varies by trade — a takeaway leads with the menu, a salon leads with booking, an electrician leads with coverage and trust signals — because five sites with identical structure and different fonts are obviously templated, and a business owner can tell.
Every generated site carries a DEMO banner. That’s not an oversight; it’s what stops a preview being quietly adopted as someone’s real site. It comes off at one specific moment, which brings us to the part most tools skip.
Handing it over properly
handover is the paid-deliverable step. It removes the demo banner, attaches the client’s own domain and prints the DNS records they need, and gives you one sheet with every credential: the site, the admin panel and its password, the booking page. It refuses to run without an explicit confirmation, because unbranding a live site and marking a client won is a commercial act that shouldn’t happen by accident.
Clients get an admin panel by default, where they can edit their own content, see incoming bookings, and change their own password. That last one matters: once they change it, you genuinely can’t log in as them. Building a bigger product on top of that panel is the agency’s call.
Proving it worked
Every site counts calls, booking clicks and page views into its own private storage — no third-party analytics, no cookies, no personal data, nothing to put a consent banner in front of. At renewal you run sproutkit report and have an actual number: thirty-seven calls last month, up from twenty-one. That conversation goes very differently to one about how the site looks.
What we’ve done with it
Sproutkit isn’t a tool we built and hoped someone would use. We built it because we needed it, and we’ve been running our own local web work through it the entire time.
Nearly every feature in Sproutkit exists because something annoyed us in real use. Concurrency, because building sites one at a time was the bottleneck. Streaming search results, because waiting for a whole area to finish was maddening. The demo banner, because a client used a preview as their live site. The client-owned admin password, because holding a client’s login forever isn’t defensible. The tool has been shaped by using it, not by planning it.
Who it’s for
- Freelancers doing local web work who want to spend their time building, not chasing.
- Small agencies who want a repeatable pipeline instead of a per-client scramble.
- Anyone selling websites, booking systems or CMS work to local businesses.
- Developers comfortable in a terminal — this is a CLI, and unapologetically so.
It is not a drag-and-drop builder, and it won’t run your ads or post to social media. It finds work, builds it, helps you sell it, and gets you paid.
Getting started
$ npm install -g sproutkit-code$ sproutkit setup$ sproutkitsetup walks through your licence, your Claude login, and the API keys for Google Places and Vercel. Then bare sproutkit opens Claude Code with the whole toolkit available — ask it to find barbers in your area and build the best two, and watch what happens.
Try it on your own patch
Sproutkit runs on your existing Claude subscription. Install it, point it at your town, and see what it finds.