Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Mobile-safe filesystem bridge for the elizaOS runtime.
Adds a single DeviceFilesystemBridge service. Planner-visible read, write, and
directory list operations are routed through the canonical FILE action with
target=device:
FILE with action=read, target=device — read a file from the user's
device-files root.
FILE with action=write, target=device — write a file to the user's
device-files root.
FILE with action=ls, target=device — list a directory inside the user's
device-files root.
Backends
The bridge picks one of two backends at startup:
Capacitor — when window.Capacitor.isNativePlatform() is true (iOS,
Android). Uses @capacitor/filesystem with Directory.Documents as the root.
Node — when not on Capacitor. Uses fs/promises rooted at
resolveStateDir() + "/workspace" (default
~/.local/state/eliza/workspace unless XDG or env overrides it).
Both backends reject absolute paths, .. traversal, NUL bytes, and (on Node)
any resolution that escapes the workspace root.
FILE integration
This package owns only the device filesystem bridge. It does not register
planner-facing file actions. The @elizaos/plugin-coding-toolsFILE action
discovers the bridge by the device_filesystem service type and delegates
target=device operations to it.
iOS Info.plist (apply in the host app)
For iOS users to see files written into Directory.Documents, the host app's
Info.plist needs the following keys added:
Without those keys, files still write — they just aren't browsable from the
Files.app side. Add them in the host app's iOS shell, not in this package.
Android
No special manifest changes are required for Capacitor Directory.Documents
(the Capacitor Filesystem plugin handles scoped storage and MediaStore on
Android 10+). Cross-app sharing through MediaStore.Downloads belongs in the
host app's AndroidManifest, not here.
Service type
DEVICE_FILESYSTEM_SERVICE_TYPE = "device_filesystem". Resolve programmatically
with getDeviceFilesystemBridge(runtime).