A workspace is the unit of team collaboration. It holds:
- Members — the people who can view the workspace’s spend
- Devices — the paired developer machines whose daemons sync into it
- Projects — the project slugs the daemon attributes against
- Billing — the plan, seat count, and tier (Solo, Team, Business+, Enterprise)
You can be a member of multiple workspaces. One workspace per company or
per client engagement is the common shape; a workspace per repo is
overkill. Switch workspaces from the avatar menu in the dashboard or
visit app.haltonmeter.com/[workspace-slug]/overview directly.
Creating a workspace
Sign-up at app.haltonmeter.com creates your first workspace
automatically, named after your email’s domain (e.g. acme-co from
vk@acme.co). The slug is editable in workspace settings.
To create additional workspaces (Team plan and above), use the avatar menu → “Create workspace”. You will need to pick a name, a slug, and the plan.
Members and roles
Three roles, listed from most to least privileged:
| Role | Can do |
|---|---|
| Owner | Everything — invite/remove members, change billing, delete the workspace, transfer ownership |
| Admin | Invite/remove members (not other owners), edit projects, edit policies, view audit log, manage devices |
| Member | View dashboards, generate reports, view audit log; cannot change billing or membership |
Roles are assigned per workspace, not globally. You can be an Owner of one workspace and a Member of another. The first member of a workspace is always the Owner.
Inviting members
From app.haltonmeter.com/[workspace]/members:
- Enter the invitee’s email.
- Pick a role (Member is the default).
- The backend issues an invitation via the
v1_workspace_invitationsrouter; an email is sent fromoperator@haltonlabs.comvia Resend. - The invitee clicks the link, signs in with Clerk (creating an account if needed), and lands directly in the workspace.
Invitations expire after 7 days. Resend or revoke from the same members view. Pending invitations do not count toward your seat limit; accepted ones do.
Seat limits
- Solo — 1 seat. Inviting fails with a clear “seat limit reached” error.
- Team — 10 seats included, additional seats charged separately. Additional seats are billed pro-rata on the next invoice; the dashboard tells you the delta before you confirm.
- Business+ — custom seat limit, set in the contract.
- Enterprise — unlimited seats; member sync via SSO directory if configured.
Devices
A device is a paired machine. Each developer typically pairs one device (their laptop); some operators run a separate paired daemon on a CI host or a build server.
From app.haltonmeter.com/[workspace]/settings/devices you can:
- See every paired machine: hostname, machine_id, last sync timestamp, state (ACTIVE / DEGRADED / PAUSED / NOT-CONFIGURED), daemon version.
- Revoke a device. Immediately invalidates the token; the daemon
on that machine moves to
paused_unauthorisedon its next sync attempt. Local capture continues, but no more data flows to the cloud from that machine. Use this when a laptop is lost or an employee leaves. - Rename a device. The default name is the machine’s hostname; you can override it to something more human (“Vikrant’s MBP”).
There is no device limit on any plan — what you pay for is seats (members), not devices. A solo founder running the daemon on their laptop, their desktop, and a CI box still pays the Solo $19/month rate.
Projects and project scoping
Project slugs are created automatically by the daemon’s Smart
Attribution (see Project tagging). The
first time a request gets attributed to slug acme-api, a row appears
in the workspace’s projects list. You do not have to pre-create
projects.
From app.haltonmeter.com/[workspace]/projects you can:
- Rename a project (the slug stays as the foreign key; you set a display name).
- Add a client name and an hourly rate (for billing reports).
- Archive a project. Archived projects stop receiving new sync rows attributed to that slug; historical data stays queryable.
The Solo plan has a 10-project ceiling. The Team plan and above are unlimited.
Personal vs. team data
The daemon’s [cloud.upload.per_project] config lets you mark certain
project slugs as local-only — they will never sync, no matter what
the global preset says. Use this for the personal slug the daemon
falls back to when a request originates outside any tracked workspace
(e.g. you running claude "draft an email" in your home directory),
so personal terminal usage stays off the team dashboard.
[cloud.upload.per_project."personal"]
upload = false
[cloud.upload.per_project."side-project"]
upload = false
Edit ~/.halton-meter/config.toml or use
halton-meter cloud privacy set upload false --project personal. See
Sync and retention for the full consent
model.
Billing
Billing is per-workspace. Each workspace has its own plan, its own seat count, its own invoice. There is no “org-level” rollup of billing across multiple workspaces — that pattern is intentionally absent because it leaks information about other engagements between separate client workspaces.
The billing surface is Clerk Billing. From the workspace settings page, “Manage billing” deep-links into the Clerk customer portal where you can:
- Add or update a payment method
- Change plan (Solo ↔ Team)
- Cancel the subscription
- Download invoices
Tier changes take effect immediately. Cancellation honours the current billing period — the workspace stays usable until the end of the period, then transitions to read-only.
Removing members
Owners and Admins can remove a member from
app.haltonmeter.com/[workspace]/members. Removal is immediate:
- The member’s Clerk session for this workspace is invalidated.
- Their next request to a
/v1/[workspace]/*route returns 403. - The audit log records the removal with the actor, the removed member, and the timestamp.
- If the removed member was the only Owner, ownership transfers to the next-longest-tenured Admin; otherwise no transfer happens.
Removing a member does not affect any device they paired — devices are tied to the workspace, not to a specific member. Revoke the device separately if you also need to stop their machine from syncing.
Deleting a workspace
Owners can delete a workspace from
app.haltonmeter.com/[workspace]/settings. Deletion is final, scheduled
for 30 days after request to give time for export. During the grace
period the workspace is read-only and any paired daemons return 401
(treated as paused_workspace_deleted).
To export before deleting:
- Download every project’s PDF report from
app.haltonmeter.com/[workspace]/projects. - CSV-export the audit log from
app.haltonmeter.com/[workspace]/audit. - If on Team plan and S3/GCS export is configured (planned), the next scheduled export will catch the final snapshot.
See also
- Cloud overview — what the hosted cloud adds
- Connect your meter — pair a machine to a workspace
- Cloud dashboards — overview, reconciliation, audit
- Cloud security — auth, RBAC, audit
- Sync and retention — what syncs into the workspace
- Project tagging — the local attribution chain
- Configure projects — user-facing knobs for project slugs