loading…
Search for a command to run...
loading…
An open-source local MCP server for macOS that provides desktop control tools (click, type, scroll, etc.) callable from any MCP-aware client.
An open-source local MCP server for macOS that provides desktop control tools (click, type, scroll, etc.) callable from any MCP-aware client.
npm i -g @openara/cli && openara
openara install-claude-mcp
Writes mcpServers.openara into both ~/.claude.json (Claude Code) and ~/Library/Application Support/Claude/claude_desktop_config.json (Claude Desktop).
openara install-cursor-mcp
Writes mcpServers.openara into ~/.cursor/mcp.json.
openara install-codex-mcp
Writes [mcp_servers.openara] into ~/.codex/config.toml.
openara install-codex-plugin
Installs OpenAra as a Codex plugin (manifest under plugins/openara/).
openara install-gemini-mcp # current project (./.gemini/settings.json)
openara install-gemini-mcp --scope user # global (~/.gemini/settings.json)
openara install-opencode-mcp
Writes mcpServers.openara into ~/.config/opencode/opencode.json.
list_apps, get_app_state, click, type_text, press_key, set_value, scroll, drag, perform_secondary_action) callable from any MCP-aware client.If your agent doesn't have an installer above, or you want to see exactly what's being written, here are the raw configs.
Add to your project's .claude.json (or ~/.claude.json for global):
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
Add to ~/.cursor/mcp.json (or <project>/.cursor/mcp.json for project-scoped):
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
Add to ~/.codex/config.toml:
[mcp_servers.openara]
command = "openara"
args = ["mcp"]
OpenAra ships as a Codex plugin under plugins/openara/. From a packaged release run openara install-codex-plugin. From source, point Codex App's local plugin marketplace at this repo's .agents/plugins/marketplace.json.
Add to ./.gemini/settings.json for the current project, or ~/.gemini/settings.json for global use:
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
Add to ~/.config/opencode/opencode.json:
{
"mcpServers": {
"openara": {
"command": "openara",
"args": ["mcp"]
}
}
}
OpenAra needs Accessibility and Screen Recording to read window state and drive UI. The first run launches an onboarding window that takes you through granting both. To re-check at any time:
openara doctor
openara # first-run onboarding / no-op once granted
openara mcp # stdio MCP server
openara call list_apps # one tool, prints MCP-style JSON
openara call get_app_state --args '{"app":"TextEdit"}'
openara call --calls '[{"tool":"get_app_state","args":{"app":"TextEdit"}}]'
openara call --calls-file examples/textedit-overlay-seq.json --sleep 0.5
openara doctor # permissions check
openara install-claude-mcp # write Claude Code + Claude Desktop config
openara install-cursor-mcp # write Cursor config
openara install-codex-mcp # write Codex CLI config
openara install-codex-plugin # install as Codex plugin
openara install-gemini-mcp [--scope user] # write Gemini CLI config
openara install-opencode-mcp # write OpenCode config
openara -h
For contributors, or while the npm package is still being prepared:
git clone https://github.com/Aradotso/OpenAra.git
cd OpenAra
# Build everything (kit + apps + smoke suite)
swift build -c release
# Run the binary directly
.build/release/OpenAra -h
You can also run through Swift Package Manager during development. Anywhere this README says openara <command>, substitute swift run OpenAra <command> from inside the repo:
swift run OpenAra -h
swift run OpenAra mcp # start the stdio MCP server
swift run OpenAra call list_apps # call a single tool
swift run OpenAra doctor # check macOS permissions
swift run OpenAra install-claude-mcp # write Claude Code config
MIT — forked from iFurySt/open-codex-computer-use.
Run in your terminal:
claude mcp add openara -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.