nikivdev/code · error
Cursor transcripts are readable only; use `f cursor list`, `
Error message
Cursor transcripts are readable only; use `f cursor list`, `f cursor copy`, or `f cursor context`
What it means
Raised by `run_provider` in src/ai.rs (Cursor match arm) when any session-mutating or session-lifecycle action — Sessions, Browse, Continue, New, Open, Resolve, Resume, Find, FindAndCopy — is dispatched against Cursor. The tool treats Cursor transcripts as read-only data sources; only listing, copying, and context extraction are implemented, so all other actions bail with guidance.
Source
Thrown at src/ai.rs:600
"global Codex enablement is only supported for Codex sessions; use `f codex enable-global`"
);
}
Some(ProviderAiAction::Daemon { .. }) => {
bail!("daemon is only supported for Codex sessions; use `f codex daemon ...`");
}
Some(ProviderAiAction::Memory { .. }) => {
bail!("memory is only supported for Codex sessions; use `f codex memory ...`");
}
Some(ProviderAiAction::Telemetry { .. }) => {
bail!(
"telemetry is only supported for Codex sessions; use `f codex telemetry ...`"
);
}
Some(ProviderAiAction::Trace { .. }) => {
bail!("trace is only supported for Codex sessions; use `f codex trace ...`");
}
Some(ProviderAiAction::ProjectAi { .. }) => {
bail!(
"project-ai is only supported for Codex sessions; use `f codex project-ai ...`"
);
}
Some(ProviderAiAction::SkillEval { .. }) => {
bail!(
"skill-eval is only supported for Codex sessions; use `f codex skill-eval ...`"
);
}
Some(ProviderAiAction::SkillSource { .. }) => {
bail!(
"skill-source is only supported for Codex sessions; use `f codex skill-source ...`"
);
}
Some(ProviderAiAction::Agent { .. }) => {
bail!("agent is only supported for Codex sessions; use `f codex agent ...`");
}
Some(ProviderAiAction::Log { .. }) => {
bail!("log is only supported for Codex sessions; use `f codex log ...`");View on GitHub (pinned to a747e741ae)
Solutions
- List Cursor transcripts with `f cursor list`
- Extract a transcript with `f cursor copy` or get recent context with `f cursor context`
- If you need to continue/new/open/resume sessions, do it against Codex or Claude (`f codex ...` / `f claude ...`), not Cursor
- Adjust automation to treat Cursor as read-only and branch on provider before issuing lifecycle actions
Example fix
// before f cursor continue --session abc // after f cursor copy --session abc # read-only extraction # or, for resumable sessions: f codex continue --session abc
Defensive patterns
Strategy: validation
Validate before calling
const CURSOR_ALLOWED: &[&str] = &["list", "latest-id", "copy", "context", "show"];
fn cursor_action_allowed(verb: &str) -> bool {
CURSOR_ALLOWED.contains(&verb)
}
if provider == Provider::Cursor && !cursor_action_allowed(verb) {
eprintln!("Cursor transcripts are readable only; use `f cursor list`, `f cursor copy`, or `f cursor context`");
return;
} Type guard
fn is_cursor_readonly(action: &ProviderAiAction) -> bool {
matches!(
action,
ProviderAiAction::List
| ProviderAiAction::LatestId { .. }
| ProviderAiAction::Copy { .. }
| ProviderAiAction::Context { .. }
| ProviderAiAction::Show { .. }
)
} Try / catch
match run_provider(Provider::Cursor, action) {
Err(e) if e.to_string().contains("Cursor transcripts are readable only") => {
eprintln!("Cursor is read-only; extracting via `f cursor copy` instead");
}
other => other?,
} Prevention
- Treat Cursor as read-only: never attempt continue/new/open/resume/resolve against it
- For resumable sessions use Codex or Claude providers
- Whitelist the four read-only Cursor verbs in any dispatch layer
- Keep Cursor transcript backups externally since lifecycle actions are unsupported
When it happens
Trigger: Running any of `f cursor sessions|browse|continue|new|open|resolve|resume|find|find-and-copy ...`, i.e. run_provider(Provider::Cursor, Some(ProviderAiAction::{Sessions|Browse|Continue|New|Open|Resolve|Resume|Find|FindAndCopy}{..})).
Common situations: Trying to resume or continue a Cursor chat from the CLI, scripting session enumeration against Cursor the same way as Codex, assuming feature parity across providers after switching AI tools.
Related errors
- telemetry is only supported for Codex sessions; use `f codex
- trace is only supported for Codex sessions; use `f codex tra
- project-ai is only supported for Codex sessions; use `f code
- skill-eval is only supported for Codex sessions; use `f code
- agent is only supported for Codex sessions; use `f codex age
AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01).
Data as JSON: /api/errors/315d0609eabcecbe.
Report an issue: GitHub.