keyv-file

SKILL.md

keyv-file

keyv-file is a fast, JSON-based storage adapter for Keyv. It is specifically optimized for performance through asynchronous batch writing and automatic background cleanup of expired data.


Configuration Options

When initializing KeyvFile, you can fine-tune its behavior using the following options:

Option Default Value Description
filename ${os.tmpdir()}/keyv-file/default.json The path where your data is persisted.
expiredCheckDelay 86400000 (24h) Interval (ms) to scan and purge expired keys from the file.
writeDelay 100 Delay (ms) to batch multiple write operations, reducing disk I/O.
encode JSON.stringify Custom serialization function.
decode JSON.parse Custom deserialization function.

Usage Patterns

1. Standard Keyv Integration

The most common way to use it is as a store for the main Keyv instance.

const Keyv = require('keyv')
const { KeyvFile } = require('keyv-file')

const keyv = new Keyv({
  store: new KeyvFile({
    filename: './data/cache.json',
    writeDelay: 50 // Faster writes for high-frequency updates
  })
});

2. The "Field" Pattern (Direct Usage)

You can use KeyvFile directly and utilize makeField for a more declarative, type-safe API.

import KeyvFile, { makeField } from 'keyv-file'

class MyDatabase extends KeyvFile {
  constructor() {
    super({ filename: './db.json' })
  }

  // Creates a dedicated helper for a specific key
  userSettings = makeField(this, 'user_settings_key')
}

const db = new MyDatabase()
await db.userSettings.set({ theme: 'dark' })
const settings = await db.userSettings.get({ theme: 'light' }) // returns default if empty

Weekly Installs
4
Repository
zaaack/prompts
First Seen
Feb 16, 2026
Installed on
opencode4
github-copilot4
codex4
kimi-cli4
gemini-cli4
amp4