research: how to understand Cortex adoption (installs, versions, retention) without being intrusive
Los mantenedores suelen responder en 1 día
@mrsabath ya está trabajando en esto.
Desde el 7/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Feature Description
We cannot currently answer basic questions about Cortex adoption: how many people have installed
it, which versions are in use, how many installs are still running a week later. The only signal
today is anecdotal — someone mentions in chat that they installed it.
This issue is research, not implementation. The goal is to understand the available options
for obtaining adoption information, what each one costs in user trust, and what the honest
trade-offs are — and to produce a recommendation for discussion. No approach should be
implemented off the back of this issue. Whatever comes out of it gets its own issue, scoped
and agreed separately.
The reason for the care: Cortex sits in the request path and decrypts the user's agent traffic.
That earns a level of trust that is very easy to spend and very hard to get back. Users are
rightly sensitive about anything leaving their machine, and a tool positioned as "see what your
coding agent actually sends" undermines its own pitch if it quietly sends things itself. The
default assumption for this research is that intrusive collection is off the table, and the
burden is on any proposal to show it does not cross that line.
It is a legitimate outcome of this issue to conclude that we should collect nothing from
installed clients, and get what we need from other sources — or to accept that some questions
simply stay unanswered.
Proposed Solution
Investigate and write up the options. Not a plan to build any of them.
1. What do we actually need to know, and why?
- List the specific questions worth answering (install count? version spread? retention?
which agent integrations are used? platform mix?) - For each, state the decision it would inform. Questions that would not change any decision
should be dropped rather than carried along - Separate "would genuinely change what we build" from "nice to know" — the second category
does not justify any user-visible cost - Note what precision is actually required: an order of magnitude is often enough, and cheap
approximations may beat exact counts that need instrumentation
2. Survey the approaches, including the ones that collect nothing
Zero-collection and off-machine sources first, since these carry no user cost:
- Download and release-asset counts (GitHub release API, install-script fetches, container
pulls, package-manager stats) — what they can and cannot tell us, and how badly CI and
mirrors distort them - Repo-side signals: stars, forks, clones, issue and feedback volume, questions in chat
- Asking people directly: surveys, a check-in with known users, opt-in registration for
early adopters. Low-tech, honest, and possibly sufficient at our current scale - Update-check traffic, if an update check is something users would want anyway for its own
sake — and whether using it for counting is a bait-and-switch
Then approaches that do involve the client, each assessed honestly rather than advocated for:
- Fully opt-in reporting (explicit affirmative action, off by default, no dark patterns)
- Local-only accounting the user can voluntarily share — Cortex keeps its own numbers, nothing
leaves the machine unless someone chooses to send them - Aggregate or privacy-preserving techniques, and whether their complexity is remotely
justified at our scale - Anonymous reporting — documented here specifically so its costs are on the record. Note
that "anonymous" is a weaker claim than it sounds: IP addresses, timing and rare
configuration combinations can re-identify small populations
3. Assess each against the trust bar
- What leaves the machine, in concrete terms — not a category label
- Whether it can be meaningfully described to a user in one sentence they would accept
- Re-identification risk, especially at small user counts where uniqueness is high
- Whether it is verifiable by a suspicious user, or requires taking our word for it
- Reaction if it were discovered rather than announced — a useful test of whether we are
comfortable with it - What it would do to Cortex's positioning as a transparency tool
4. Look at what comparable tools do — and how it went
- How other local developer tools and proxies handle this (both the ones that collect and the
ones that deliberately do not) - Cases where telemetry damaged a developer tool's standing, and what specifically triggered
it — usually defaults, disclosure and discoverability rather than the payload itself - Any legal or policy constraints that apply to us
5. Deliverable
- A written comparison of the options with the trade-offs stated plainly, including the
do-nothing option as a real candidate - A recommendation, which may be "collect nothing from clients"
- If any client-side approach is recommended: what it sends, the default, the disclosure, the
off switch, and how a user verifies the claim — as a proposal for discussion, not a
decision already taken - Open questions needing a product or maintainer call, flagged rather than resolved quietly
- Follow-up issues filed for whatever is agreed. Nothing ships from this issue.
Additional Context
Part of the Cortex v0.9.0 release, Pillar 2 (Observability) of rossoctl/rossoctl#2514 — here
pointed at understanding adoption of the tool itself rather than at the agent's traffic.
Related:
- cortex#898 — report statistics to a central collector. Overlapping concerns: its payload is
traffic and cost rather than adoption, but it raises the same trust questions and should
probably not be designed independently of whatever this research concludes - cortex#944 / cortex#945 — macOS and Linux install + service lifecycle (where install-time
signals would originate, if any) - cortex#959 — first-run path, install to first useful reading (the drop-off we cannot currently
see) - cortex#1236 / cortex#1237 —
agentop configuresurfaces (relevant to the integration-mix
question) - cortex#1002 — Cortex being down can break the harness (any client-side network call would have
to avoid this failure mode entirely)
- Lenguaje dominante
- Go
- Estrellas
- 21
- Forks
- 43
- Merge medio
- 13 h 32 min
- PR fusionados (30 d)
- 256
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rossoctl/cortex
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
UI shows costs for all sessions even when drilled into a sessionPosiblemente ocupada @esnible la tomó hace 18 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
rossoctl/cortex#1116 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
CodeQL flags r.Host reaching slog in the forward proxy's debug/warn linesPosiblemente ocupada @evaline-ju la tomó hace 2 días. Abierto
Dificultad 3/5 Medio día Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 Más de una semana Aptitud para principiantes 18/100
Los mantenedores suelen responder en 1 día
-
Cost/session layering: ledger snapshot logic in the HTTP layer; import edges point both waysAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
Todos los issues de rossoctl/cortex
Issues similares
-
date_time, url_encode, html_escape, to_unix_time, contains_all and contains_any panic when called without argumentsPosiblemente ocupada @antcybersec la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
projectdiscovery/dsl#372 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
JuliusBrussee/caveman#1449 ·
Los mantenedores suelen responder en 1 día
-
clawsweeper:fix-shape-clear clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
openclaw/gogcli#1291 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/arrow-swift#209 ·
Los mantenedores suelen responder en 1 día
-
bug(instrumentation/kafka-go): producer hook writes trace headers into the caller's messagesPosiblemente ocupada @Aryanbhargava18 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
open-telemetry/opentelemetry-go-compile-instrumentation#1669 ·
Los mantenedores suelen responder en 2 días