Build a custom machine

Permissions

Python SDK version 1

Markdown

Deny by default. Each permission is one line under permissions:, and each line appears on the review card in the words shown here. Lines marked † reach outside the Ownbox or change its records, and the card marks them for the owner's attention.

PermissionAsks forUnlocksThe review card says
think{calls_per_month: N}, or truem.thinkAsk your AI up to N times a month
fetch[host, ...]m.fetch to those hostsRead host †
keys[{name, host, label}, ...]m.fetch(..., key=), m.spendUse your label on host †
data[people:read, ...]the people and conversation callsone line per seam, below
send[{channel, per_day}, ...]m.send_email, m.send_dm, m.reply_to_commentSend up to N emails (or DMs) a day †
packages[{name, version}, ...]import of those packageslisted under what it installs

think. true grants 300 calls a month. calls_per_month is 1 to 5,000. chars_per_month (default 2,000,000, at most 50,000,000) bounds the words the AI reads and writes for it. Past either, m.think is refused over_budget until the month turns.

fetch. At most 20 hosts, each a public host name written exactly. An IP address is refused, as are private names (.local, .internal, .lan, .home, .test, .example, .onion and the like) and the AI companies' own APIs: a machine thinks through m.think, never with a key of its own.

keys. At most 10. name is lowercase letters, digits and _; host must also be under fetch; label (at most 60 characters) is what the owner reads. Optional: header (default Authorization), prefix (at most 20 characters, like "Bearer ") and help (at most 200 characters, shown beside the key's field).

data. The seams, and the card's words for each:

SeamUnlocksThe review card says
people:readm.people_find, m.people_timelineRead the people your business has met
people:writem.person, m.touchAdd people and note events on their timelines †
conversations:readm.messages, m.comments, m.conversation_for, m.follows_youRead your inbox's conversations
conversations:writem.claim, m.releaseTake conversations and give them back †
reports:readnothing over the door yetthe seam's name, as written †
settings:writenothing over the door yetthe seam's name, as written †

send. channel is email (m.send_email) or dm (m.send_dm and m.reply_to_comment). per_day is 1 to 200.

packages. Only packages on the Ownbox's own list, at the list's exact version. The Ownbox installs them from its own copies, checked against their hashes, into the machine's own environment. The list today: annotated-types, beautifulsoup4, et-xmlfile, jinja2, lxml, markdown, markupsafe, numpy, openpyxl, orjson, pandas, pillow, pydantic, pydantic-core, pypdf, python-dateutil, python-docx, pytz, pyyaml, six, soupsieve, tabulate, typing-extensions, typing-inspection and tzdata. A package off the list is refused with the words to ask for it to be added. On your computer, ownbox run runs a machine with Python's own library only, and says so.