Feature request for product/service
Cursor IDE
Describe the request
I searched the forum and found several related discussions around workspace-level cost tracking, client billing, time tracking for AI-assisted development, account/workspace switching, and per-request usage visibility.
However, I could not find a feature request specifically for attaching custom metadata to each Cursor chat/composer/agent session and exposing that metadata in the Admin API, CSV export, and usage dashboard.
This request is not primarily about time tracking. It is about enterprise cost attribution for teams working across multiple clients, projects, ERP tasks, Jira tickets, GitHub issues, and parallel Cursor chats.
Feature Request: Chat/Agent Session Metadata for Client, Task, and Cost Attribution
Hi Cursor team,
I would like to request a feature that would allow teams to attach metadata to each Cursor chat/composer/agent session and later retrieve usage and cost data grouped by that metadata.
Background
I work in a professional services / software development environment where the same developer may work for multiple clients, projects, tickets, and ERP tasks during the same day.
In practice, a developer can have several Cursor chats open in parallel, each related to a different customer task:
- Chat A → Client 1 → ERP Task 34245
- Chat B → Client 2 → Jira Issue ABC-123
- Chat C → Internal project → GitHub Issue #456
Today, Cursor usage data can be reviewed at the team/user/time/model level, but there is no reliable way to attribute the cost of a specific chat, composer, or agent session to a specific business task or client.
This makes it very difficult to allocate AI costs accurately, especially for agencies, consulting companies, outsourcing teams, and software vendors who need to understand which customer/project consumed which AI resources.
Requested Feature
Please add support for chat-level / composer-level / agent-session-level metadata.
For example, when opening or using a Cursor chat, the user or workspace policy could define metadata such as:
{
"clientId": "client-001",
"projectId": "project-001",
"taskId": "34245",
"ticketId": "ABC-123",
"issueId": "456",
"billingCategory": "client-billable"
}
This metadata should then be attached to all usage events generated by that chat/composer/agent session.
Suggested UI Behavior
In the Cursor UI, each chat/composer/agent session could have an optional metadata panel or header field:
Client: Client 1
Project: Project 1
Task: 34245
Ticket: ABC-123
Billing: Client-billable
It would also be very useful to allow teams to define required metadata fields at the workspace/team level, for example:
- Require
taskIdbefore starting an Agent session - Require
clientIdfor usage-based billing workspaces - Allow default metadata based on workspace, repository, branch name, or issue/ticket reference
Suggested API / Export Support
Please expose this metadata in the Admin API and CSV exports.
For example, usage events could include:
{
"usageEventId": "evt_...",
"timestamp": "2026-05-17T10:32:00Z",
"userEmail": "[email protected]",
"model": "claude-...",
"kind": "usage-based",
"chargedCents": 42,
"chatId": "chat_...",
"composerId": "composer_...",
"agentRunId": "agent_...",
"metadata": {
"clientId": "client-001",
"projectId": "project-001",
"taskId": "34245",
"ticketId": "ABC-123",
"billingCategory": "client-billable"
}
}
It would also be very useful to provide aggregated endpoints or filters such as:
Get usage by metadata.taskId
Get usage by metadata.clientId
Get usage by metadata.projectId
Get usage by metadata.ticketId
Get usage by chatId / composerId / agentRunId
Why Workspace-Level Tracking Is Not Enough
Some existing discussions and third-party tools focus on tracking Cursor cost by workspace, repository, folder, or project.
That helps in some cases, but it does not solve the problem when a developer works on several customer tasks in parallel inside the same workspace or repository.
For example:
Same repository
Same developer
Same day
Multiple Cursor chats
Different ERP tasks / Jira tickets / clients
In that situation, workspace-level attribution is not granular enough. The missing primitive is session-level attribution: the ability to say “this Cursor chat/agent run belongs to this business task”.
Why Time Tracking Is Not Enough
This is also different from classic time tracking.
The goal is not necessarily to measure how many minutes the human developer spent in the chat. The goal is to attribute actual Cursor AI usage cost to a business object such as:
- Client
- Project
- ERP task
- Jira ticket
- GitHub issue
- Internal billing category
In many companies, AI usage is becoming a real cost center. If the cost cannot be attributed to the correct client or project, it is often absorbed internally as overhead. That limits how broadly teams can use Cursor.
Why This Matters
This feature would make Cursor much more valuable for teams that work across multiple clients or projects.
Right now, when AI usage cannot be attributed to a specific client or task, the cost is often absorbed internally by the company. That limits how broadly we can use Cursor, especially with usage-based pricing.
If Cursor allowed accurate per-chat or per-task cost attribution, companies like ours could:
- Use Cursor more aggressively across client projects
- Allocate AI costs fairly to the correct customer/project
- Justify higher AI usage internally
- Report AI-assisted development costs transparently
- Connect Cursor usage to ERP, Jira, GitHub Issues, Linear, and internal billing systems
- Reduce manual reconciliation and spreadsheet-based cost allocation
- Build better internal ROI reporting for AI-assisted development
In other words, this feature would not only help with reporting. It would directly enable broader Cursor adoption in professional services, agencies, enterprise delivery teams, and consulting environments.
Minimal Useful Version
A minimal useful version would be:
- Each chat/composer/agent session has a stable
chatId,composerId, oragentRunId. - Users or tools can attach custom metadata to that session.
- Cursor usage events include that session ID and metadata.
- Admin API and CSV exports expose the session ID, metadata, and cost.
Ideal Version
The ideal version would include:
- UI support for setting metadata per chat/session.
- Workspace/team-level required metadata fields.
- API support for creating/updating metadata.
- Usage export grouped by metadata.
- Admin dashboard filters by client/project/task/ticket.
- Integration-friendly fields for Jira, Linear, GitHub Issues, and custom ERP task IDs.
- Optional policy enforcement, such as requiring a
taskIdbefore starting a usage-based Agent session.
Related Existing Discussions
There are already related discussions around:
- Workspace/project-level cost tracking
- Client billing for Cursor usage
- Time tracking for AI-assisted development
- Account/workspace switching for multi-client work
- Per-request / per-subagent usage visibility
Those are related, but they do not fully solve the core issue described here.
Workspace-level tracking does not solve parallel task attribution.
Time tracking does not solve usage-cost attribution.
Account switching does not solve task-level allocation inside the same workspace.
Per-request usage visibility is helpful, but without metadata it still cannot be mapped reliably to a business task.
The missing feature is:
Chat / Composer / Agent Session
→ Custom Metadata
→ Usage Events
→ Admin API / CSV Export
→ Cost Attribution by Client / Project / Task / Ticket
Summary
Please consider adding chat/composer/agent-session metadata and exposing it in usage/cost reporting.
This would make Cursor significantly easier to adopt at scale for agencies, consulting companies, enterprise delivery teams, and software vendors that need to allocate AI costs to the correct client, project, task, or ticket.
Thanks!