Skip to content

Repository files navigation

RecEasy

Screenshot-like screen recording for Windows — select a rectangle or draw a freeform region, then record only what matters.

简体中文 | English

RecEasy is a lightweight, tray-based screen recorder designed for both people and AI agents. A user can start a recording with a global hotkey or the tray menu, while an agent can control the exact same workflow through CLI commands, MCP tools, or the included Skill.

RecEasy recording workflow demo

Demo shown in English; switch instantly to Simplified Chinese in Settings.

Highlights

  • Fullscreen, rectangle, and hand-drawn freeform recording
  • Foreground-aware CSRT target tracking with full-screen reacquisition
  • System audio recording and optional microphone mixing
  • Draggable radial desktop controller plus a system tray menu
  • Visible, draggable recording boundaries excluded from the captured video
  • Automatic logical-to-physical DPI conversion for correctly aligned capture
  • Switchable Simplified Chinese / English interface, configurable global hotkeys, output directory, and 15–60 FPS
  • Safe post-recording rename, folder access, or discard to the Recycle Bin
  • Background FFmpeg encoding without a console window
  • JSON CLI, MCP server, and reusable Agent Skill

Interaction

RecEasy runs in the system tray and exposes a draggable six-segment radial controller: Fullscreen, Rectangle, Freeform, Tracking, Stop, and Settings. Drag its center to move it; click the small × to hide it and use Show radial controller from the tray to restore it.

Radial controller

RecEasy six-segment radial recording controller

Segment Action
Fullscreen Start recording the primary display immediately
Rectangle Drag a rectangular capture area
Freeform Draw an irregular capture boundary
Tracking Select a visual target and follow its movement
Stop Finalize the active recording
Settings Configure hotkeys, output directory, and FPS

The center shows recording time and acts as the drag handle. The small × hides the controller without quitting RecEasy.

  1. Choose a recording mode from the radial controller, tray, CLI, or MCP.
  2. Fullscreen starts immediately. Rectangle, freeform, and tracking modes ask the user to draw a region; press Esc to cancel.
  3. RecEasy prepares FFmpeg and capture first, then shows the red boundary when recording has genuinely started.
  4. Drag the recording handle to move the capture area. Tracking mode extracts the foreground subject, follows it with CSRT, and searches the full desktop to reacquire it when temporarily lost.
  5. Stop from the configured hotkey, radial controller, tray, CLI, or MCP.
  6. Rename the MP4, keep its timestamp name, or move an unwanted recording to the Recycle Bin.

Default hotkeys:

Action Hotkey
Rectangle capture Ctrl+Shift+1
Freeform capture Ctrl+Shift+2
Stop recording Ctrl+Shift+0
Cancel selection Esc

Requirements

  • Windows 10 or Windows 11
  • Python 3.11 or later
  • FFmpeg available through PATH

Installation

Clone the project and install it in editable mode:

git clone https://github.com/XiuxianCoder/RecEasy.git
cd RecEasy
uv sync --extra mcp --extra dev

Verify FFmpeg:

ffmpeg -version

Start the desktop application:

uv run receasy

RecEasy will continue running in the system tray.

Settings and data

Open RecEasy tray icon → Settings to configure:

  • Interface language: Simplified Chinese or English
  • Rectangle capture hotkey
  • Freeform capture hotkey
  • Stop hotkey
  • Recording output directory
  • Frame rate: 15, 24, 30, or 60 FPS
  • System audio and microphone capture

The default Windows locations are:

Recordings: %LOCALAPPDATA%\RecEasy\recordings
Config:     %LOCALAPPDATA%\RecEasy\config.json

The recording directory is created automatically when it is first needed.

CLI

The desktop application must be running because the CLI talks to its local control service. Prefix commands with uv run when the environment is not activated.

# Recorder state
receasy-cli status

# Open an interactive selector and begin recording after selection
receasy-cli select fullscreen
receasy-cli select rectangle
receasy-cli select freeform
receasy-cli select tracking

# Finalize the active recording
receasy-cli stop
receasy-cli tracking off
receasy-cli tracking on
receasy-cli discard-last

# Settings
receasy-cli show-settings
receasy-cli show-toolbar
receasy-cli hide-toolbar
receasy-cli open-output-directory
receasy-cli rename-last "Product demo"
receasy-cli get-settings
receasy-cli set-setting rectangle_hotkey "Ctrl+Alt+R"
receasy-cli set-setting freeform_hotkey "Ctrl+Alt+F"
receasy-cli set-setting stop_hotkey "Ctrl+Alt+S"
receasy-cli set-setting output_dir "D:\Recordings"
receasy-cli set-setting fps 60
receasy-cli set-setting language en
receasy-cli set-setting record_system_audio true
receasy-cli set-setting record_microphone true

Commands return JSON, which makes them convenient for scripts and agents.

MCP server

Start the stdio MCP server with:

receasy-mcp

Example MCP client configuration:

{
  "mcpServers": {
    "receasy": {
      "command": "receasy-mcp"
    }
  }
}

If the executable is not visible to your MCP client, use the environment's full executable path or run the module through the same Python environment used to install RecEasy.

MCP tools

Tool Purpose
get_recorder_status Check selection/recording state and the latest output path
select_recording_region Open rectangle or freeform selection
stop_recording Stop and finalize the recording
open_recording_directory Open the configured output folder
rename_last_recording Rename the latest completed MP4
show_recorder_settings Open the graphical settings window
get_recorder_settings Read hotkeys, output directory, and FPS
update_recorder_settings Update one or more settings

Region selection remains interactive: the agent requests a selection mode, and the user chooses what is safe to capture.

Agent Skill

The included Skill is located at skills/receasy/SKILL.md. It tells an agent to:

  • inspect recorder state before starting;
  • avoid overlapping recording sessions;
  • let the user draw sensitive on-screen boundaries;
  • stop and verify the output path;
  • use MCP first and fall back to CLI when necessary.

Copy or link the skills/receasy directory into the Skill location supported by your agent platform.

Architecture

Tray / Hotkeys ─┐
CLI ────────────┼─> Local control service ─> Mode / DPI mapping ─> Capture / Tracking ─> FFmpeg ─> MP4
MCP / Skill ────┘

The tray, CLI, and MCP layers share one recording implementation, so automation behaves consistently with manual use.

Current limitations

  • System audio is enabled by default. Microphone capture is optional and can be enabled in Settings or from the CLI/MCP interface.
  • Target tracking works best when the selected subject has a distinctive appearance and remains at least partly visible.
  • Standard MP4 video has a rectangular canvas. Freeform capture records the region's bounding box and masks pixels outside the drawn shape.
  • Per-monitor DPI conversion is automatic; selections spanning monitors with different DPI values still require broader hardware testing.
  • Only one selection or recording session can be active at a time.

Roadmap

  • Pause and resume
  • Cursor and click visualization
  • Transparent WebM output for irregular regions
  • Packaged Windows installer and startup option
  • Automated tests across multi-monitor and mixed-DPI setups

Contributing

Issues, bug reports, documentation improvements, and pull requests are welcome. For capture bugs, please include your Windows version, display layout, DPI scaling, selected mode, and relevant logs—without sharing sensitive screen content.

License

RecEasy is released under the MIT License.


If RecEasy saves you a few clicks—or gives your agent a pair of recording hands—please consider leaving a ⭐. Stars are tiny, but they make open-source maintainers suspiciously happy.

About

一款实用简单的录频工具

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages