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/promptsFirst Seen
Feb 16, 2026
Security Audits
Installed on
opencode4
github-copilot4
codex4
kimi-cli4
gemini-cli4
amp4