@eyueldk/aisdk-toolkit-filesystem weekly downloads statistics
FileSystem AI SDK tools with pluggable adapters for the Vercel AI SDK
@eyueldk/aisdk-toolkit-filesystem has 9 recorded weekly downloads on npm, ranking #1959 of 2,644 tracked listings.
About @eyueldk/aisdk-toolkit-filesystem
@eyueldk/aisdk-toolkit-filesystem
Pluggable filesystem tools for the Vercel AI SDK. Swap storage via FileSystemAdapter implementations.
Features
createFileSystemToolkit({ adapter, permissions?, editMode? })→{ tools, prompt, state }- Default
editMode: "applyPatch"—applyPatch(OpenCode-style patches) plusreadFile,glob,grep editMode: "tools"— granularwriteFile,editFile,remove,moveinstead ofapplyPatch- Optional path permissions (first matching glob wins)
- Adapters: memory, local disk, Docker container, Daytona sandbox, Cloudflare Sandbox, composite (multiple mounts)
Install
pnpm add @eyueldk/aisdk-toolkit-filesystem
Requires Node 20+.
Quick start
import { generateText, stepCountIs } from "ai";
import { createFileSystemToolkit } from "@eyueldk/aisdk-toolkit-filesystem";
import { MemoryFileSystem } from "@eyueldk/aisdk-toolkit-filesystem/adapters/memory";
const adapter = await MemoryFileSystem.create({
initialFiles: { "README.md": "# hi" },
});
const { tools, prompt } = createFileSystemToolkit({
adapter,
permissions: [
{ mode: "allow", operations: ["read", "write"], paths: ["**"] },
],
});
await generateText({
model: yourLanguageModel,
tools,
stopWhen: stepCountIs(20),
system: `You can use filesystem tools.\n\n${prompt()}`,
prompt: "Read README.md and summarize it in one sentence.",
});
Adapters
Import adapters from subpaths so bundlers (e.g. SSR) load only the runtime you need:
| Subpath | Adapter |
|---|---|
@eyueldk/aisdk-toolkit-filesystem/adapters/memory | MemoryFileSystem |
@eyueldk/aisdk-toolkit-filesystem/adapters/local | LocalFileSystem |
@eyueldk/aisdk-toolkit-filesystem/adapters/docker | DockerFileSystem |
@eyueldk/aisdk-toolkit-filesystem/adapters/daytona | DaytonaFileSystem |
@eyueldk/aisdk-toolkit-filesystem/adapters/cloudflare-sandbox | CloudflareSandboxFileSystem |
@eyueldk/aisdk-toolkit-filesystem/adapters/composite | CompositeFileSystem |
@eyueldk/aisdk-toolkit-filesystem/adapters | FileSystemAdapter types only |
The main entry (@eyueldk/aisdk-toolkit-filesystem) exports the toolkit and FileSystemAdapter — not concrete adapters.
| Adapter | Factory | Notes |
|---|---|---|
| MemoryFileSystem | await MemoryFileSystem.create({ initialFiles? }) | Volatile; tests and sandboxes |
| LocalFileSystem | await LocalFileSystem.create({ root }) | Host paths under root; symlinks cannot escape root |
| DockerFileSystem | await DockerFileSystem.create({ container, root?, docker? }) | Running container; list via find |
| CompositeFileSystem | CompositeFileSystem.create({ mounts }) | Virtual union of adapters; mount keys must not overlap/nest |
| DaytonaFileSystem | await DaytonaFileSystem.create({ sandbox, root? }) or { sandboxId?, daytona? } | Default root: workspace |
| CloudflareSandboxFileSystem | await CloudflareSandboxFileSystem.create({ sandbox, root? }) | Pass ISandbox from getSandbox; default root: /workspace |
import { LocalFileSystem } from "@eyueldk/aisdk-toolkit-filesystem/adapters/local";
const disk = await LocalFileSystem.create({ root: "/path/to/workspace" });
Daytona (requires DAYTONA_API_KEY; optional DAYTONA_API_URL for self-hosted):
import { DaytonaFileSystem } from "@eyueldk/aisdk-toolkit-filesystem/adapters/daytona";
import { Daytona } from "@daytonaio/sdk";
const sandbox = await new Daytona().create();
const adapter = await DaytonaFileSystem.create({ sandbox, root: "workspace" });
Cloudflare Sandbox (Workers + @cloudflare/sandbox):
import { getSandbox } from "@cloudflare/sandbox";
import { CloudflareSandboxFileSystem } from "@eyueldk/aisdk-toolkit-filesystem/adapters/cloudflare-sandbox";
const sandbox = getSandbox(env.Sandbox, "session-id");
const adapter = await CloudflareSandboxFileSystem.create({ sandbox, root: "/workspace" });
Adapter paths are POSIX and normalized with resolvePath. .. is allowed when the resolved path stays inside root.
Composite mounts
Combine adapters under virtual paths (mount keys must not nest):
import { createFileSystemToolkit } from "@eyueldk/aisdk-toolkit-filesystem";
import { CompositeFileSystem } from "@eyueldk/aisdk-toolkit-filesystem/adapters/composite";
import { LocalFileSystem } from "@eyueldk/aisdk-toolkit-filesystem/adapters/local";
import { MemoryFileSystem } from "@eyueldk/aisdk-toolkit-filesystem/adapters/memory";
const sandbox = await MemoryFileSystem.create();
const host = await LocalFileSystem.create({ root: "/project" });
const adapter = CompositeFileSystem.create({
mounts: { "/sandbox": sandbox, "/host": host },
});
const { tools, prompt } = createFileSystemToolkit({
adapter,
permissions: [
{ mode: "allow", operations: ["read", "write"], paths: ["**"] },
],
});
Paths like sandbox/src/app.ts route to the sandbox adapter; host/README.md routes to the host adapter. Use glob on / to see mount names.
Tool outputs
Each tool returns a structured JSON object with result-only fields (inputs like path or pattern are not echoed back).…
Description from the npm listing.
- eyueldk
- aisdk-toolkit
- @eyueldk/aisdk-toolkit-filesystem
- ai-sdk
- vercel-ai-sdk
- filesystem
- tools
- agents
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (1)Similar npm AI SDKs plugins
All 20 @eyueldk/aisdk-toolkit-filesystem alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/@eyueldk/aisdk-toolkit-filesystem. First seen Oct 28, 2026; last successful collection Oct 28, 2026. See the methodology.