agentic-emulator 0.1.1 → 0.2.0

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.
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # agentic-emulator (`agemu`)
2
2
 
3
- An agent-first runtime for the Android emulator and the iOS Simulator on Apple Silicon Macs. LLM
3
+ An agent-first runtime for the Android emulator (macOS, Linux, Windows) and the iOS Simulator
4
+ (Apple Silicon Macs). LLM
4
5
  agents drive headless devices through a CLI or an MCP server: screenshots, the UI tree, taps,
5
6
  typing, apps, test capabilities, logs and crashes, in milliseconds instead of the hundreds of
6
7
  milliseconds to seconds `adb`, `simctl` and Maestro take.
@@ -11,11 +12,14 @@ npm install -g agentic-emulator # or the `agemu` C
11
12
  agemu doctor # checks Xcode and the Android SDK
12
13
  ```
13
14
 
14
- It needs an Apple Silicon Mac, and Xcode with an iOS Simulator runtime or the Android SDK with
15
- the emulator. `agemu doctor` says what is missing and prints the commands that install it.
15
+ iOS needs an Apple Silicon Mac with Xcode and an iOS Simulator runtime. Android needs the
16
+ Android SDK with the emulator, on an Apple Silicon Mac, on Linux (x86-64, arm64) with KVM or on
17
+ Windows (x86-64) with WHPX. `agemu doctor` says what is missing and prints the commands that
18
+ install it.
16
19
 
17
- The package holds three native binaries (`agemu`, the `agemud` daemon it starts, and the iOS
18
- helper); there is no Node code and no install script.
20
+ The package holds native binaries for each of those platforms (`agemu`, the `agemud` daemon it
21
+ starts, and on macOS the iOS helper) and a small Node launcher that runs the ones for this
22
+ computer. There is no install script.
19
23
 
20
24
  Documentation, measurements and source:
21
25
  [github.com/piotr-graczyk-dev/agentic-emulator](https://github.com/piotr-graczyk-dev/agentic-emulator).
package/bin/agemu.js ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ // Runs the agemu binary built for this computer. The package holds one set of native binaries
3
+ // per supported platform under platforms/<os>-<cpu>/; agemu starts the agemud daemon that sits
4
+ // next to it. There is no install script: this launcher picks the binary at each run.
5
+ "use strict";
6
+
7
+ const { spawn } = require("child_process");
8
+ const fs = require("fs");
9
+ const path = require("path");
10
+
11
+ const key = `${process.platform}-${process.arch}`;
12
+ const supported = {
13
+ "darwin-arm64": "macOS on Apple Silicon (iOS and Android)",
14
+ "linux-x64": "Linux on x86-64 (Android)",
15
+ "linux-arm64": "Linux on arm64 (Android)",
16
+ "win32-x64": "Windows on x86-64 (Android)",
17
+ };
18
+ const exe = path.join(__dirname, "..", "platforms", key, process.platform === "win32" ? "agemu.exe" : "agemu");
19
+
20
+ if (!supported[key] || !fs.existsSync(exe)) {
21
+ const list = Object.values(supported).map((s) => ` - ${s}`).join("\n");
22
+ process.stderr.write(`agemu: no build for ${key} in this package. agemu runs on:\n${list}\n`);
23
+ process.exit(1);
24
+ }
25
+
26
+ const child = spawn(exe, process.argv.slice(2), { stdio: "inherit", windowsHide: true });
27
+
28
+ // Pass on the signals a terminal or an MCP client sends, so agemu shuts down cleanly.
29
+ for (const sig of ["SIGINT", "SIGTERM", "SIGHUP"]) {
30
+ process.on(sig, () => {
31
+ try {
32
+ child.kill(sig);
33
+ } catch (_) {
34
+ // already gone
35
+ }
36
+ });
37
+ }
38
+
39
+ child.on("error", (err) => {
40
+ process.stderr.write(`agemu: could not run ${exe}: ${err.message}\n`);
41
+ process.exit(1);
42
+ });
43
+
44
+ child.on("exit", (code, signal) => {
45
+ if (signal) {
46
+ process.removeAllListeners(signal);
47
+ process.kill(process.pid, signal);
48
+ return;
49
+ }
50
+ process.exit(code === null ? 1 : code);
51
+ });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentic-emulator",
3
- "version": "0.1.1",
4
- "description": "Agent-first runtime for the Android emulator and the iOS Simulator on Apple Silicon Macs: a CLI and MCP server with millisecond screenshots, UI trees and taps.",
3
+ "version": "0.2.0",
4
+ "description": "Agent-first runtime for the Android emulator (macOS, Linux, Windows) and the iOS Simulator (Apple Silicon Macs): a CLI and MCP server with millisecond screenshots, UI trees and taps.",
5
5
  "keywords": [
6
6
  "mcp",
7
7
  "mcp-server",
@@ -21,16 +21,20 @@
21
21
  "license": "MIT",
22
22
  "author": "Piotr Graczyk",
23
23
  "os": [
24
- "darwin"
24
+ "darwin",
25
+ "linux",
26
+ "win32"
25
27
  ],
26
28
  "cpu": [
27
- "arm64"
29
+ "arm64",
30
+ "x64"
28
31
  ],
29
32
  "bin": {
30
- "agemu": "bin/agemu"
33
+ "agemu": "bin/agemu.js"
31
34
  },
32
35
  "files": [
33
36
  "bin/",
37
+ "platforms/",
34
38
  "THIRD_PARTY_NOTICES.md"
35
39
  ]
36
40
  }
index 86e7fbf..cb57837 100755
Binary file
index 84a7f0d..c93dfc6 100755
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file