FreelanceOS
# FreelanceOS
**Run your entire freelance business from Claude Code.** Proposals, invoices, time tracking, scope management, and follow-ups β handled through chat. 37 hosted tools, 5 coaching skills, one install command.
[](https://www.npmjs.com/package/freelance-os)
[](https://smithery.ai/servers/Sohlin2/freelance-os)
[](https://glama.ai/mcp/servers/Sohlin2/freelance-os)
[](https://glama.ai/mcp/servers/Sohlin2/freelance-os)
[](#license)
π **Live**: https://freelance-os-production.up.railway.app
---
## Install
```bash
claude plugin install freelance-os
```
When prompted, paste your API key. That's it β start managing your freelance business conversationally.
## Get an API key
| Plan | Price | Link |
|------|-------|------|
| **Monthly** | $19/month (7-day free trial) | [Start Free Trial](https://buy.stripe.com/5kQdRagAv5sr5U20rU2Ji02) |
| **Lifetime** | $40 one-time | [Buy Once](https://buy.stripe.com/00w4gAac7bQP2HQ1vY2Ji01) |
Monthly plan includes a 7-day free trial β no charge until day 8. Your API key is delivered instantly on the success page after checkout.
## Why this exists
I was tired of jumping between Stripe, Notion, a spreadsheet for hours, and a Word doc for proposals every time a client emailed. Every tool wanted me to switch context, log in, copy data between them β meanwhile I was already in Claude Code 8 hours a day shipping client work. So I made the admin layer live where the work does. Conversational. Hosted server stores the data, AI handles the chaos.
β Built by [Jacob Sohlin](https://github.com/Sohlin2). The 5 coaching skills are MIT and live in this repo. The MCP server is hosted (not open source) β your subscription pays for hosting, billing, support, and per-user data isolation.
## What you get
### 37 hosted MCP tools
Full CRUD across the freelance lifecycle, served by the hosted backend:
| Entity | Tools | What you can do |
|--------|-------|-----------------|
| **Clients** | 5 | CRM β contacts, billing rates, notes |
| **Projects** | 5 | Track work per client with budgets and timelines |
| **Proposals** | 5 | Draft, price, send β `client_id` derived from `project_id` |
| **Invoices** | 4 | JSONB line items, tax, status tracking. `invoice_number` and totals auto-computed |
| **Time** | 6 | Log hours, aggregate per project, real `date_range` of entries |
| **Scope** | 6 | Define boundaries, log change requests, detect creep |
| **Follow-ups** | 6 | Context-aware reminders, sent-tracking |
### 5 coaching skills (MIT, in this repo)
The local layer that teaches Claude freelance domain expertise. Free to inspect, fork, and learn from:
| Skill | What it does |
|-------|--------------|
| **Proposals** | Pricing strategy, scope clarity, revision limits, payment terms |
| **Invoices** | Line item structure, payment terms, overdue management |
| **Follow-ups** | Timing, tone, and content for every follow-up scenario |
| **Scope** | Scope definition, change requests, creep detection |
| **Time** | Logging practices, hour aggregation, time-to-invoice workflow |
## Example workflows
**New client onboarding:**
> "I have a new client, Acme Corp. Contact is Jane at jane@acme.com. They need a website redesign, budget around $5k."
**End-of-week invoicing:**
> "Show me uninvoiced time for the Acme project this week and generate an invoice."
**Scope creep detection:**
> "Jane asked for a blog section β is that in scope for the Acme redesign?"
**Follow-up on overdue invoice:**
> "Invoice INV-0042 is 2 weeks overdue. Draft a polite but firm follow-up to Jane."
## Compatibility
| Client | Status | Notes |
|---|---|---|
| **Claude Code** | β
First-class | Coaching skills + MCP tools |
| **Claude Desktop** | β
Tools work | Add as a remote MCP server in `claude_desktop_config.json` |
| **Cursor / Cline / Continue / etc.** | β
Tools work | Any MCP-compatible client connects to the Streamable HTTP endpoint |
## Issues & feedback
- π **Bug reports** β [GitHub Issues](https://github.com/Sohlin2/freelance-os/issues)
- π‘ **Feature requests** β [GitHub Discussions](https://github.com/Sohlin2/freelance-os/discussions)
- π **Status** β [/health endpoint](https://freelance-os-production.up.railway.app/health)
If something breaks, file an issue and I usually respond within a day.
## License
MIT for the **skills in this repo**. The hosted MCP server is closed-source β your subscription pays for hosting, support, and per-user data isolation.
β [Jacob Sohlin](https://github.com/Sohlin2)
TDQS
Scored across 37 tools
Tools are well-organized by resource domain (clients, projects, invoices, etc.) with clear hierarchical naming that distinguishes actions. However, with 37 tools, the sheer volume creates inherent cognitive overlap riskβagents must parse many similar patterns (e.g., archive appears in three domains) to select correctly.
The dot-notation pattern (domain.subdomain.verb) is mostly consistent, using snake_case throughout. Minor deviations exist: some domains use 'records' (clients.records) while others use specific plurals (time.entries), and subdomains mix singular (followups.context, scope.definition) with plural (followups.messages, scope.changes).
At 37 tools, this significantly exceeds the 25+ threshold for 'too many.' While FreelanceOS covers a comprehensive freelance business suite (CRM, project management, invoicing, time tracking), the tool surface is heavy for an agent to navigate effectively, increasing the risk of misselection despite good organization.
The surface provides robust CRUD+archive coverage across all major domains: clients, projects, proposals, invoices, time tracking, follow-ups, and scope management. Minor workflow gaps exist (e.g., proposals has 'accept' but no dedicated 'reject/withdraw,' invoices lacks explicit archive), but agents can work around these using update operations.