Skip to content

Allow configuring the Oxlint output format for vp lint and vp check #2608

Description

@toshiki-higa

Description

vp lint supports selecting an Oxlint output format through the CLI:

vp lint --format=agent

However, there is no equivalent project-level setting in vite.config.ts. In addition, vp check does not accept --format or provide another way to control the output format of its lint phase.

Vitest already supports configuring agent-friendly output centrally:

export default defineConfig({
  test: {
    reporters: ["agent"],
    silent: "passed-only",
  },
});

It would be useful to configure Oxlint output in the same place so that local development, coding agents, CI, vp check, and staged checks all use consistent diagnostics.

Oxlint automatically selects the agent formatter in some recognized agent environments, but this behavior is environment-dependent and does not cover every coding-agent harness. It also does not let a project enforce deterministic output across different environments.

Without a configuration option, projects must maintain separate package scripts and ensure every caller knows which script to use.

Suggested solution

Add a Vite+ configuration option for the Oxlint output format. For example:

export default defineConfig({
  lint: {
    format: "agent",
  },
});

The option should:

  • Apply to vp lint
  • Apply to the lint phase of vp check
  • Apply when those commands are invoked through vp staged
  • Support the same values as Oxlint’s --format option
  • Preserve the current behavior when omitted
  • Allow an explicit CLI --format argument to override the configured value

For vp check, the configured format should apply only to lint diagnostics while preserving Vite+’s own formatting and summary output.

Since output format is currently an Oxlint CLI option rather than part of OxlintConfig, Vite+ could treat this as command configuration and pass it separately to the Oxlint runner.

Alternative

As a workaround:

{
  "scripts": {
    "lint": "vp lint --format=agent",
    "check": "vp fmt --check && vp lint --format=agent"
  }
}

This has several drawbacks:

  • It bypasses the integrated vp check execution path
  • It duplicates Vite+ command behavior
  • It requires staged hooks, CI, contributors, and coding agents to know which script to invoke
  • It can diverge from the project’s normal vp check behavior

Another alternative is to rely on Oxlint’s automatic agent-environment detection. This is not deterministic across environments and does not currently recognize every agent harness.

Additional context

Related issues

  • #925 concerns preserving the automatically selected GitHub reporter in vp check.
  • #2035 discusses Oxlint’s environment-dependent reporter selection and clean-pass output.
  • oxc-project/oxc#20514 implemented the agent formatter and automatic agent detection.
  • oxc-project/oxc#19072 proposes an environment-variable override for compact agent output.

This request is specifically about defining a deterministic, project-level output format in vite.config.ts and applying it consistently to both vp lint and vp check.

Validations

  • Read the Contributing Guidelines.
  • Confirm this request is for Vite+ itself and not for Vite, Vitest, tsdown, Rolldown, or Oxc.
  • Check that there isn't already an issue requesting the same feature.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Fields

    Priority

    None yet

    Start date

    None yet

    Target date

    None yet

    Effort

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions