
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
@vox-ai-app/indexing
Advanced tools
Local file indexing, full-text search, and document parsing for Vox
Local file indexing, full-text search, and document parsing for Vox. Runs in a separate Electron utility process to keep the main process responsive.
npm install @vox-ai-app/indexing
Peer dependency: electron >= 28
VOX_USER_DATA_PATH — writable directory, database stored as knowledge-index.dbVOX_APP_PATH — app path, used to locate the parser workerimport {
bootIndexingRuntime,
shutdownIndexingRuntime,
addIndexFolder,
removeIndexFolder,
searchIndexedContextForTool,
getIndexingStatus,
setLogger,
setSentryCapture
} from '@vox-ai-app/indexing'
setLogger(logger)
setSentryCapture(captureException)
await bootIndexingRuntime()
await addIndexFolder('/Users/me/Documents')
const results = await searchIndexedContextForTool('query text', { limit: 5 })
await shutdownIndexingRuntime()
bootIndexingRuntime() // start the indexing utility process
shutdownIndexingRuntime() // graceful shutdown
rebuildIndexing() // wipe and re-index all folders
resetIndexingState() // clear state without reindexing
addIndexFolder(path) // add a folder to the index
removeIndexFolder(path) // remove a folder and its data
getTrackedIndexFolders() // list all tracked folders
pickIndexFolder() // open a native folder picker dialog
searchIndexedContextForTool(query, opts) // full-text search
listIndexedFilesForTool(path, opts) // list files under a path
readIndexedFileForTool(path) // read a specific indexed file
getIndexedChildren(path) // explorer tree children
getIndexingStatus() // current status + progress
For Electron apps that expose indexing over IPC:
import { registerIndexingIpc } from '@vox-ai-app/indexing/ipc'
registerIndexingIpc()
// Registers: indexing:get-folders, indexing:add-folder, indexing:remove-folder,
// indexing:rebuild, indexing:get-status, indexing:pick-folder,
// indexing:get-indexed-children, indexing:reset-state
For apps that want push-based status updates from the utility process:
import { setOnStatusChange } from '@vox-ai-app/indexing/process'
setOnStatusChange((status) => {
// status shape matches getIndexingStatus()
// updates are coalesced (~100ms) to avoid noisy bursts
console.log(status)
})
.pdf, .docx, .pptx, .xlsx, .odt, .odp, .ods, .rtf, and plain text files.
Register two additional entry points in your Electron build config:
// electron.vite.config.js
export default {
main: {
build: {
rollupOptions: {
input: {
index: 'src/main/index.js',
'indexing.process': 'node_modules/@vox-ai-app/indexing/src/process/process.js',
'indexing.parser.worker': 'node_modules/@vox-ai-app/indexing/src/parser/worker.js'
}
}
}
}
}
MIT
FAQs
Local file indexing, full-text search, and document parsing for Vox
We found that @vox-ai-app/indexing demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.