From 6bc27b731c64cc4510f4ba621b7871a3c830948a Mon Sep 17 00:00:00 2001 From: Gustav Louv Date: Thu, 1 Oct 2026 23:39:35 +0800 Subject: [PATCH 01/21] docs(forside): ny forside - scenen bag dit vindue, loglinjer som bevis, lys/moerk, mobil Bygget efter design-skillsene fra de gemte Instagram-opslag (Emil Kowalski apple-design og design-eng, Anthropic frontend-design, Corey Haines copywriting og cro, Vercel web interface guidelines), laest - ikke installeret. - Hero: ren CSS-scene, du skriver forrest, agenten udfylder og trykker Export i vinduet bagved, markoeren staar stille, en loglinje lander. Spiller een gang, hviler i slutbilledet, afspil igen uden JS. Reduced motion = slutbilledet. - Loefterne vist som loglinjer i serverens egen form (felter og fejltekster tjekket mod helper/main.swift, policy.js og en rigtig audit.jsonl). - Lys og moerk via prefers-color-scheme, systemskrift (SF Pro/SF Mono), ingen tredjepartskald, intet script ud over ld+json - sidens eget loefte holdes. - Nyt delingsbillede og-forside.jpg (kun forsiden; de andre sider beholder og-image.jpg). - claims 15/18/42c, release.sh-taellingen og sync-tal.py-idempotens bestaar (tjekket statisk). Co-Authored-By: Claude Opus 5.5 --- docs/index.html | 900 ++++++++++++++++++++++++++++++-------------- docs/og-forside.jpg | Bin 0 -> 69512 bytes 2 files changed, 610 insertions(+), 290 deletions(-) create mode 100644 docs/og-forside.jpg diff --git a/docs/index.html b/docs/index.html index 5c966f5..b8ee935 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,349 +5,669 @@ -Computer MCP - computer use you can actually leave running - - - - - +Computer MCP: computer use you can leave running + + + + + + + - + - + - - + + - -
- computermcp - + + +
-
+
- -
macOS · MIT · no account, no API key
-

Computer use you can
actually leave running.

-

It works in the windows behind the one you are using, and leaves your - pointer where you put it. It tells you when something failed instead of carrying on as - if it worked. Several can run at once. Hand it a task, go back to your own work, and - read the log when you feel like it.

-
npx @agent360/computer-mcp
-

It works without asking, and it stays out of your way while it does. Works with the model you already pay for.
- No Swift needed: the package ships a universal binary for Apple silicon and Intel. It carries the ad-hoc signature macOS needs to run it at all - not a Developer ID signature, and not notarized.

-
+
+

Computer use
you can leave
running.

+

Your agent works in the windows behind yours. Your pointer stays + where you left it, a failure is reported as a failure, and your password manager stays + out of reach. Hand it a task, go back to your own work, and read the log when you + feel like it.

+
+
npx @agent360/computer-mcp
+

Want to look before it can touch anything? Start it with + CMCP_MODE=readonly. Setup for your client

+
+
    +
  • macOS 14 or later
  • +
  • MIT, free
  • +
  • No account, no API key
  • +
+
-
- -
-
-

New to this? You install it once, and your assistant gets - abilities it did not have before. That is all an "MCP server" is: a small program that - hands your assistant a set of tools. This one hands it your Mac.

-

It runs on your own machine. There is no account to make, no - key to paste, and nothing is sent to us - your assistant keeps talking to whichever AI - you already pay for.

+
+ +
+ +
+ An illustration of what the log describes. The real 27-second recording is further down. + +
+
+
-

Twenty-seven seconds, no sound, and you can pause it. Every line in the log is a line the server actually writes.

- -
- -
-

It does not have to take over your screen

-

Coordinate clicking moves your real pointer and lands wherever the keyboard focus is. That is fine while you are watching it. It is not fine while you are working in another window.

-
-
-

Press, don’t click

-

computer_press fires the element’s own accessibility action instead of simulating a click. It works while the window sits behind another one, and it moves nothing on your screen. Two or more matches is a refusal, not a guess.

-
-
-

One log, several agents

-

Each MCP client runs its own server, so a second chat is a second process. Every audit line carries a per-server session mark, and CMCP_CLIENT puts a name on it - so the log says which conversation did it.

-
-
-

Still shared: one pointer

-

Two servers driving coordinates at the same moment share one cursor and one focused window, and nothing locks between them yet. Give background work to computer_press; keep computer_click for the session you are watching.

-
-
-

What still asks, and where

-

In the default mode nothing comes forward. Anything that deletes or clears, and starting a screen recording, waits in the menu bar icon until you approve it there. Your password manager and an unredacted screenshot can never be approved from the menu bar, so in the default mode they are simply refused. With CMCP_BACKGROUND=0 these raise a real macOS dialog that takes focus instead. A question nobody answers refuses the action rather than allowing it, so walking away is safe.

-
+
+

New to this?

+
+

You install it once, and your assistant gets abilities it did not have before. That is + all an MCP server is: a small program that hands your assistant a set of tools. This one + hands it your Mac.

+

It runs on your own machine. There is no account to make, no key to paste, and nothing + is sent to us. Your assistant keeps talking to whichever AI you already pay for: Claude + Code, Cursor, VS Code, Codex, Windsurf, Zed or your own agent, with the same one line.

-

The long versions, with the failure modes: - working while you keep using your - Mac and leaving it running overnight.

-
-

Install

- -

What you get today, honestly. npx @agent360/computer-mcp currently serves 0.1.0, which has 12 tools. The 32 tools described here are the source: they are built and tested, but not published yet. Building from source takes about thirty-five seconds if you want them now.

-

Add it to your MCP client, grant two macOS permissions, done. It starts ready to work: twenty-five of the thirty-two, no asking, except your password manager, anything that deletes or clears, and starting a screen recording. It runs in the background by default, so nothing takes your screen; CMCP_BACKGROUND=0 adds the seven that do.

-
- - - - -
Claude Codeclaude mcp add computer -- npx -y @agent360/computer-mcp
Cursor / VS Code / CodexIn mcp.json: {"command":"npx","args":["-y","@agent360/computer-mcp"]}
From sourceOnly if you want to change it: git clone, then swift build -c release in helper/. About thirty-five seconds from scratch, no dependencies to fetch.
PermissionsSystem Settings → Privacy & Security → Accessibility and Screen Recording, for the app running the server. Ask the agent to call computer_permissions and it will tell you what is missing.
-

Step by step, with the permissions part spelled - out and the questions people actually ask: - Claude Code · - Codex · - Cursor · - GitHub Copilot · - Claude Desktop · - VS Code. - If an agent is setting this up for you, point it at - llms-install.md.

- -

Two pages we would rather you read before you install than after: when this is the wrong tool, and how to remove it and exactly what it touches.

+
+

What leaving it running looks like

+

Each of these is something you can check afterwards, in a log you can read + back. The lines are examples in the shape the server writes, shortened. Typed text never + appears in them.

+
    +
  1. +

    It works behind your window

    +

    Most tools click by moving your real pointer, which lands wherever you happen to be + typing. This one presses a button through the app’s own accessibility action, in a + window that stays behind yours, and every keystroke, click and press answers with + took_screen, so you never have to take our word for it.

    +
    "tool":"computer_press", "target":"com.apple.Preview", "decision":"allowed" +"tool":"computer_press", "outcome":"ok", "effect":"performed", "took_screen":false
    +
  2. +
  3. +

    It says when it failed

    +

    The most common complaint about agents driving a computer is that they carry on as if + it worked. Here a refusal or a failure comes back as one, with the reason, and the same + reason is written down. When three buttons could be the one you meant, it refuses + instead of guessing.

    +
    "tool":"computer_press", "outcome":"error", "error":"ambiguous", +"message":"found 3 matches - narrow the search, pick one with index, or pass --first"
    +
  4. +
  5. +

    Several can run at once

    +

    No session lock, no one-at-a-time limit. Every line carries the session it came from, + so the log says which conversation did what. Two agents typing into the same app take + turns; two agents in different apps do not wait for each other.

    +
    "session":"3e6f9a44", "client":"claude-code", "tool":"computer_type" +"session":"54c41ca8", "client":"cursor", "tool":"computer_find"
    +
  6. +
  7. +

    Your passwords stay yours

    +

    Keychain, 1Password and seven others ask every time, in every mode, and a password + manager can never be approved from the menu bar. Password fields are painted black while + the screenshot is still in memory, before it is ever a file.

    +
    "target":"com.1password.1password", +"decision":"denied", "reason":"background mode: this would need a dialog, and a dialog takes the screen (a password app can never be approved from the menu bar)"
    +
  8. +
  9. +

    The few things that need you, wait for you

    +

    Anything that deletes or clears, a message to a real person, and starting a screen + recording do not happen on their own. The menu bar icon turns orange and the question + waits there, with the whole action written out. You allow it with Touch ID. Nobody + answering is a no.

    +
    "tool":"computer_press", "target":"net.whatsapp.WhatsApp", +"asked":true, "asker":"menubar", "decision":"allowed"
    +
  10. +
+

The long versions, with the failure modes: + working while you keep using your Mac + and leaving it running overnight.

+
-

Three modes, set with CMCP_MODE:

-
- - - +
+

What you can ask it to do

+

Not a feature list. Things people ask for, and what happens.

+
readonlyThe write tools are not even listed. The agent can see your Mac and cannot touch it. Good for research and for the first hour.
askOne consent dialog per session in front of the first write; after that it works. Password managers, anything that deletes, and starting a screen recording still ask every time.
allowDefault. Writes go through without asking, all of them logged. Password managers, anything that deletes or clears, and starting a screen recording still ask - none of them is configurable, on purpose.
+ + + + + + + + + + + + + + +
You sayWhat it does
“What’s on my screen right now?”Takes a picture and reads it. Any password box in it is painted black before the + picture exists as a file.
“Fill in this form for me.”Finds the fields by name rather than guessing at pixels, and writes into them, in + a window sitting behind the one you are using, without taking your cursor.
“Export this, then tell me when it’s done.”Picks File › Export from the menu (much of what a Mac can do has no button + at all, only a menu), then waits for the result instead of taking a hundred + screenshots while it waits.
“Do this in Slack.”Slack, VS Code, Discord and Notion hide their buttons from most tools until asked. + It asks first. Measured on a VS Code fork with two windows open: 0 buttons before, 728 after.
“Log in to this and carry on.”Puts the cursor in the password box and asks you to type. It never sees + what you typed; there is deliberately no way to hand it a password.
“What did you do while I was out?”Reads back the log it kept: every action, in order, with the app it happened in.
+

If none of that is your problem, that is a fine answer too. + When not to use it names the cases where something else + is better, including our own browser tool for anything inside a web page.

-
-

What you can actually ask it to do

-

Not a feature list. These are things people ask for, and what happens.

-
- - - - - - - - - - - +
+

Install it in three steps

+

It starts ready to work: twenty-five of the thirty-two, no asking, except your + password manager, anything that deletes or clears, a message to a real person, and starting a + screen recording. It runs in the background by default, so nothing takes your screen; + CMCP_BACKGROUND=0 adds the seven that do.

+ +

What you get today, honestly. npx @agent360/computer-mcp currently serves 0.1.0, which has 12 tools. The 32 tools described here are the source: they are built and tested, but not published yet. Building from source takes about thirty-five seconds if you want them now.

+
    +
  1. Add it to your client

    +

    Claude Code:

    +
    claude mcp add computer -- npx -y @agent360/computer-mcp
    +

    Cursor, VS Code, Codex, Windsurf: in mcp.json,

    +
    {"mcpServers":{"computer":{"command":"npx","args":["-y","@agent360/computer-mcp"]}}}
    +
  2. +
  3. Grant two permissions

    +

    System Settings › Privacy & Security › Accessibility and Screen + Recording, for the app that runs the server. No Swift needed: the package ships a + universal binary for Apple silicon and Intel. It carries the ad-hoc signature macOS needs + to run it at all, not a Developer ID signature, and not notarized, so Gatekeeper may ask + the first time.

    +
  4. +
  5. Ask it what it can see

    +

    Ask your agent to call computer_permissions. It tells you what is still + missing, and which rules in Claude Code’s settings would let an agent walk around this + server’s gates.

    +
  6. +
+

Step by step, with the permissions part spelled out: + Claude Code, + Codex, + Cursor, + GitHub Copilot, + Claude Desktop, + VS Code. + If an agent is setting this up for you, point it at llms-install.md. + Two pages worth reading before you install rather than after: + when this is the wrong tool, and + how to remove it and exactly what it touches.

+ +
You sayWhat it does
"What's on my screen right now?"Takes a picture and reads it. Any password box in it is painted black before - the picture exists as a file.
"Fill in this form for me."Finds the fields by name rather than guessing at pixels, and types into them. - It can do that in a window sitting behind the one you are using, without taking - your cursor.
"Export this, then tell me when it's done."Picks File → Export from the menu - a lot of what a Mac can do has - no button at all, only a menu - then waits for the result instead of taking a - hundred screenshots while it waits.
"Log in to this and carry on."It puts the cursor in the password box and asks you to type. It never - sees what you typed. There is deliberately no way to hand it a password.
"What did you do while I was out?"Reads back the log it kept: every action, in order, with the app it happened - in. What you typed is never stored as readable text.
+ + + + + +
CMCP_MODEWhat happens
readonlyThe write tools are not even listed. The agent can see your Mac and cannot touch it. Good for research, and for the first hour.
askOne consent dialog per session in front of the first write; after that it works. Password managers, anything that deletes, a message to a real person, and starting a screen recording still ask every time.
allowDefault. Writes go through without asking, all of them logged. Password managers, anything that deletes or clears, a message to a real person, and starting a screen recording still ask. None of that is configurable, on purpose.
-

If none of that is your problem, that is a fine - answer too. When not to use it names the cases where - something else is better, including our own browser tool for anything inside a web page.

-
- - - -
-

Three barriers, on by default

-

Each one is a behaviour you can check yourself, not a promise in a README. The test that proves each is in the repo, and each test has been mutation-tested: break the code and the test goes red.

-
-
-

Passwords never reach the model

-

Secure text fields and password-manager windows are painted out while the image is still in memory - before it is ever written to disk. There is no moment where an unredacted screenshot of your desktop exists as a file for something else to read.

-
-
-

The dangerous places ask first

-

By default the agent works without interrupting you, and every write is logged. Password managers ask every single time, in every mode. Terminals and editors ask once per session. Quitting, closing and destructive-looking menu items always ask. If nobody answers, the answer is no.

-
-
-

Everything is written down

-

A log that only grows records every call, what it targeted, and whether it was allowed or refused. Typed text is stored as a length and a salted fingerprint, never in clear text - an audit trail full of passwords is its own breach, and without that random ingredient, a short password can be guessed offline.

-
-
-

No API key, no second bill

-

There is no model inside this server. The one driving your agent does the seeing and the thinking; Computer MCP only supplies hands. Nothing is sent to us, because there is no us to send it to.

-
+
+

Twenty-seven seconds of the real thing

+

No sound, and you can pause it. Every line in the log is a line the server + actually writes.

+
+
+

A password field is blacked out before the screenshot becomes a file, a write + action waits for a yes, and every line in the log carries a fingerprint of itself and the line + before it, so a removed or edited line breaks the chain and says where.

+
+

How we know the gates hold

+

Each gate has a test in the repository, and each test has been + mutation-checked: break the code on purpose and the test goes red. A promise without a test + that can fail is just a sentence.

+

Every change is built and tested on a Mac on GitHub before it can land: the + redaction test, 22 checks of the security claims that need no permissions, and the audit log + under several writers at once. See the + runs.

+
+
Passwords never reach the model
Secure fields are found by role and + subrole, because a password box in a web page is a plain text field with a secure subrole. + Checking only the role would let every browser password box through.
+
The dangerous places ask first
Password managers ask every time, terminals + and editors once per session, and any action whose target app cannot be identified asks + every time. If nobody answers, the answer is no.
+
Everything is written down
An append-only log, mode 0600. Typed text is + stored as a length and a salted fingerprint, never in clear; an audit trail full of + passwords is its own breach. If the log cannot be written, write actions are refused until + it can.
+
No second bill
There is no model inside this server. The one driving your + agent does the seeing and the thinking; Computer MCP only supplies hands.
+
+
- -
-

thirty-two tools

-

fourteen that look, eighteen that touch. Grouped by what you would - actually want, with the names underneath in case you are wiring this up yourself.

-
- - - - - - - - - - - - - +
+

Thirty-two tools, fourteen that look, eighteen that touch

+

Grouped by what you would want, with the names underneath in case you are + wiring this up yourself.

+
So it can...What that means
See what is there
screenshot · inspect · find · focused
Take a picture, or read the screen as a list of things with names - a button - called "Export", a field called "Email". Reading the list beats reading pixels: - it knows what a thing is, not just what it looks like.
Use your apps
click · type · press · menu · set_value · paste
Click, type, choose from menus. Several of these reach a window sitting behind - the one you are using and never move your cursor, so you can keep working.
Manage windows and apps
window · launch · quit · activate · apps · windows · displays
Open an app, bring it forward, move a window to another screen, close it. - On a Mac with more than one screen it will tell you which one it is looking at - - a window you cannot find is usually just on another.
Wait, instead of guessing
wait_for
Wait until something appears, then carry on. The alternative is taking a - hundred screenshots of a progress bar, and you pay for every one of them.
Ask you
ask_user
When it hits a password or a code from your phone, it puts the cursor in the - box and asks you to type - in the menu bar icon, so nothing jumps in front of you. - It gets back "done" or "cancelled" - never the text.
Show its work
audit · permissions
Read back everything it did, in order. What you typed is stored as a - fingerprint, never as readable text.
+ + + + + + + + + + + + + + +
So it canWhat that means
See what is therescreenshot, inspect, find, focused, menus, recordTake a picture, or read the screen as a list of things with names: a button called + “Export”, a field called “Email”. Reading the list beats reading pixels; it knows what a + thing is, not just what it looks like.
Use your appspress, set_value, type, key, menu, click, scroll, drag, move, pastePress, type, choose from menus. Most of these reach a window sitting behind the one + you are using and never move your cursor, so you can keep working.
Manage windows and appslaunch, open, quit, activate, window, space, apps, windows, displaysOpen an app behind what you are doing, move a window to another screen, close it. On a + Mac with more than one screen it tells you which one it is looking at.
Wait instead of guessingwait_forWait until something appears, then carry on. Twenty polls cost one call here, and + twenty images the other way.
Ask youask_user, request_screenWhen it hits a password or a code from your phone, it puts the cursor in the box and + asks you to type. It gets back done or cancelled, never the text. When a step truly needs + the screen, it asks to borrow it for at most fifteen minutes, approved with Touch ID.
Show its workaudit, pending, learning, permissionsRead back everything it did, in order, see what is waiting for you, and note down + what it could not do so the next version can.
- -

And note what is missing. There is no - "run a command", no "open any file", no "fetch a web page". Each would have been a few - lines of code. A tool that can run commands on your Mac is remote access with a friendlier - name, and if you want that you should choose it on purpose rather than find it in a list - later.

-

Every tool in detail, including which one to - reach for when the obvious one is the wrong one.

+

And note what is missing. There is no “run a command”, no “open any + file”, no “fetch a web page”. Each would have been a few lines of code. A tool that can run + commands on your Mac is remote access with a friendlier name, and if you want that you should + choose it on purpose rather than find it in a list later. + Every tool in detail.

- - -
-

What it does not do

+
+

What it does not do

Being straight about the edges is cheaper than being found out at them.

-
- - - - -
macOS onlyIt is built on the macOS Accessibility and ScreenCaptureKit APIs. There is no Windows or Linux build and none is planned.
Redaction covers marked fieldsWe black out what macOS marks as secure, plus password-manager windows you can extend. A password sitting in a plain text editor is not marked secure, and we will not pretend to find it. Use readonly when the screen holds something we cannot know about.
Consent is not a sandboxOnce you approve a session, the agent can drive your real Mac. That is the point. If you need containment rather than consent, run it in a VM - and we would say so before you asked.
Prompt injection is still realA web page can try to talk your agent into doing something. The dialogs and the audit log are what turn that from silent into visible. They do not make it impossible.
+
+
macOS only
It is built on the macOS accessibility and screen capture APIs. + There is no Windows or Linux build, and none is planned.
+
Not the inside of a web page
In Chrome you get the browser’s own window + (tabs, toolbar, address bar), not the page. Measured: 29 buttons before and after asking. + For a page, drive the browser with a browser tool.
+
Apps that draw their own controls
It reads the accessibility tree, so an app + that paints everything on a canvas and publishes nothing, like some games and plotting tools, + is still a blind spot.
+
Redaction covers marked fields
It blacks out what macOS marks as secure, plus + password-manager windows. A password sitting in a plain text editor is not marked secure, and + it will not pretend to find it. Use readonly when the screen holds something it + cannot know about.
+
Consent is not a sandbox
Once you approve a session, the agent can drive your + real Mac. That is the point. If you need containment rather than consent, run it in a + VM.
+
Prompt injection is still real
A web page can try to talk your agent into + something. The questions and the log turn that from silent into visible. They do not make it + impossible.
+
-
-

Questions

-
Does anything leave my machine?

No. There is no account, no telemetry and no server of ours involved. Screenshots go to the MCP client you configured - the same place the rest of your conversation goes - and nowhere else.

The same rule holds for this website: no analytics, no cookies, no third-party requests. The only <script> tag anywhere on the site is application/ld+json structured data, which your browser does not execute - never a program. View source and check.

-
How is this different from the other macOS MCP servers?

Capability-wise, not enormously - screenshots, clicks, keystrokes, the accessibility tree. The difference is what happens in the hours you are not watching. It works in windows behind the one you are in and leaves your pointer where you put it, so it does not take over the machine while you use it. It tells you when something failed instead of carrying on as if it worked. Several can run at once. And it will not go near your password manager. If you only ever watch it work, most of that is wasted on you.

-
Why is the audit log fingerprinted instead of plain?

Because a complete record of every keystroke is exactly the file an attacker would want. The fingerprint proves two actions typed the same thing without ever storing what it was. It is scrambled with a random ingredient that only exists while it runs - a fingerprint without that random ingredient, of an eight-character password, is guessable offline, which would have made the log the very thing this promise is against. The cost is honest: comparison works within a run, not across runs.

-
Can I turn the redaction off?

Yes - redact: false on a single screenshot. It is per call and never sticky, and the result says plainly that the image was not redacted.

-
Does it ask me before it does things?

Not for ordinary work - it acts, and every call lands in the log. A few things never happen without a person saying yes: your password manager, anything that deletes or clears, and starting a screen recording. In the default mode they wait in the menu bar icon - a password manager cannot be approved there, so it is refused. If you would rather be asked once up front, CMCP_MODE=ask puts one session-granting dialog in front of the first write, and ignoring it refuses the action rather than allowing it.

+
+

Questions

+
+
Does anything leave my machine?

No. There is no account, no telemetry and no server of ours involved. Screenshots go to the MCP client you configured, the same place the rest of your conversation goes, and nowhere else.

The same rule holds for this website: no analytics, no cookies, no third-party requests. The only <script> tag anywhere on the site is application/ld+json structured data, which your browser does not execute, never a program. View source and check.

+
How is this different from the other macOS MCP servers?

Capability-wise, not enormously: screenshots, clicks, keystrokes, the accessibility tree. The difference is what happens in the hours you are not watching. It works in windows behind the one you are in and leaves your pointer where you put it, so it does not take over the machine while you use it. It tells you when something failed instead of carrying on as if it worked. Several can run at once. And it will not go near your password manager. If you only ever watch it work, most of that is wasted on you.

+
Does it ask me before it does things?

Not for ordinary work: it acts, and every call lands in the log. A few things never happen without a person saying yes: your password manager, anything that deletes or clears, sending a message, and starting a screen recording. In the default mode they wait in the menu bar icon, which turns orange; a password manager cannot be approved there, so it is refused. If you would rather be asked once up front, CMCP_MODE=ask puts one session-granting dialog in front of the first write, and ignoring it refuses the action rather than allowing it.

+
Why is the audit log fingerprinted instead of plain?

Because a complete record of every keystroke is exactly the file an attacker would want. The fingerprint proves two actions typed the same thing without ever storing what it was. It is scrambled with a random ingredient that only exists while it runs; a fingerprint without that random ingredient, of an eight-character password, is guessable offline, which would have made the log the very thing this promise is against. The cost is honest: comparison works within a run, not across runs.

+
Can I turn the redaction off?

Yes: redact: false on a single screenshot. It is per call and never sticky, and the result says plainly that the image was not redacted.

+
Does it work in Claude Code’s auto mode?

Partly. Auto mode judges every call on its own, so expect some refusals. The tools that take the screen are refused: measured on 1 October, auto mode turned them down even after the person had lent the screen with Touch ID. That is the client’s own guard, not this server’s, and it is right to be careful. To use them, run the session without auto mode and approve each call when Claude Code asks; the gates in this server still apply on top.

+
-
-

Help build it

-

It is three days old and MIT. Bug reports, an app that behaves oddly, a tool that should exist: open an issue. How to contribute.

+
+

Help build it

+

MIT, built in the open since 18 September 2026. Bug reports, an app that + behaves oddly, a tool that should exist: open + an issue. When your agent hits something it cannot do, computer_learning writes + it down locally and hands you a pre-filled issue to share, or not. + How to contribute.

-
-

Give it a look before you give it your hands.

-

Install it in read-only mode and ask your agent what it can see. That takes two minutes and tells you more than this page can.

- Get it on GitHub - Read the security model +
+
+
+

Give it a look before you give it your hands.

+

Start it read-only and ask your agent what it can see. That takes two minutes and tells + you more than this page can.

+ +
+
claude mcp add computer \
+  -e CMCP_MODE=readonly \
+  -- npx -y @agent360/computer-mcp
+
diff --git a/docs/og-forside.jpg b/docs/og-forside.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7b926cfc8848ae4e186ae0c4058fc4e77835c042 GIT binary patch literal 69512 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 Date: Fri, 2 Oct 2026 08:48:17 +0800 Subject: [PATCH 02/21] docs(forside): kort udgave + 24 sekunders film af vaerktoejerne + GitHub-stjerner Gustav: for meget tekst, vis stjerner, laengere hero-film med vaerktoejerne i aktion. - Research (Evil Martians, 100 devtool-forsider): centreret hero, kort undertekst, to knapper, animeret produkt-UI lige under, derefter tillid, faa punkter, stor slut-knap. - Synlig tekst 1.956 -> 651 ord (FAQ foldet ud: 2.365 -> 1.029). - Hero-film: 24 s i CSS paa een tidslinje, seks scener (screenshot med sloeret kodeord, menu, set_value + press bag dit vindue, wait_for, besked der kraever Touch ID, loggen), pause/afspil uden JS, statisk slutbillede ved reduced motion. - Stjernetal (1) bagt ind i headeren, ikke hentet live - sidens loefte om nul tredjepartskald holder. Co-Authored-By: Claude Opus 5.5 --- docs/index.html | 882 +++++++++++++++++++----------------------------- 1 file changed, 351 insertions(+), 531 deletions(-) diff --git a/docs/index.html b/docs/index.html index b8ee935..b90dbb6 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,19 +6,19 @@ Computer MCP: computer use you can leave running - + - + - + @@ -27,8 +27,7 @@