langfuse / langfuse/opencode-observability-plugin
Feature: configurable trace tags (filter traces by agent/tool in shared projects)
@bezbac is already working on this.
Since Aug 31, 2026.
- Dominant language
- TypeScript
- Stars
- 29
- Forks
- 18
- Avg merge
- 5h 26m
- Merged PRs (30d)
- 8
Description
Problem
The plugin exports traces without any tags. In a shared Langfuse project that receives traces from multiple agent tools (Claude Code, OpenCode, Hermes, Codex...), there is no way to filter traces by which tool produced them.
Notably, the Claude Code plugin already hardcodes a claude-code trace tag on every trace, so traces from different tools are inconsistently filterable.
For example — we self-host Langfuse and aggregate traces from several coding agents into one project. Claude Code traces can be filtered by tag, OpenCode traces cannot:
| Tool | Trace tags in UI |
|---|---|
| Claude Code plugin | claude-code |
| OpenCode plugin | (none) |
Proposed solution
Add an optional tags field to the credentials config (~/.config/opencode/opencode-langfuse.json):
{
"publicKey": "pk-lf-...",
"secretKey": "sk-lf-...",
"tags": ["opencode", "production"]
}
plus a LANGFUSE_TAGS env var (comma-separated) for env-only setups, mirroring the existing env-var pattern (LANGFUSE_USER_ID, LANGFUSE_SERVICE_NAME, ...).
Implementation: a makeTraceTagsSpanProcessor following the existing makeUserIdSpanProcessor pattern, setting the langfuse.trace.tags OTTL attribute on every span — @langfuse/core's OTEL endpoint maps this attribute to Langfuse trace tags.
Workaround currently in use
Manually patching dist/index.js in the opencode plugin cache to add one span.setAttribute("langfuse.trace.tags", ...) line. Works, but is wiped on every plugin update.
Use case: multi-agent observability rollouts where one Langfuse project serves a whole team's coding agents and dashboards/queries filter by agent type.
I have a PR ready implementing this (config file + env var, merged & de-duplicated, capped at 50 tags, README updated).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.