Download the PHP package rtcoder/devdoctor without Composer

On this page you can find all versions of the php package rtcoder/devdoctor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package devdoctor

DevDoctor

Developer diagnostics for humans.

DevDoctor is a read-only CLI for catching common local, repository, environment, cache, HTTP URL, database, queue, Docker, Composer, Git, Node/frontend, Flutter/Dart, native mobile, monorepos, Python, Ruby/Rails, Go, Rust, Java/JVM, MCP agent config, Terraform/IaC, Kubernetes/Helm, .NET, C/C++, generic web, and CI problems before they turn into manual debugging sessions.

Current version: 1.48.0

Installation

DevDoctor requires PHP 8.5 or newer.

DevDoctor currently runs from the project checkout:

Build a local PHAR:

Tagged releases publish both the PHAR and PHPacker standalone binaries for Linux, macOS, and Windows. The standalone binaries bundle a PHP runtime, so users do not need PHP installed just to run DevDoctor.

Install as a Composer package:

Install locally in a project:

Commands

All public commands support the shared options:

Diagnostic commands also support output shaping without changing the underlying exit code:

Supported diagnostic output formats are table, json, and sarif.

Laravel Zero already defines a global --env option, so DevDoctor exposes the env-file selector as --env-file:

Examples

ports uses platform-specific read-only providers: lsof on macOS/Linux, ss as a Linux fallback, and netstat -ano on Windows. If no supported provider is available, DevDoctor reports DD_PORT_PROVIDER_UNAVAILABLE instead of failing unexpectedly.

Platform Support

DevDoctor targets Linux, macOS, and Windows:

Capability Linux macOS Windows
Command discovery Native executable lookup Native executable lookup Native executable lookup
Port listeners lsof, then ss lsof netstat -ano
Process suggestion kill -TERM <pid> kill -TERM <pid> taskkill /PID <pid>
Cache diagnostics Supported Supported Supported
HTTP URL diagnostics Supported Supported Supported
PHP runtime diagnostics Supported Supported Supported
Node.js project diagnostics Supported Supported Supported
Frontend project diagnostics Supported Supported Supported
Python project diagnostics Supported Supported Supported
Ruby/Rails diagnostics Supported Supported Supported
Go module diagnostics Supported Supported Supported
Rust Cargo diagnostics Supported Supported Supported
Java/JVM diagnostics Supported Supported Supported
MCP configuration diagnostics Supported Supported Supported
Terraform/IaC diagnostics Supported Supported Supported
.NET diagnostics Supported Supported Supported
C/C++ diagnostics Supported Supported Supported
Generic web diagnostics Supported Supported Supported
Laravel application diagnostics Supported Supported Supported
Symfony application diagnostics Supported Supported Supported
Security posture diagnostics Supported Supported Supported
Database configuration diagnostics Supported Supported Supported
Database connection diagnostics Supported when the matching PDO driver is installed Supported when the matching PDO driver is installed Supported when the matching PDO driver is installed
Queue configuration diagnostics Supported Supported Supported
Composer, Git, Docker Supported when their executables are installed Supported when their executables are installed Supported when their executables are installed

Platform-specific commands are only suggested. DevDoctor never terminates a process automatically.

Diagnostic Details

Project Presets

The presets command detects supported project stacks from files and declared dependencies without running project tools:

Preset Detection evidence
Laravel laravel/framework or artisan
Symfony symfony/framework-bundle or bin/console
Node.js package.json
Frontend frontend package dependencies, index.html, or common app entry files
Vite vite dependency or a vite.config.* file
Next.js next dependency
Nuxt nuxt dependency
Astro astro dependency
Flutter / Dart pubspec.yaml, pubspec.lock, .metadata, or Flutter SDK dependency
Mobile native Android manifests/build files, Podfile, Podfile.lock, or Xcode project markers
Monorepo nx.json, turbo.json, lerna.json, pnpm-workspace.yaml, rush.json, Bazel, Pants, or package workspaces
Python pyproject.toml, requirements*.txt, Pipfile, uv.lock, or Conda files
pip / Poetry / Pipenv / uv / Conda their lockfiles or manifests
Ruby / Rails Gemfile, .ruby-version, config/application.rb, or bin/rails
Go go.mod or go.work
Rust Cargo.toml, Cargo.lock, or rust-toolchain.toml
Java/JVM Maven, Gradle, or Ant build files
Maven / Gradle / Ant / Spring wrapper/build files or Spring Boot references
MCP .mcp.json, mcp.json, .agents/mcp.json, .claude/mcp.json, .cline/mcp.json, .codex/mcp.json, .continue/mcp.json, .continue/config.json, .cursor/mcp.json, .roo/mcp.json, .vscode/mcp.json, or .windsurf/mcp.json
IaC / Terraform *.tf, *.tfvars, .terraform.lock.hcl, tofu.lock.hcl, or terragrunt.hcl
Kubernetes / Helm Kubernetes manifests, Chart.yaml, Chart.lock, helmfile.yaml, kustomization.yaml, or values.yaml
C/C++ CMake, Make, Meson, Autotools, vcpkg, or Conan files
CMake CMakeLists.txt
.NET solution/project files, global.json, or NuGet.config
Generic web static entry files, web server config, or frontend evidence
Docker Compose A supported Compose file

v1.24.0 ships devdoctor iac with static diagnostics for Terraform, OpenTofu, and Terragrunt manifests, provider lockfiles, broad provider constraints, unpinned remote modules, and secret-like IaC values.

v1.25.0 ships devdoctor kube with static diagnostics for Kubernetes manifests and Helm charts. It checks Helm dependency locks, literal secrets in values files, mutable image tags, privileged containers, hostPath mounts, and NodePort service exposure without running kubectl or helm.

v1.26.0 ships devdoctor flutter with static diagnostics for Flutter and Dart projects. It checks pubspec lockfiles, Dart SDK constraints, path/Git dependencies, and platform markers without running Flutter commands or builds.

v1.27.0 ships devdoctor mobile with static diagnostics for native Android and iOS projects. It checks Gradle wrapper presence, Android debuggable manifests, CocoaPods lockfiles, and iOS debug entitlements without running platform build tools.

v1.28.0 ships devdoctor monorepo with static diagnostics for workspace tooling. It checks mixed orchestration tools, missing workspace lockfiles, and risky root scripts without running monorepo commands.

v1.29.0 ships utility commands: inventory, explain, policy, and support-bundle. They help inspect detected stacks, understand issue codes, review DevDoctor safety policy, and print redacted support context without writing files.

v1.30.0 ships documentation automation and a richer documentation site. The issue code catalog is generated from schemas/v1/issue-codes.json, includes filtering and copy controls, and the docs include scenario guides for Laravel, frontend, monorepo, and CI baseline rollout.

v1.31.0 adds documentation navigation polish with active navigation, breadcrumbs, copy buttons for command snippets, and additional scenario guides for Python, Kubernetes/Helm, Terraform/IaC, Symfony, and mobile projects.

v1.32.0 adds machine-readable documentation metadata with docs/manifest.json and docs/commands.json so tools can consume page and command references without scraping HTML.

v1.33.0 adds CLI discoverability with devdoctor commands and devdoctor explain --module=..., making command metadata and issue-code hints available without leaving the terminal.

v1.34.0 adds CI policy profiles: local, ci, strict-ci, and security, with documented defaults for warning handling, strict mode, and module selection.

v1.35.0 adds --baseline-report for CI baselines, showing active, suppressed, and resolved fingerprint counts without hiding findings.

v1.36.0 adds a manual Update Homebrew Tap workflow for publishing or repairing the Homebrew formula for an existing release after HOMEBREW_TAP_TOKEN is configured.

v1.37.0 adds update checks for interactive table output and devdoctor self-update, which reports the current version, the latest release, and the safest update command for the detected installation method.

v1.38.0 polishes the composite GitHub Action metadata for GitHub Marketplace publishing, including branding, clearer input descriptions, and updated pinned examples.

v1.38.1 renames the Marketplace Action to DevDoctor CI Diagnostics so GitHub accepts the listing with a unique Action name.

v1.38.2 changes the Marketplace Action branding color to blue.

v1.39.0 adds the repository bump-version helper so release pins can be updated from one command instead of hand-editing every file.

v1.40.0 adds devdoctor version for script-friendly version checks with table and JSON output.

v1.41.0 changes the generated Homebrew formula to install standalone binaries instead of the PHAR, so devdoctor does not depend on the local PHP version.

v1.41.1 fixes the release artifact test on Windows by checking the bump-version PHP shebang instead of POSIX executable permissions.

v1.42.0 adds devdoctor mcp for read-only Model Context Protocol configuration diagnostics across .mcp.json, mcp.json, .cursor/mcp.json, and .vscode/mcp.json.

v1.43.0 expands MCP diagnostics with .agents/.codex config discovery, inline secret checks, env reference checks, insecure remote URL checks, and risky stdio command detection.

v1.44.0 expands MCP client config discovery for Claude, Cline, Continue, Roo, Windsurf, and nested mcp.servers style project files.

v1.45.0 adds MCP supply-chain checks for unpinned package-runner targets and mutable Docker image tags in stdio server definitions.

v1.46.0 adds MCP project policy flags for disallowing remote servers and enforcing stdio command allow/deny lists.

v1.47.0 includes MCP diagnostics in the security CI profile so agent config risks are covered by security-oriented runs.

v1.48.0 expands command documentation with every available CLI option per command and a roomier one-command-per-row layout.

Preset detection is informational and can be included in CI explicitly:

Table Output

Actionable findings may include a hint and a suggested command. Suggested commands are never executed by DevDoctor. Commands that can change system state, such as terminating a process, are marked as destructive in JSON output.

JSON Output

SARIF Output

Use SARIF 2.1.0 for code scanning integrations:

Each result maps the issue code to a SARIF rule id, includes relative file locations when available, and carries a stable devdoctorFingerprint/v1 based on code, module, file, and key. Hints and fix descriptions are included as metadata; suggested commands are never executed.

Health

The health command is a local, broad project overview. It uses the same output formats as other diagnostics and keeps ports opt-in to avoid machine-specific noise:

Unknown health modules return exit code 3.

CI

The CI aggregator runs env, php, node, laravel, composer, git, and docker by default. It adds frontend, flutter, mobile, monorepo, python, ruby, go, rust, java, mcp, iac, kube, dotnet, cpp, web, and symfony automatically when matching presets are detected. ports and security are excluded by default because they can depend on local machine state or intentionally present local files.

CI profiles provide documented defaults:

Profile Modules Behavior
local env,php,node,frontend,composer,git,docker plus detected ecosystems Does not fail on warnings by default
ci env,php,node,laravel,composer,git,docker plus detected ecosystems Current default behavior
strict-ci ci modules plus security Enables strict mode and fails on warnings
security env,git,docker,security,mcp Security-oriented strict profile including MCP agent config checks

Unknown modules and unknown profiles return exit code 3. Selected modules are always included in JSON output.

The repository CI workflow runs tests on Linux, macOS, and Windows with PHP 8.5. It also builds and smoke-tests the PHAR and a PHPacker standalone Linux binary.

GitHub Action

The composite GitHub Action downloads a pinned release PHAR, verifies its SHA-256 checksum, and runs CI diagnostics:

The Action metadata is prepared for GitHub Marketplace publishing with branding and explicit input descriptions. Always pin both the Action ref and the version input. The Action does not use latest.

Baselines

Baselines let an existing project acknowledge current warnings and errors while continuing to fail CI for new findings:

Baseline fingerprints use issue code, module, normalized file path, and key. They do not depend on messages or line numbers. Suppressed findings remain visible in table, JSON, and SARIF output, but they do not affect status or exit code. Only warnings and errors are written. Use --baseline-report to show active, suppressed, and resolved fingerprint counts. Use --force to intentionally replace an existing baseline after review.

Configuration

DevDoctor reads devdoctor.yml for env rules:

Use a different config file with:

Generate an initial configuration with the interactive wizard:

The wizard detects supported env files and project presets, previews the YAML, and writes only after confirmation. It never copies environment values into the generated file. Existing files require --force and a second confirmation. In CI or --no-interaction mode, use --dry-run.

Exit Codes

Stable Contracts

Documentation

Full static documentation lives in changelog, and pinned CI examples for GitHub Actions, GitLab CI, and Bitbucket Pipelines.

Regenerate the human-readable issue code catalog after changing schemas/v1/issue-codes.json:

Safety

DevDoctor is read-only by default:

Release Verification

Tagged releases publish devdoctor.phar, PHPacker standalone binaries, SHA-256 checksums, Cosign signatures, and Sigstore certificates.

Standalone release assets:

Verify the PHAR checksum before running a downloaded PHAR:

Verify every executable release asset with the combined checksum file:

Verify the keyless signature with Cosign:

Homebrew

DevDoctor is available from the rtcoder/tap Homebrew tap:

The Homebrew formula installs the platform-specific standalone release binary for macOS or Linux. It does not execute the PHAR through the local php binary, so devdoctor --version works even when the system php points at an older runtime.

The release workflow can update rtcoder/homebrew-tap after each tag when the repository secret HOMEBREW_TAP_TOKEN is configured with write access to the tap.

If the token was added after a release, run the Update Homebrew Tap workflow manually from GitHub Actions and pass the release version, for example 1.48.0 or v1.48.0. The workflow downloads devdoctor.sha256 from the GitHub Release and updates Formula/devdoctor.rb in rtcoder/homebrew-tap.

Development

Update release version pins with:

The helper updates extra.devdoctor.version, Action examples, documentation pins, CI examples, pinned test expectations, and composer.lock. Use --no-lock only when you intentionally want to skip the Composer lock refresh.

Roadmap

See ROADMAP.md for the implementation roadmap and later distribution work.


All versions of devdoctor with dependencies

PHP Build Version
Package Version
Requires php Version ^8.5
laravel-zero/framework Version ^12.0.2
symfony/yaml Version ^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package rtcoder/devdoctor contains the following files

Loading the files please wait ...