Repository navigation
docs(smfs): add boxd provider guide - #1892
Open
MichielMAnalytics wants to merge 3 commits into
Open
MichielMAnalytics wants to merge 3 commits into
MichielMAnalytics wants to merge 3 commits into
Conversation
Contributor
Preview approval requiredThis pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit |
Every pattern now creates the machine with a delete-after timer and deletes it in a finally block, so a failed step no longer leaves it running. The mount step checks its exit code and raises with stderr. The user_allow_other line is only added when it is missing, and the diagrams say "boxd machine".
MichielMAnalytics
marked this pull request as ready for review
November 12, 2026 22:36
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I work on boxd. This adds an SMFS provider guide for boxd machines, next to the Daytona and E2B guides. A boxd machine is a full Ubuntu VM with FUSE, Python,
uvandsystemd, so SMFS mounts there without a custom image.Summary
apps/docs/smfs/providers/boxd.mdx. It mirrorse2b.mdxanddaytona.mdx: how it works, prerequisites, a shared install and mount snippet, Pattern A (agent inside the machine) and Pattern B (agent outside), each in Python and TypeScript, and tips.apps/docs/docs.json: appendedsmfs/providers/boxdto the SMFS Providers group.apps/docs/smfs/overview.mdx: appended a boxd card to "Use SMFS with your sandbox provider".How the page wires SMFS into a machine
machines.create(isolated=True, delete_after=1800)+wait_until_readycurl -fsSL https://smfs.ai/install | bash -s -- 0.0.5, plususer_allow_otherin/etc/fuse.confif it isn't there yetsmfs login, thensmfs mountstarted withsystemd-run -p Type=forking, so it keeps running after the command returns, andsystemd-runreturns once SMFS reports the mount is ready. The examples raise if this step exits non-zerosudo chown boxd:boxd /home/boxd/memory, so the agent can write withoutsudo(the E2B page wraps writes insudoinstead)files.upload+exec(["uv", "run", "--with", "claude-agent-sdk", "python3", "/home/boxd/agent.py"])env, not at create timesmfs sync my_agentto push pending writes, thenmachines.deletein afinallyblock, with the delete-after timer as a backstop if the script dies. Ormachines.hibernate/machines.waketo keep the machine and its mountHow I tested it
I ran every code block on the page against real boxd machines (Python SDK
boxd0.3.1, TypeScript@boxd-sh/sdk0.3.1). A script pulled the snippets out of the MDX, so the tests ran the page as written. The test copies changed only the machine name and added checks.The last run used the hosted API (
api.supermemory.ai) with the page exactly as written. After each script deleted its machine, I listed the documents for themy_agentcontainer tag in the hosted account. That run found one gap: the examples deleted the machine before SMFS had pushed the last write, sosession_notes.mdnever reached the account. The page now runssmfs sync my_agentbefore the delete, and the hosted rows below are from the page with that step.The earlier runs were before I had a hosted key. Each test machine ran
supermemory-server0.0.9 (npx supermemory local), and the test copies added--api-url http://localhost:6767tosmfs loginandsmfs mount.smfs loginvalidates the key,lsshowsprofile.mdandsession_notes.md, and after the machine is deleted the account lists/session_notes.mdasdonewith the line the script wrote, 14 s end to endcwd=/home/boxd/memory, readsprofile.mdand writessession_notes.md, and after the machine is deleted the account lists/session_notes.mdasdonewith the agent's text, 23 s end to endsmfs syncqueuedabout 2 s after it lands on the mount;smfs sync my_agentreturns after the push, and the document isdoneright after it returns (3 of 3)lsshowsprofile.mdandsession_notes.md, server lists/session_notes.mdasdone, 33 s end to endcwd=/home/boxd/memory, readsprofile.mdand writessession_notes.md, and the server lists/session_notes.mdasdone, 43 s end to endSMFS mount failedwith the stderr; with an error thrown at a later step the script fails too. In both cases thefinallyblock deleted the machine, and a lookup by id returned not found. The delete-after timer was set on every machine; I didn't wait 30 minutes to watch one firesystemctl status smfs-my_agentactive;smfs grep 'what language does the user like'returned the matching note; after hibernate and wake the unit was still active and the files were readable;systemctl stopunmounts; after a remount, both files came back from the serverbun install --frozen-lockfile(bun 1.3.6)bunx biome ci --changed --since=origin/main --no-errors-on-unmatchedmintlify broken-links(mintlify 4.3.10)mintlify dev/smfs/providers/boxdrenders, and the overview links to itLinks