Open-source time tracking, invoicing, expenses, payments, and reporting for agencies, consultancies, and service businesses.
Stop stitching together a timer, spreadsheet, invoicing app, expense tracker, and payment tool. Miru brings the full workflow into one product.
Start free · Visit miru.so · See pricing · Read the docs
Miru is built for teams that bill by the hour and want the full money workflow in one place.
- Track time without friction
- Turn tracked work into invoices
- Log and review expenses
- Collect payments through Stripe
- See revenue, utilization, and aging reports
Start tracking free · View on GitHub
Start free · See the full product story
- One workflow from time entry to payment instead of five disconnected tools
- Open source and MIT licensed, so you can self-host and keep control
- Designed for agencies, consultancies, and service teams that care about hours, invoices, expenses, and cash flow
- Free to start, with simple pricing on hosted plans at miru.so/pricing
-
🕒 Time Tracking: Intuitive time tracking tools for effortless monitoring of work hours.
-
💼 Invoicing: Create professional invoices with ease, using time tracking data. Send invoices directly to clients via email for prompt payment processing.
-
👥 Team Page: Collaborative workspace to manage your team's work efficiently.
-
👤 Client Page: Centralized client management system for maintaining client information. Easily access client details when creating invoices or reports.
-
🏢 Client Portal: Access a client-specific dashboard for a quick overview of all invoices with update status.
-
🚀 Projects: Dashboard to add new projects, team members, and rates.
-
📊 Reports Page: Generate comprehensive reports for insights into project performance. View time tracking data, expenses, and revenue summaries. Export reports in various formats (PDF, CSV) for sharing or record-keeping.
-
💳 Integration with Payment Gateways: Seamlessly connect with STRIPE for quick and secure payments. Accept payments directly through Miru.so to streamline invoicing and payment processing.
- Agencies tracking billable time across clients and projects
- Consultancies that need invoices and payments tied directly to work performed
- Service businesses replacing spreadsheets, legacy trackers, and bloated finance tools
- Teams that want hosted software now with the option to self-host later
- Hosted app: app.miru.so
- Product site: miru.so
- Pricing: miru.so/pricing
- Documentation: docs.miru.so
- Open-source repository: github.com/saeloun/miru-web
- Rails 8 + Ruby 4.0.1 upgrade
- Modernized React + TypeScript frontend and UI refresh
- Responsive email layouts with local preview coverage
- Render-first deployment workflow for production and one-click setup
- Playwright-based end-to-end verification and release QA
For detailed information on how to use Miru Web and its various features, please refer to our official documentation:
For local development on this branch, see CLAUDE.md and docs under docs/.
For CLI and MCP setup details, see docs/miru-cli.md and docs/miru-mcp.md.
Miru ships first-party MCP support (Ruby SDK based) and a CLI token flow for agent clients.
What ships in this repository:
- HTTP MCP endpoint:
https://<your-miru-host>/mcp - stdio MCP entrypoint:
bin/miru-mcp - Miru CLI:
tools/miru-cli(installablemirucommand) - namespaced tools under
miru.*
Feature availability:
- MCP is Pro-gated by workspace plan
- allowed: paid workspaces, active trials, billing-exempt workspaces
- blocked: free workspaces without trial (returns
403with JSON-RPC-32003)
Install and authenticate:
curl -fsSL https://raw.githubusercontent.com/saeloun/miru-web/main/tools/miru-cli/install.sh | bash
miru login --base-url https://app.miru.so --email user@example.com --password '***'Export token for MCP clients:
export MIRU_CLI_TOKEN="$(miru config token)"Example Codex MCP config:
[mcp_servers.miru]
url = "https://app.miru.so/mcp"
bearer_token_env_var = "MIRU_CLI_TOKEN"| MCP Tool | Equivalent CLI command |
|---|---|
miru.capabilities |
miru capabilities |
miru.workspace.whoami |
miru whoami |
miru.project.list |
miru project list |
miru.client.list |
miru client list |
miru.time.list |
miru time list |
miru.time.create |
miru time create |
miru.time.update |
miru time update |
miru.time.delete |
miru time delete |
miru.invoice.list |
miru invoice list |
miru.invoice.show |
miru invoice show |
miru.invoice.send |
miru invoice send |
miru.payment.list |
miru payment list |
miru.payment.show |
miru payment show |
miru.expense.list |
miru expense list |
miru.expense.create |
miru expense create |
For full setup details, safety conventions (dry_run, idempotency_key), and troubleshooting:
Miru supports automated locale maintenance with i18n-tasks.
- Install/update tooling:
mise exec -- bundle install - Inspect translation config:
mise exec -- bundle exec rake i18n:config - Check locale health:
mise exec -- bundle exec rake i18n:health - Translate major Indian locales:
mise exec -- bundle exec rake i18n:translate_india - Translate world locales:
mise exec -- bundle exec rake i18n:translate_world - Run Google first, then optional AI fallback:
mise exec -- bundle exec rake i18n:translate_auto
Required env vars:
GOOGLE_TRANSLATE_API_KEYI18N_TRANSLATION_BACKEND=google- optional AI fallback:
I18N_AI_TRANSLATION_FALLBACK=trueI18N_AI_TRANSLATION_BACKEND=openaiOPENAI_API_KEY
Miru now ships with a Render Blueprint for one-click infrastructure setup.
- Production branch:
production - Release prep branch:
stable-3-0 - Deploy guide: docs/contributing-guide/deployment/render.md
- Blueprint: render.yaml
For a fresh Render workspace, use the button above or open:
https://render.com/deploy?repo=https://github.com/saeloun/miru-web/tree/production
The Blueprint provisions:
- a web service
- a worker service
- a Postgres database
- a Render Key Value instance
After the stack is created, set your required app secrets and point your custom domain to the web service.
- Release owner for Miru 3.0:
Vipul A M - Product and OSS stewardship:
Saeloun
- Feel free to join our Discord channel for support and questions.
- Subscribe to our latest blog articles and tutorials.
- Discussions: Post your questions regarding Miru Web
We encourage everyone to contribute to Miru Web! Check out
Contributing Guide for guidelines about how to proceed.
Note: We are working on improving the documentation. So we created a docusaurus app for documentation. Check out the Miru Docs.
Thanks goes to all our contributors
Miru © Saeloun - Released under the MIT License.



