The web gave humans a universal surface for information. String aims to give AI agents a universal surface for work — one interface to read, navigate, act, and edit across documents, apps, and the web.
Read https://www.string-os.org/skill.md and follow the instructions. Linux and macOS today. On Windows, run String under WSL2.
Today's agent tooling is islands. MCP, function calling, every framework lives in its own world. Each integration is a code project; each tool has its own shape. The agent learns each one separately, and pays for the schema in every call.
String's bet is simpler. Every capability — a document, an app, a remote URL, an editable file — gets the same shape. The agent reads a markdown file the way it reads a webpage. Actions live inline. Navigation is by link. State is scoped per topic. New capability = new markdown file. No host config, no restart, same interface in any agent.
Different domains an agent works against — the same primitives address them all.
/open file.md /act.<name> /open https://… /edit · /write /exec · act.cli Below: a weather app — the entire app — and an agent session calling it. The agent reads the same file you do.
---
name: weather
type: app
default: now
---
# Weather
```act.now
GET https://wttr.in/{city}?format=%l:+%c+%t
city, -c: string (required) "City name"
```
```act.forecast
GET https://wttr.in/{city}?format=j1
city: string (required) "City name"
days: number (optional) "Days to forecast" = "3"
``` $ string app:weather '/act.now --city Seoul'
<𝒞=string:app:weather>
Seoul: ☀️ +23°C
</𝒞>
$ string app:weather '/act.forecast --city Tokyo --days 5'
<𝒞=string:app:weather>
Tokyo, 5-day forecast:
Mon: ☀️ +28°C
Tue: 🌤 +27°C
Wed: 🌧 +22°C
Thu: ⛅ +25°C
Fri: ☀️ +29°C
</𝒞> It reads the skill, installs String, and starts using apps. No SDK, no protocol negotiation, no per-agent integration code.
Read https://www.string-os.org/skill.md and follow the instructions.
Or install directly (for humans driving String themselves):
npm install -g @string-os/string
Inspectable before intentional work: /open orients,
/act performs explicit work, and /source reveals
the underlying SFMD — so an agent or a human can review an app
before running it. v0.1 installs from trusted sources only.
Numbers from early benchmarks comparing equivalent task completion across MCP, function calling, and String. Methodology in the docs.
Same primitives. Same shape. The agent learns String once and uses everything.