Tallied documentation

Tallied tracks time and invoices clients from inside your AI chat. Tell it what you worked on; it logs the hours to the right client. Ask what's unbilled; it drafts the invoice. Nothing is sent to a client until you say so.

Connect

Claude (claude.ai or the desktop app)

1. Settings → Connectors → Add custom connector.

2. Paste https://withtallied.com/mcp as the server URL.

3. Click Connect, sign in with Google or an email magic link, then click Allow on the consent screen.

ChatGPT

1. Settings → Connectors → Advanced → Developer mode (enable it if you haven't).

2. Create a connector using the same URL, https://withtallied.com/mcp.

3. Sign in and approve access the same way.

Claude Code

claude mcp add --transport http tally https://withtallied.com/mcp

The first tool call opens the sign-in flow in your browser.

Signing in for the first time creates your free Tallied workspace automatically — there's nothing to set up beforehand.

What you can say

Log time

Catch up on forgotten time

Reports

Invoices

Clients & projects

The assistant asks when a project is ambiguous; it never guesses, and it never creates a client or project without you confirming first. Invoices are only sent when you say so — creating a draft never notifies your client.

How dates and durations are interpreted

"Today" always means today in your workspace timezone, not the assistant's guess or your device's clock — the workspace timezone is set once, on signup, and can be changed in Settings.

Durations are read leniently. All of these are understood: 2h30m, 2h 30m, 2.5, 150, 1:45, 90 min, half an hour. For a bare number with no unit: a decimal is read as hours (2.5 → 2.5 hours), and a whole number is read as hours if it's 12 or less, otherwise minutes — so 8 means 8 hours, but 90 means 90 minutes. If you want to be unambiguous, say the unit (8h, 90m).

Rates

The hourly rate used for a time entry is resolved in this order, first match wins:

1. A rate set directly on that entry (rare — an explicit override).

2. The project's rate.

3. The client's default rate.

4. Your workspace default rate.

Invoices

An invoice moves through: draft → sent → viewed → paid, or void at any point before payment.

Importing from Toggl, Harvest, or Clockify

1. Export your time entries as a detailed CSV from Toggl, Harvest, or Clockify.

2. Upload it at https://withtallied.com/app/import.

3. Re-uploading the same export (or an overlapping one) won't create duplicate entries — imported rows are matched by source, date, and duration, so importing twice is safe.

CSV import is a Pro feature.

Plans and limits

| Plan | Price | Clients | Invoices/month | Import | Branding |

|---|---|---|---|---|---|

| Free | $0 | 1 | 2 | No | No |

| Pro | $12/month | Unlimited | Unlimited | Yes | Yes |

| Team | $8/seat/month | Unlimited | Unlimited | Yes | Yes |

Hitting a plan limit doesn't fail silently — the assistant will tell you what limit you hit and share a link to upgrade.

Bundled skills

Tallied ships five workflows as Claude skills. Where your host supports MCP prompts or slash commands, the same workflows are available that way too:

Privacy & revoking access

Tallied only sees what you tell it to log, and the arguments of the tools an assistant calls on your behalf — never the rest of your conversation. See the privacy policy for details on what's collected and how to delete it.

To revoke an assistant's access, remove the connector from that app (Claude, ChatGPT, etc.) — this immediately invalidates its tokens. You can reconnect at any time; nothing about your workspace or data is lost.

Tool reference

| Tool | Use when | Type |

|---|---|---|

| time.list_entries | Listing individual time entries for a day, week, project, or client | Read |

| time.report | Totals and breakdowns: hours by day/project/client, unbilled amount | Read |

| workspace.list_projects | Listing clients, projects, aliases, and rates | Read |

| time.propose_entries | Reconstructing time from calendar/commits/tickets (proposes only, saves nothing) | Read |

| invoice.list | Listing invoices by status, client, or date range | Read |

| invoice.get | Viewing one invoice's lines, total, and payment status | Read |

| invoice.preview_draft | Previewing what an invoice would contain before creating it | Read |

| time.log_entry | Logging one time entry with a known duration | Write |

| time.log_entries_batch | Logging several entries at once (a recap, or confirmed proposals) | Write |

| time.update_entry | Correcting an existing entry's duration, project, date, etc. | Write |

| time.delete_entry | Removing an entry (requires confirmation) | Write |

| workspace.create_client | Adding a new client | Write |

| workspace.create_project | Adding a new project | Write |

| invoice.create_draft | Turning unbilled hours into a draft invoice | Write |

| invoice.record_payment | Recording a payment made outside Stripe | Write |

| invoice.send | Emailing a reviewed draft to the client with a payment link | Write (external) |

| invoice.void | Cancelling an invoice and releasing its entries (requires confirmation) | Write (external) |