Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
C

CapFrameX

> 编程语言
Open source

Frametime capture and analysis tool

1.2K stars0 likes0 views
WebsiteGitHub

About

Frametime capture and analysis tool

CapFrameX

Capture, analyze, and compare game performance on Windows. CapFrameX combines Intel's PresentMon with hardware monitoring, frametime and FPS charts, and configurable overlays.

Version 1.9.0 introduces a refreshed interface, a system information dashboard, a built-in hook-free overlay, expanded GPU telemetry, and lower background polling overhead. The application now runs on .NET 10.

Remark in our own interest

If you are a reviewer or a youtuber using CapFrameX to get your data, it would be nice to mention us and link to our software. If you want to use images of the CapFrameX analysis, you could use the built in screenshot function so that our logo and name gets added to the images.

Sponsorship

CapFrameX is sponsored by Hone. We thank Hone for supporting the project and its continued development.

Release

Download CapFrameX v1.9.0:

The revised packages contain application version 1.9.0.8. The CapFrameX in-game overlay is disabled and its injection components are omitted until our code-signing certificate is available. BENCHLAB monitoring remains available with a separately installed compatible service; the service is no longer bundled.

When replacing an earlier 1.9.0 portable package, extract this revision into a new folder and copy over your Portable data folder if needed. This prevents old hook, Vulkan, or service files from remaining beside the new application.

Package Use
Installer Extract the ZIP and run CapFrameXBootstrapper.exe. Setup installs the application and removes obsolete CapFrameX Vulkan layer registrations.
Portable Extract the complete ZIP and run CapFrameX.exe. Keep portable.json beside it to store settings, captures, and logs in the portable folder.

Install the .NET 10 Desktop Runtime (x64) before running setup or the portable application. The Desktop Runtime is required even if another .NET version or the plain .NET Runtime is already installed.

See the release notes for changes and package checksums, Portable Mode for configuration, and all releases for older versions. Development builds are available from the build archive.

Troubleshooting & Known Issues

The following tips address the most common issues reported by users and can help resolve stability, overlay, and capture-related problems efficiently. We recommend working through them in order if you encounter unexpected behavior.

  1. Ensure you are running the latest version
    Install the latest stable release and its required .NET Desktop Runtime. Version 1.9.0 requires .NET 10 Desktop Runtime (x64); the installer checks for it before proceeding.

  2. Reset application settings
    In some cases, corrupted or outdated configuration files may cause problems. Close CapFrameX, back up your configuration, and rename %appdata%/CapFrameX/Configuration/AppSettings.json
    to let CapFrameX recreate its default settings on the next start. In portable mode, use the configuration folder specified in portable.json instead.

  3. Reset overlay configuration files
    If overlay-related problems persist, close CapFrameX and back up or rename the overlay configuration files located at %appdata%/CapFrameX/Configuration/OverlayEntryConfiguration_(0/1/2).json.
    These files will be recreated automatically on the next application start.

  4. Restore missing or zero-value overlay entries
    When overlay entries are missing or display constant zero values, open the Overlay tab and use the Reset button to restore all overlay entries to a valid default state.

  5. Fix incorrect overlay entry order
    If the order of overlay entries appears inconsistent or unintentionally rearranged, use the Sort button in the Overlay tab to restore a clean and logical ordering.

  6. Resolve frametime anomalies after updates
    Close CapFrameX and any other capture tools before updating. If a capture service remains running after an application has exited, close its leftover PresentMon process before starting a new capture session.

  7. Avoid conflicts with other monitoring tools
    Applications such as HWiNFO or AIDA64 that implement their own FPS or frametime metrics may conflict with CapFrameX’s capture service, as they also rely on PresentMon-based mechanisms. Disabling overlapping FPS or frametime monitoring features in those tools is strongly recommended when using CapFrameX.

Capture frametimes

Configure the capture hotkey, duration, sensor logging, and run history. The process list determines which application is captured.

System information

The Info tab brings together CPU, GPU, memory, and mainboard details with live telemetry and system features such as Resizable BAR, HAGS, and Windows Game Mode.

Overlay

Choose a renderer under Overlay → OSD options:

Renderer Behavior
CapFrameX hook-free Built-in overlay without injecting into the game. This is the default for new configurations and offers an output-display picker and chart refresh control.
CapFrameX in-game (Experimental) Unavailable in v1.9.0. The option remains disabled and will be delivered in a later update once our code-signing certificate is available.
RTSS Uses RivaTuner Statistics Server, which must be installed separately.

Configure individual entries, colors, groups, and three profiles in Overlay items. OSD options include opacity, zoom, placement, a position hotkey, and PresentMon replay buffering. Existing RTSS and hook-free selections are preserved. An earlier in-game selection is migrated to hook-free.

Analysis

Inspect frametimes, FPS, percentiles, stuttering, distributions, and recorded sensor data for an individual capture.

Aggregation

Combine multiple runs using their raw frametimes, with configurable outlier handling. Aggregation is available for recorded captures and directly from the capture run history.

Comparison

Compare captures using bar charts, time series, distributions, and variance views. Select metrics and labels, sort results, and highlight individual series.

Sensor

Choose which available CPU, GPU, memory, and storage sensors to record. Version 1.9.0 adds GPU memory allocation telemetry, NVIDIA memory temperature and estimated bandwidth readings, and AMD Anti-Lag/FLM integration on supported hardware.

Report

Collect selected captures in a table, choose the reported metrics, and display an average row. Copy the results from the context menu to use them in Excel or other tools.

Cloud

Share captures through upload IDs and download shared records for local analysis.

MCP Server (AI integration)

CapFrameX ships an in-process MCP server that lets compatible AI clients read recorded captures, compute statistics, diagnose issues, and query the live system. It also exposes tools to start and stop captures and update application, overlay, and sensor settings. The server runs only while CapFrameX is running and is reachable on http://localhost:/mcp (default port 1337; if taken, CapFrameX falls back to a free port and persists the choice in AppSettings.json).

No additional install. The MCP server is part of CapFrameX.exe.

Setup with Claude Code

  1. Make sure CapFrameX is running.

  2. Look up the active port in %appdata%/CapFrameX/Logs/CapFrameX.log (search for the line MCP endpoint available at http://localhost:/mcp) or open %appdata%/CapFrameX/Configuration/AppSettings.json and read WebservicePort.

  3. Register the server with Claude Code (one-time):

    claude mcp add -s user capframex --transport http http://localhost:/mcp
    
  4. Verify:

    claude mcp list
    

    Expected:

    capframex: http://localhost:/mcp (HTTP) - ✓ Connected
    
  5. In any new Claude Code session, type /mcp to see the server in the active connection list. The tools become available to the model.

If CapFrameX is not running, the connection appears as disconnected. Start CapFrameX and the connection comes back live.

Setup with Claude Desktop

Add this to your claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "capframex": {
      "url": "http://localhost:/mcp"
    }
  }
}

Restart Claude Desktop. The CapFrameX tools appear in the MCP picker.

Available tools

Tool Purpose
cfx_ping Connectivity check (returns pong).
cfx_list_records Lists capture records from the configured directory; optional substring filter on game/process.
cfx_get_record Full metadata of a record (system info, run count, settings).
cfx_search_records Free-text search across game/comment/CPU/GPU/OS/RAM.
cfx_get_metrics FPS metrics (Average, P1, P0.2, Min, Max, AdaptiveStd, …) — single run or all runs.
cfx_compare_records Side-by-side metric table across multiple records with absolute and percentage deltas.
cfx_get_sensor_summary Per-sensor avg/min/max for CPU/GPU/RAM/VRAM channels.
cfx_analyze_bottleneck Classifies a run as cpu-bound, gpu-bound, balanced, thermal-throttling, or power-limited (with confidence + reasoning).
cfx_diagnose_capture Scans recent log entries for capture-related failures. Pattern library: ETW conflicts, anti-cheat, permissions, PresentMon errors, blacklisted processes, etc.
cfx_diagnose_general Same as above but with focus area (capture / sensors / overlay / all).
cfx_get_capture_timeline Chronological capture-related events from the log (hotkey, PresentMon start/stop, session save, errors).
cfx_get_current_system Live system info: CPU, GPU, RAM, OS, motherboard, Resizable BAR (HW + D3D + Vulkan), HAGS, GameMode, PCI BAR sizes.
cfx_get_capture_status Read-only capture state: isCapturing, isLocked, current state (Started, Processing, Stopped, …).

The table above covers analysis and diagnostics. Additional tools include cfx_list_processes, cfx_start_capture, cfx_stop_capture, cfx_get_config, cfx_set_config, cfx_get_overlay_entries, cfx_set_overlay_entry, and cfx_set_logged_sensors. Capture-control and configuration tools change application state; the MCP interface is not read-only.

Example interactions

Ask Claude in natural language. Below are three concrete examples that exercise multiple tools.

1. "Compare my last three Cyberpunk records"

Claude internally calls cfx_search_records with "Cyberpunk", takes the three most recent ids, then calls cfx_compare_records with default metrics (Average, P1, P0.2, Min, Max). Output: a tabular comparison with deltas highlighting which run was best/worst.

2. "Why is the latest Spider-Man 2 capture only at 80 fps?"

Claude calls cfx_list_records filtered by Spider-Man, picks the newest, then calls cfx_get_metrics to confirm the average, cfx_get_sensor_summary to see CPU/GPU load, and cfx_analyze_bottleneck to get a verdict. Typical answer: "GPU load averaged 74 %, CPU max-thread load 82 % — the run is CPU-bound; this is consistent with Spider-Man 2's known DX12 main-thread bottleneck."

3. "My benchmark didn't get recorded. Why?"

Claude calls cfx_diagnose_capture (default 30-min lookback) and cfx_get_capture_timeline. Typical findings: an ET

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C#

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言