extra-desktop 0.3.0__tar.gz → 0.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {extra_desktop-0.3.0/extra_desktop.egg-info → extra_desktop-0.3.2}/PKG-INFO +33 -18
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/README.md +27 -16
- extra_desktop-0.3.2/__init__.py +5 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/cli.py +339 -7
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/__init__.py +18 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/composer/__init__.py +10 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/composer/blueprint.py +95 -0
- extra_desktop-0.3.2/core/composer/lineage.py +352 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/composer/verifier.py +26 -2
- extra_desktop-0.3.2/core/distiller.py +603 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/evolution/__init__.py +10 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/evolution/analyzer.py +5 -1
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/evolution/crystallizer.py +75 -3
- extra_desktop-0.3.2/core/evolution/harness_generator.py +1092 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/memory/__init__.py +10 -1
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/memory/db.py +19 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/memory/ingest.py +68 -5
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/memory/recall.py +132 -28
- extra_desktop-0.3.2/core/metrics/__init__.py +42 -0
- extra_desktop-0.3.2/core/metrics/auditor.py +269 -0
- extra_desktop-0.3.2/core/metrics/config.py +147 -0
- extra_desktop-0.3.2/core/metrics/dashboard.py +981 -0
- extra_desktop-0.3.2/core/metrics/ledger.py +503 -0
- extra_desktop-0.3.2/core/metrics/sanitizer.py +141 -0
- extra_desktop-0.3.2/core/metrics/telemetry.py +248 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/motion/stroke.py +2 -2
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/__init__.py +56 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/base.py +22 -4
- extra_desktop-0.3.2/core/platform/linux/__init__.py +204 -0
- extra_desktop-0.3.2/core/platform/linux/atspi_plane.py +646 -0
- extra_desktop-0.3.2/core/platform/linux/capture.py +231 -0
- extra_desktop-0.3.2/core/platform/linux/focus.py +634 -0
- extra_desktop-0.3.2/core/platform/linux/geometry.py +351 -0
- extra_desktop-0.3.2/core/platform/linux/indicators.py +414 -0
- extra_desktop-0.3.2/core/platform/linux/input_engine.py +1643 -0
- extra_desktop-0.3.2/core/platform/linux/permissions.py +146 -0
- extra_desktop-0.3.2/core/platform/linux/shell.py +704 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/input_engine.py +224 -11
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/shell.py +9 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/__init__.py +24 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/capture.py +9 -0
- extra_desktop-0.3.2/core/platform/windows/child_session.py +437 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/focus.py +186 -30
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/geometry.py +16 -2
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/indicators.py +124 -26
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/input_engine.py +464 -40
- extra_desktop-0.3.2/core/platform/windows/pip_window.py +394 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/shell.py +99 -15
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/windows/uia_plane.py +54 -5
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/scout/detector.py +32 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/scout/session_vault.py +11 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/scout/synthesizer.py +11 -1
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/__init__.py +22 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/eyes.py +90 -27
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/schemas.py +28 -0
- extra_desktop-0.3.2/core/soul/state_critic.py +319 -0
- extra_desktop-0.3.2/core/soul/vision_parser.py +532 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/stall_breaker.py +69 -9
- extra_desktop-0.3.2/core/subtask.py +467 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2/extra_desktop.egg-info}/PKG-INFO +33 -18
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/extra_desktop.egg-info/SOURCES.txt +85 -1
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/extra_desktop.egg-info/requires.txt +6 -0
- extra_desktop-0.3.2/fastpath/__init__.py +74 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/fastpath/bridge.py +113 -4
- extra_desktop-0.3.2/fastpath/cli_harness.py +390 -0
- extra_desktop-0.3.2/fastpath/cli_hub.py +351 -0
- extra_desktop-0.3.2/fastpath/clipboard_html.py +52 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/fastpath/fs.py +104 -5
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/fastpath/shell.py +10 -0
- extra_desktop-0.3.2/fastpath/vectorizer.py +362 -0
- extra_desktop-0.3.2/fastpath/visualizer.py +236 -0
- extra_desktop-0.3.2/fastpath/web_workspace.py +245 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/mcp/server.py +950 -52
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/pyproject.toml +12 -2
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_acceleration_suite.py +95 -3
- extra_desktop-0.3.2/tests/test_bridge_sandbox.py +100 -0
- extra_desktop-0.3.2/tests/test_canvas_stall_breaker.py +104 -0
- extra_desktop-0.3.2/tests/test_child_session.py +147 -0
- extra_desktop-0.3.2/tests/test_cli_harness.py +396 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_composer_director_soul.py +37 -2
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_dynamic_batching.py +19 -1
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_evolution.py +19 -7
- extra_desktop-0.3.2/tests/test_evolution_harness.py +137 -0
- extra_desktop-0.3.2/tests/test_hierarchical_benchmarks.py +356 -0
- extra_desktop-0.3.2/tests/test_launch_maximize.py +105 -0
- extra_desktop-0.3.2/tests/test_lineage.py +110 -0
- extra_desktop-0.3.2/tests/test_linux_atspi.py +163 -0
- extra_desktop-0.3.2/tests/test_linux_capture.py +54 -0
- extra_desktop-0.3.2/tests/test_linux_focus.py +138 -0
- extra_desktop-0.3.2/tests/test_linux_geometry.py +101 -0
- extra_desktop-0.3.2/tests/test_linux_indicators.py +211 -0
- extra_desktop-0.3.2/tests/test_linux_input.py +186 -0
- extra_desktop-0.3.2/tests/test_linux_shell.py +221 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_memory_kuzu.py +75 -0
- extra_desktop-0.3.2/tests/test_metrics.py +427 -0
- extra_desktop-0.3.2/tests/test_milestone_budgeting.py +167 -0
- extra_desktop-0.3.2/tests/test_paint_remediation.py +213 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_pillar5_package_ecosystem.py +7 -1
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_scout.py +21 -0
- extra_desktop-0.3.2/tests/test_security_hardening.py +128 -0
- extra_desktop-0.3.2/tests/test_state_critic.py +146 -0
- extra_desktop-0.3.2/tests/test_subtask_runner.py +379 -0
- extra_desktop-0.3.2/tests/test_telemetry.py +165 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_tiered_verification.py +5 -5
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_tiered_verification_benchmarks.py +1 -1
- extra_desktop-0.3.2/tests/test_ui_distiller.py +272 -0
- extra_desktop-0.3.2/tests/test_verification_mcp.py +130 -0
- extra_desktop-0.3.2/tests/test_vision_parser.py +186 -0
- extra_desktop-0.3.2/tests/test_web_workspace.py +134 -0
- extra_desktop-0.3.2/tests/test_windows_indicators.py +173 -0
- extra_desktop-0.3.0/__init__.py +0 -5
- extra_desktop-0.3.0/fastpath/__init__.py +0 -28
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/LICENSE +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/NOTICE +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/capture.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/composer/folding.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/evolution/api_synthesizer.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/evolution/curator.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/focus.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/geometry.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/indicators.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/input_engine.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/memory/embeddings.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/motion/__init__.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/motion/curves.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/motion/profiler.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/motion/windmouse.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/__init__.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/ax_plane.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/capture.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/focus.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/geometry.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/indicators.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/platform/macos/permissions.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/scout/__init__.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/scout/cdp_sniffer.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/scout/scraper.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/compressor.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/critic.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/decider.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/gateman.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/grammar.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/soul/runtime.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/uia_plane.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/core/uninstall.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/extra_desktop.egg-info/dependency_links.txt +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/extra_desktop.egg-info/entry_points.txt +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/extra_desktop.egg-info/top_level.txt +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/fastpath/browser.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/fastpath/web/__init__.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/mcp/__init__.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/setup.cfg +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_app_registry_dynamic.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_core_engine.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_geometry_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_human_mouse.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_input_engine_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_issue4_bottlenecks.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_macos_ax.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_macos_core.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_macos_focus_shell.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_macos_indicators.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_macos_input.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_macos_perception.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_macos_safety.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_mcp_schemas_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_memory_subsystem_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_perception_vision_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_pillar1_funnel.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_pillar2_installer.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_pillar3_tcc_playbook.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_pillar4_web_edge.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_pre_release_fixes.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_process_shell_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_scout_evolution_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_soul_benchmarks.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_soul_evolution.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_soul_runtime.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_stall_breaker_cognitive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_stall_breaker_exhaustive.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_uninstall.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_universal_tasksuite.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_visual_grounding.py +0 -0
- {extra_desktop-0.3.0 → extra_desktop-0.3.2}/tests/test_web_to_api.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: extra-desktop
|
|
3
|
-
Version: 0.3.
|
|
4
|
-
Summary: Flashless Windows & macOS Computer-Use Engine & Model Context Protocol (MCP) Server
|
|
3
|
+
Version: 0.3.2
|
|
4
|
+
Summary: Flashless Linux, Windows & macOS Computer-Use Engine & Model Context Protocol (MCP) Server
|
|
5
5
|
Author-email: AIYantra Engineering Team <engineering@yantraos.com>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://extra.yantraos.com
|
|
@@ -20,6 +20,7 @@ Requires-Dist: numpy>=1.26.0
|
|
|
20
20
|
Requires-Dist: psutil>=6.0.0
|
|
21
21
|
Requires-Dist: kuzu>=0.11.0
|
|
22
22
|
Requires-Dist: fastembed>=0.8.0
|
|
23
|
+
Requires-Dist: onnxruntime>=1.19.0
|
|
23
24
|
Requires-Dist: pywin32>=306; sys_platform == "win32"
|
|
24
25
|
Requires-Dist: comtypes>=1.4.0; sys_platform == "win32"
|
|
25
26
|
Requires-Dist: mss>=9.0.1; sys_platform == "win32"
|
|
@@ -28,6 +29,9 @@ Requires-Dist: pyobjc-framework-Cocoa>=10.0; sys_platform == "darwin"
|
|
|
28
29
|
Requires-Dist: pyobjc-framework-Quartz>=10.0; sys_platform == "darwin"
|
|
29
30
|
Requires-Dist: pyobjc-framework-ApplicationServices>=10.0; sys_platform == "darwin"
|
|
30
31
|
Requires-Dist: pyobjc-framework-ScreenCaptureKit>=10.0; sys_platform == "darwin"
|
|
32
|
+
Requires-Dist: evdev>=1.7.0; sys_platform == "linux"
|
|
33
|
+
Requires-Dist: mss>=9.0.1; sys_platform == "linux"
|
|
34
|
+
Requires-Dist: jeepney>=0.8.0; sys_platform == "linux"
|
|
31
35
|
Dynamic: license-file
|
|
32
36
|
|
|
33
37
|
<div align="center">
|
|
@@ -38,24 +42,25 @@ Dynamic: license-file
|
|
|
38
42
|
|
|
39
43
|
# Extra
|
|
40
44
|
|
|
41
|
-
### The Open-Source Astra 6 for your Mac &
|
|
42
|
-
**Your AI can see, click, type, navigate, and get real work done on macOS & Windows.**
|
|
45
|
+
### The Open-Source Astra 6 for your Linux PC, Mac & Windows
|
|
46
|
+
**Your AI can see, click, type, navigate, and get real work done on Linux, macOS & Windows.**
|
|
43
47
|
|
|
44
48
|
<!-- mcp-name: io.github.AIYantra/extra -->
|
|
45
49
|
|
|
50
|
+
[](https://pepy.tech/projects/extra-desktop)
|
|
46
51
|
[](LICENSE)
|
|
47
|
-
[](https://extra.yantraos.com)
|
|
48
53
|
[](https://modelcontextprotocol.io)
|
|
49
54
|
[](https://yantraos.com)
|
|
50
55
|
[](https://github.com/AIYantra/extra)
|
|
51
56
|
|
|
52
|
-
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
57
|
+
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [Linux Guide](README_LINUX.md) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
53
58
|
|
|
54
59
|
<br/>
|
|
55
60
|
<br/>
|
|
56
61
|
|
|
57
62
|
<a href="https://extra.yantraos.com">
|
|
58
|
-
<img src="https://raw.githubusercontent.com/AIYantra/extra/main/assets/
|
|
63
|
+
<img src="https://raw.githubusercontent.com/AIYantra/extra/main/assets/demo.gif" alt="Extra in action — Live Windows desktop automation" width="100%" />
|
|
59
64
|
</a>
|
|
60
65
|
|
|
61
66
|
</div>
|
|
@@ -66,9 +71,9 @@ Dynamic: license-file
|
|
|
66
71
|
|
|
67
72
|
Today's AI assistants can write brilliant essays and code, but they are trapped inside a chat window. When you need them to click a button, open an app, organize your files, or input data into a spreadsheet, they can only give you text instructions.
|
|
68
73
|
|
|
69
|
-
**Extra gives your AI hands and eyes on Windows.**
|
|
74
|
+
**Extra gives your AI hands and eyes on Linux, macOS & Windows.**
|
|
70
75
|
|
|
71
|
-
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your
|
|
76
|
+
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your desktop with high-speed screen vision, pixel-perfect clicking, and instant typing.
|
|
72
77
|
|
|
73
78
|
* **No clunky browser extensions.**
|
|
74
79
|
* **No expensive cloud servers watching your screen.**
|
|
@@ -80,22 +85,27 @@ It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent
|
|
|
80
85
|
|
|
81
86
|
Once Extra is running, you can talk to your AI like a real human assistant sitting at your desk:
|
|
82
87
|
|
|
83
|
-
* 📊 **Spreadsheets & Data:** *"Open Excel, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
88
|
+
* 📊 **Spreadsheets & Data:** *"Open Excel or LibreOffice Calc, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
84
89
|
* 🗂️ **Desktop & File Cleanup:** *"Clean up my messy desktop by moving screenshots into Pictures, PDFs into Documents, and deleting empty folders."*
|
|
85
|
-
* 🌐 **Web Research & Data Entry:** *"Open Chrome, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into
|
|
86
|
-
* ⚙️ **
|
|
87
|
-
* 🎵 **App Control:** *"Launch Spotify, search for low-fi focus beats, and start playing."*
|
|
90
|
+
* 🌐 **Web Research & Data Entry:** *"Open Chrome or Firefox, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into a text note."*
|
|
91
|
+
* ⚙️ **System Administration:** *"Open Settings or terminal, check system updates, and verify service health."*
|
|
92
|
+
* 🎵 **App Control:** *"Launch Spotify or VLC, search for low-fi focus beats, and start playing."*
|
|
88
93
|
|
|
89
94
|
---
|
|
90
95
|
|
|
91
96
|
## ⚡ Quickstart (1 Minute)
|
|
92
97
|
|
|
93
|
-
You can set up Extra in seconds on **macOS
|
|
98
|
+
You can set up Extra in seconds on **Linux**, **macOS**, or **Windows**:
|
|
94
99
|
|
|
95
100
|
### Option A: Ask Your AI To Set It Up (Primary Funnel — Easiest)
|
|
96
101
|
|
|
97
102
|
Copy and paste the single directive for your OS into **Claude Desktop**, **Google Antigravity**, **Cursor**, **Windsurf**, or any MCP agent:
|
|
98
103
|
|
|
104
|
+
* **🐧 For Linux (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
105
|
+
```text
|
|
106
|
+
Setup Extra on my Linux machine: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_LINUX.md so we are ready to use Extra.
|
|
107
|
+
```
|
|
108
|
+
|
|
99
109
|
* **🍏 For macOS (Apple Silicon M1-M4 & Intel):**
|
|
100
110
|
```text
|
|
101
111
|
Setup Extra on my Mac: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_MACOS.md so we are ready to use Extra.
|
|
@@ -113,6 +123,11 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
113
123
|
|
|
114
124
|
### Option B: Run the One-Liner Yourself
|
|
115
125
|
|
|
126
|
+
* **🐧 Linux Terminal (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
127
|
+
```bash
|
|
128
|
+
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
129
|
+
```
|
|
130
|
+
|
|
116
131
|
* **🍏 macOS Terminal:**
|
|
117
132
|
```bash
|
|
118
133
|
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
@@ -124,7 +139,7 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
124
139
|
```
|
|
125
140
|
|
|
126
141
|
The automated installer will:
|
|
127
|
-
* Verify OS architecture (macOS 12.3
|
|
142
|
+
* Verify OS architecture (Linux Wayland/X11, macOS 12.3+, or Windows 10/11 64-bit).
|
|
128
143
|
* Provision isolated Python 3.10+ runtime (`~/.extra/venv`).
|
|
129
144
|
* Auto-configure **Claude Desktop**, **Cursor**, **Windsurf**, and **Antigravity** (`agy`).
|
|
130
145
|
* Run the health diagnostic doctor and present the 1-step starter prompt.
|
|
@@ -134,7 +149,7 @@ The automated installer will:
|
|
|
134
149
|
### Option C: Developer Git Clone
|
|
135
150
|
|
|
136
151
|
```bash
|
|
137
|
-
# macOS:
|
|
152
|
+
# Linux / macOS:
|
|
138
153
|
git clone https://github.com/AIYantra/extra.git ~/.extra/app
|
|
139
154
|
cd ~/.extra/app && ./install.sh
|
|
140
155
|
|
|
@@ -263,8 +278,8 @@ extra/
|
|
|
263
278
|
├── cli.py # CLI runner (extra doctor, test, indicators, run, inspect, snap)
|
|
264
279
|
├── install.ps1 # 1-line PowerShell installer (Windows)
|
|
265
280
|
├── install.sh # 1-line bash installer (macOS)
|
|
266
|
-
├── pyproject.toml # PyPI package manifest (extra-desktop v0.3.
|
|
267
|
-
├── package.json # npm package manifest (@yantraos/extra-desktop v0.3.
|
|
281
|
+
├── pyproject.toml # PyPI package manifest (extra-desktop v0.3.1)
|
|
282
|
+
├── package.json # npm package manifest (@yantraos/extra-desktop v0.3.1)
|
|
268
283
|
├── server.json # Official MCP registry manifest
|
|
269
284
|
├── glama.json # Glama MCP ecosystem manifest
|
|
270
285
|
├── smithery.yaml # Smithery 1-click deployment manifest
|
|
@@ -6,24 +6,25 @@
|
|
|
6
6
|
|
|
7
7
|
# Extra
|
|
8
8
|
|
|
9
|
-
### The Open-Source Astra 6 for your Mac &
|
|
10
|
-
**Your AI can see, click, type, navigate, and get real work done on macOS & Windows.**
|
|
9
|
+
### The Open-Source Astra 6 for your Linux PC, Mac & Windows
|
|
10
|
+
**Your AI can see, click, type, navigate, and get real work done on Linux, macOS & Windows.**
|
|
11
11
|
|
|
12
12
|
<!-- mcp-name: io.github.AIYantra/extra -->
|
|
13
13
|
|
|
14
|
+
[](https://pepy.tech/projects/extra-desktop)
|
|
14
15
|
[](LICENSE)
|
|
15
|
-
[](https://extra.yantraos.com)
|
|
16
17
|
[](https://modelcontextprotocol.io)
|
|
17
18
|
[](https://yantraos.com)
|
|
18
19
|
[](https://github.com/AIYantra/extra)
|
|
19
20
|
|
|
20
|
-
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
21
|
+
[Website](https://extra.yantraos.com) • [Quickstart](#-quickstart-1-minute) • [Linux Guide](README_LINUX.md) • [macOS Guide](README_MACOS.md) • [Architecture](ARCHITECTURE.md) • [License](LICENSE)
|
|
21
22
|
|
|
22
23
|
<br/>
|
|
23
24
|
<br/>
|
|
24
25
|
|
|
25
26
|
<a href="https://extra.yantraos.com">
|
|
26
|
-
<img src="https://raw.githubusercontent.com/AIYantra/extra/main/assets/
|
|
27
|
+
<img src="https://raw.githubusercontent.com/AIYantra/extra/main/assets/demo.gif" alt="Extra in action — Live Windows desktop automation" width="100%" />
|
|
27
28
|
</a>
|
|
28
29
|
|
|
29
30
|
</div>
|
|
@@ -34,9 +35,9 @@
|
|
|
34
35
|
|
|
35
36
|
Today's AI assistants can write brilliant essays and code, but they are trapped inside a chat window. When you need them to click a button, open an app, organize your files, or input data into a spreadsheet, they can only give you text instructions.
|
|
36
37
|
|
|
37
|
-
**Extra gives your AI hands and eyes on Windows.**
|
|
38
|
+
**Extra gives your AI hands and eyes on Linux, macOS & Windows.**
|
|
38
39
|
|
|
39
|
-
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your
|
|
40
|
+
It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent directly to your desktop with high-speed screen vision, pixel-perfect clicking, and instant typing.
|
|
40
41
|
|
|
41
42
|
* **No clunky browser extensions.**
|
|
42
43
|
* **No expensive cloud servers watching your screen.**
|
|
@@ -48,22 +49,27 @@ It connects **Claude, Google Antigravity, Cursor, AGY**, or any autonomous agent
|
|
|
48
49
|
|
|
49
50
|
Once Extra is running, you can talk to your AI like a real human assistant sitting at your desk:
|
|
50
51
|
|
|
51
|
-
* 📊 **Spreadsheets & Data:** *"Open Excel, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
52
|
+
* 📊 **Spreadsheets & Data:** *"Open Excel or LibreOffice Calc, calculate total revenue from the invoice CSVs in my Downloads folder, and create a summary chart."*
|
|
52
53
|
* 🗂️ **Desktop & File Cleanup:** *"Clean up my messy desktop by moving screenshots into Pictures, PDFs into Documents, and deleting empty folders."*
|
|
53
|
-
* 🌐 **Web Research & Data Entry:** *"Open Chrome, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into
|
|
54
|
-
* ⚙️ **
|
|
55
|
-
* 🎵 **App Control:** *"Launch Spotify, search for low-fi focus beats, and start playing."*
|
|
54
|
+
* 🌐 **Web Research & Data Entry:** *"Open Chrome or Firefox, find the top 5 flights to Tokyo under $800, and copy their flight numbers and dates into a text note."*
|
|
55
|
+
* ⚙️ **System Administration:** *"Open Settings or terminal, check system updates, and verify service health."*
|
|
56
|
+
* 🎵 **App Control:** *"Launch Spotify or VLC, search for low-fi focus beats, and start playing."*
|
|
56
57
|
|
|
57
58
|
---
|
|
58
59
|
|
|
59
60
|
## ⚡ Quickstart (1 Minute)
|
|
60
61
|
|
|
61
|
-
You can set up Extra in seconds on **macOS
|
|
62
|
+
You can set up Extra in seconds on **Linux**, **macOS**, or **Windows**:
|
|
62
63
|
|
|
63
64
|
### Option A: Ask Your AI To Set It Up (Primary Funnel — Easiest)
|
|
64
65
|
|
|
65
66
|
Copy and paste the single directive for your OS into **Claude Desktop**, **Google Antigravity**, **Cursor**, **Windsurf**, or any MCP agent:
|
|
66
67
|
|
|
68
|
+
* **🐧 For Linux (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
69
|
+
```text
|
|
70
|
+
Setup Extra on my Linux machine: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_LINUX.md so we are ready to use Extra.
|
|
71
|
+
```
|
|
72
|
+
|
|
67
73
|
* **🍏 For macOS (Apple Silicon M1-M4 & Intel):**
|
|
68
74
|
```text
|
|
69
75
|
Setup Extra on my Mac: In Terminal run 'curl -sSL https://extra.yantraos.com/install.sh | bash', then read and configure ~/.extra/app/STARTER_PROMPT_MACOS.md so we are ready to use Extra.
|
|
@@ -81,6 +87,11 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
81
87
|
|
|
82
88
|
### Option B: Run the One-Liner Yourself
|
|
83
89
|
|
|
90
|
+
* **🐧 Linux Terminal (Arch / yantraOS, Ubuntu, Debian, Fedora):**
|
|
91
|
+
```bash
|
|
92
|
+
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
93
|
+
```
|
|
94
|
+
|
|
84
95
|
* **🍏 macOS Terminal:**
|
|
85
96
|
```bash
|
|
86
97
|
curl -sSL https://extra.yantraos.com/install.sh | bash
|
|
@@ -92,7 +103,7 @@ Your AI will run the installer, configure MCP and local rules, and reply:
|
|
|
92
103
|
```
|
|
93
104
|
|
|
94
105
|
The automated installer will:
|
|
95
|
-
* Verify OS architecture (macOS 12.3
|
|
106
|
+
* Verify OS architecture (Linux Wayland/X11, macOS 12.3+, or Windows 10/11 64-bit).
|
|
96
107
|
* Provision isolated Python 3.10+ runtime (`~/.extra/venv`).
|
|
97
108
|
* Auto-configure **Claude Desktop**, **Cursor**, **Windsurf**, and **Antigravity** (`agy`).
|
|
98
109
|
* Run the health diagnostic doctor and present the 1-step starter prompt.
|
|
@@ -102,7 +113,7 @@ The automated installer will:
|
|
|
102
113
|
### Option C: Developer Git Clone
|
|
103
114
|
|
|
104
115
|
```bash
|
|
105
|
-
# macOS:
|
|
116
|
+
# Linux / macOS:
|
|
106
117
|
git clone https://github.com/AIYantra/extra.git ~/.extra/app
|
|
107
118
|
cd ~/.extra/app && ./install.sh
|
|
108
119
|
|
|
@@ -231,8 +242,8 @@ extra/
|
|
|
231
242
|
├── cli.py # CLI runner (extra doctor, test, indicators, run, inspect, snap)
|
|
232
243
|
├── install.ps1 # 1-line PowerShell installer (Windows)
|
|
233
244
|
├── install.sh # 1-line bash installer (macOS)
|
|
234
|
-
├── pyproject.toml # PyPI package manifest (extra-desktop v0.3.
|
|
235
|
-
├── package.json # npm package manifest (@yantraos/extra-desktop v0.3.
|
|
245
|
+
├── pyproject.toml # PyPI package manifest (extra-desktop v0.3.1)
|
|
246
|
+
├── package.json # npm package manifest (@yantraos/extra-desktop v0.3.1)
|
|
236
247
|
├── server.json # Official MCP registry manifest
|
|
237
248
|
├── glama.json # Glama MCP ecosystem manifest
|
|
238
249
|
├── smithery.yaml # Smithery 1-click deployment manifest
|