nikivdev/code · error
browse is only supported for Codex sessions; use `f ai codex
Error message
browse is only supported for Codex sessions; use `f ai codex browse ...`
What it means
Raised in the Claude branch of `run_provider` in src/ai.rs: the `browse` action is implemented only for Codex sessions (browse_codex_sessions), so dispatching it under the Claude provider bails with a pointer to `f ai codex browse ...`. Unlike the Cursor arm, Claude supports most actions but explicitly excludes Browse and a few Codex-specific integrations.
Source
Thrown at src/ai.rs:800
/// Run the ai subcommand.
pub fn run(action: Option<AiAction>) -> Result<()> {
let action = action.unwrap_or(AiAction::List);
match action {
AiAction::List => list_sessions(Provider::All)?,
AiAction::Cursor { action } => run_provider(Provider::Cursor, action)?,
AiAction::Claude { action } => match action {
None => quick_start_session(Provider::Claude)?,
Some(ProviderAiAction::List) => list_sessions(Provider::Claude)?,
Some(ProviderAiAction::LatestId { path }) => {
print_latest_session_id(Provider::Claude, path)?
}
Some(ProviderAiAction::Sessions { path, json }) => {
provider_sessions(Provider::Claude, path, json)?
}
Some(ProviderAiAction::Browse { .. }) => {
bail!("browse is only supported for Codex sessions; use `f ai codex browse ...`");
}
Some(ProviderAiAction::Continue { session, path }) => {
continue_session(session, path, Provider::Claude)?
}
Some(ProviderAiAction::New) => new_session(Provider::Claude)?,
Some(ProviderAiAction::Connect { .. }) => {
bail!("connect is only supported for Codex sessions; use `f codex connect ...`");
}
Some(ProviderAiAction::Open { .. }) | Some(ProviderAiAction::Resolve { .. }) => {
bail!("open/resolve is only supported for Codex sessions; use `f codex ...`");
}
Some(ProviderAiAction::Runtime { .. }) => {
bail!(
"runtime helpers are only supported for Codex sessions; use `f codex runtime ...`"
);
}
Some(ProviderAiAction::Doctor { .. }) => {
bail!("doctor is only supported for Codex sessions; use `f codex doctor`");View on GitHub (pinned to a747e741ae)
Solutions
- Use `f ai codex browse ...` for searchable session browsing
- For Claude, enumerate sessions with `f claude list` (or `f ai list` across providers) and filter externally
- Get the latest Claude session via `f claude latest-id` and inspect it with `f claude show`/`copy`
- Update triage scripts to branch: browse for Codex, list+filter for Claude
Example fix
// before f claude browse --query "refactor" // after f ai codex browse --query "refactor" # or for Claude: f claude list | grep refactor
Defensive patterns
Strategy: validation
Validate before calling
fn supports_browse(provider: Provider) -> bool {
matches!(provider, Provider::Codex)
}
if !supports_browse(provider) {
eprintln!("browse requires Codex: use `f ai codex browse ...`; for Claude use `f claude list`");
return;
} Type guard
fn is_codex(provider: Provider) -> bool {
matches!(provider, Provider::Codex)
} Try / catch
if let Err(e) = run_provider(Provider::Claude, Some(ProviderAiAction::Browse { .. })) {
if e.to_string().contains("browse is only supported for Codex") {
eprintln!("falling back to `f claude list` + local filtering");
} else {
return Err(e);
}
} Prevention
- Reserve `browse` for Codex sessions only
- For Claude history triage, use `f claude list` / `latest-id` and filter output locally
- Branch on provider in session-search scripts (browse for Codex, list for Claude)
- Note that Claude supports most actions but excludes browse/connect/open/resolve and Codex integrations
When it happens
Trigger: Running `f claude browse ...` or `f ai claude browse ...`, i.e. run_provider/run's Claude match on Some(ProviderAiAction::Browse{..}). Occurs when searching/filtering session history is attempted against Claude transcripts.
Common situations: Searching Claude session history with a query the way `f ai codex browse` allows, scripts that use browse for session triage across providers, tab-completion suggesting browse under `f claude`.
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/90b20158f3c09348.
Report an issue: GitHub.