Skip to content
PluginStats

@eyueldk/aisdk-toolkit-filesystem weekly downloads statistics

By eyueldk · npm · AI SDKs

FileSystem AI SDK tools with pluggable adapters for the Vercel AI SDK

View on npm Fresh · Oct 28, 2026

@eyueldk/aisdk-toolkit-filesystem has 9 recorded weekly downloads on npm, ranking #1959 of 2,644 tracked listings.

Weekly downloads
9
Official API · Oct 26, 2026
7-day growth
—
Insufficient history
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#1959
Among tracked npm listings

About @eyueldk/aisdk-toolkit-filesystem

@eyueldk/aisdk-toolkit-filesystem

npm License: MIT

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) plus readFile, glob, grep
  • editMode: "tools" — granular writeFile, editFile, remove, move instead of applyPatch
  • 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:

SubpathAdapter
@eyueldk/aisdk-toolkit-filesystem/adapters/memoryMemoryFileSystem
@eyueldk/aisdk-toolkit-filesystem/adapters/localLocalFileSystem
@eyueldk/aisdk-toolkit-filesystem/adapters/dockerDockerFileSystem
@eyueldk/aisdk-toolkit-filesystem/adapters/daytonaDaytonaFileSystem
@eyueldk/aisdk-toolkit-filesystem/adapters/cloudflare-sandboxCloudflareSandboxFileSystem
@eyueldk/aisdk-toolkit-filesystem/adapters/compositeCompositeFileSystem
@eyueldk/aisdk-toolkit-filesystem/adaptersFileSystemAdapter types only

The main entry (@eyueldk/aisdk-toolkit-filesystem) exports the toolkit and FileSystemAdapter — not concrete adapters.

AdapterFactoryNotes
MemoryFileSystemawait MemoryFileSystem.create({ initialFiles? })Volatile; tests and sandboxes
LocalFileSystemawait LocalFileSystem.create({ root })Host paths under root; symlinks cannot escape root
DockerFileSystemawait DockerFileSystem.create({ container, root?, docker? })Running container; list via find
CompositeFileSystemCompositeFileSystem.create({ mounts })Virtual union of adapters; mount keys must not overlap/nest
DaytonaFileSystemawait DaytonaFileSystem.create({ sandbox, root? }) or { sandboxId?, daytona? }Default root: workspace
CloudflareSandboxFileSystemawait 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

@eyueldk/aisdk-toolkit-filesystem weekly downloads on npm, last 90 days: 9 weekly downloads as of Oct 26, 2026.@eyueldk/aisdk-toolkit-filesystemWeekly downloads on npm · Last 90 days9downloads / week88.599.510Jul 28Aug 12Aug 27Sep 11Sep 26Oct 11Oct 26downloads / weekOct 26, 2026 – Oct 26, 2026 · 1 observations · Updated Oct 26, 2026pluginstats.com
@eyueldk/aisdk-toolkit-filesystem weekly downloads on npm, last 90 days: 9 weekly downloads as of Oct 26, 2026.

7/30/90-day growth

@eyueldk/aisdk-toolkit-filesystem weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.@eyueldk/aisdk-toolkit-filesystemWeekly downloads growth on npm9downloads / week now7-day growthinsufficient historyInsufficient history30-day growthinsufficient historyInsufficient history90-day growthinsufficient historyInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 26, 2026pluginstats.com
@eyueldk/aisdk-toolkit-filesystem weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

@eyueldk/aisdk-toolkit-filesystem npm ranking history: currently #1959 (by weekly downloads).@eyueldk/aisdk-toolkit-filesystemnpm ranking · by weekly downloads · Last 90 days#1959current rank#1957#1958#1959#1960#1961Jul 30Aug 14Aug 29Sep 13Sep 28Oct 13Oct 28rankOct 28, 2026 – Oct 28, 2026 · 1 observations · Updated Oct 26, 2026pluginstats.com
@eyueldk/aisdk-toolkit-filesystem npm ranking history: currently #1959 (by weekly downloads).

Listing placement

All npm2,642 listings · 133 pages · 1,323 shown · page 118, #8 (overall #2,348)
All npm: every listing in weekly downloads order

Listing placement

AI SDKs292 listings · 15 pages · page 15, #12 (overall #292)
AI SDKs: every listing in weekly downloads order

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)
Recent weekly downloads observations for @eyueldk/aisdk-toolkit-filesystem
Date (UTC)Weekly downloadsChange vs. previous
9—

Data 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.