Yanked
This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.2.0 instead.
scapkit_computer_use
跨平台桌面自动化 Python 库,提供屏幕截图、鼠标控制、键盘输入和剪贴板操作。
当前支持 macOS,Windows 支持开发中。
安装
需要 Python >= 3.11,使用 uv 管理项目:
uv sync
uv run setup.py build_ext --inplace
权限
macOS 下需要授予以下系统权限:
- 辅助功能 (Accessibility):鼠标、键盘控制
- 屏幕录制 (Screen Recording):屏幕截图
from scapkit_computer_use import check_permission, open_permission_settings
if not check_permission("Accessibility"):
await open_permission_settings("Accessibility")
功能
显示器信息
所有坐标和尺寸均使用 point(逻辑分辨率),而非物理像素。物理像素 = point × scale_factor。API 中的所有位置参数(鼠标移动、点击等)同样使用 point 坐标。
from scapkit_computer_use import list_displays
displays = list_displays()
# [{"id": 2, "x": 0.0, "y": 0.0, "width": 1920.0, "height": 1080.0, "scale_factor": 2.0, "is_main": True}]
# width/height 为 point 单位,实际物理像素为 1920×2 = 3840, 1080×2 = 2160
鼠标控制
from scapkit_computer_use import (
get_mouse_position, move_mouse, mouse_click, mouse_scroll, mouse_drag
)
# 获取当前位置
pos = get_mouse_position() # {"x": 100, "y": 200}
# 平滑移动
await move_mouse({"x": 500, "y": 300})
# 瞬间移动
await move_mouse({"x": 500, "y": 300}, smooth=False)
# 点击
await mouse_click("left")
await mouse_click("right")
# 滚动(方向为内容移动方向)
await mouse_scroll("down", 3)
await mouse_scroll("up", 3)
# 拖拽到目标位置
await mouse_drag({"x": 800, "y": 600})
键盘输入
使用跨平台的按键名称,无需关心底层键码:
from scapkit_computer_use import keyboard_click, key_combo
# 按下并释放一个键
await keyboard_click("a")
await keyboard_click("return")
# 组合键
await key_combo("c", ["command"]) # Cmd+C 复制
await key_combo("v", ["command"]) # Cmd+V 粘贴
await key_combo("z", ["command", "shift"]) # Cmd+Shift+Z 重做
支持的按键名称包括:a-z、0-9、return、tab、space、delete、escape、f1-f20、up/down/left/right 等。完整列表见 screen_capture_kit/keys.py。
剪贴板
from scapkit_computer_use import set_clipboard, get_clipboard, clipboard_paste
await set_clipboard("你好世界")
text = await get_clipboard() # "你好世界"
# 直接粘贴到当前输入框(模拟 Cmd+V)
await clipboard_paste()
屏幕截图
基于 macOS ScreenCaptureKit,支持全分辨率 Retina 截图:
from scapkit_computer_use import (
list_displays, start_capture, stop_capture,
current_frame_jpg, current_frame_bgra
)
displays = list_displays()
main = next(d for d in displays if d["is_main"])
# 启动截图流
handle = await start_capture(main["id"])
# 获取 JPEG 格式(可设置质量 0-100)
jpg_bytes = await current_frame_jpg(handle, quality=80)
# 获取原始 BGRA 像素数据
frame = await current_frame_bgra(handle)
# {"data": bytes, "width": 3840, "height": 2160, "bytes_per_row": 15360}
# 停止截图
await stop_capture(handle)
开发
# 构建 C 扩展
uv run setup.py build_ext --inplace
# 运行测试
uv run pytest tests/test_mouse.py -v -s
许可证
MIT
Release files for scapkit-computer-use 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scapkit_computer_use-0.0.1.tar.gz | 15.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scapkit_computer_use-0.0.1-cp314-cp314-macosx_26_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 26.0+ ARM64 | Details |
Total release size: 38.3 kB
Release files / scapkit_computer_use-0.0.1.tar.gz
| Download URL | scapkit_computer_use-0.0.1.tar.gz |
|---|---|
| Size | 15.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9be47f4fb3894f5bd9e8796aa0cace4aae095faa0d4706dc593b5b53af38d399
|
|
BLAKE2b-256 checksum How to use checksums |
91a0a13144fed0b3b9367cedd34c534b6efede3d5f8173946bbe02636f887e7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / scapkit_computer_use-0.0.1-cp314-cp314-macosx_26_0_arm64.whl
| Download URL | scapkit_computer_use-0.0.1-cp314-cp314-macosx_26_0_arm64.whl |
|---|---|
| Size | 22.9 kB |
| Tags | CPython 3.14 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4f02b766525644ce0b7454670ea86f4a55b4a9c55a804d34baf885722368da84
|
|
BLAKE2b-256 checksum How to use checksums |
15fa0a50050cd584b87e26384545bae604a35740aa5644d6d712f118545f2362
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|