---
name: file-ingest
description: >
  Read files from a local folder and ingest their contents into Wall-E's brain
  as memories. Supports text files (.md, .txt, .json, .csv, .js, .py, .html, etc).
  Use for importing notes, documents, code, meeting notes, or any text-based
  knowledge into the brain for search and context.
version: 1.0.0
author: wall-e
execution: script
entry: run.js
trigger:
  type: manual
config:
  folder:
    type: string
    description: "Path to the folder to ingest (required)"
  pattern:
    type: string
    default: "*"
    description: "Glob pattern to filter files (e.g. '*.md', '*.txt')"
  recursive:
    type: boolean
    default: true
    description: "Whether to recurse into subdirectories"
  max_file_size_kb:
    type: number
    default: 500
    description: "Skip files larger than this (KB)"
tags: [sync, data, files]
permissions:
  - brain:write
---

# File Ingest

Reads text files from a local folder and stores each file's content as a memory
in Wall-E's brain. Files are deduplicated by path — re-running on the same folder
updates existing memories rather than creating duplicates.

## Usage

Run manually from the Tasks tab, or via the API:

```bash
curl -X POST http://localhost:3456/api/wall-e/skills/file-ingest/run \
  -H 'Content-Type: application/json' \
  -d '{"config": {"folder": "~/Documents/notes"}}'
```

## Supported File Types

`.md` `.txt` `.json` `.csv` `.js` `.ts` `.py` `.html` `.xml` `.yaml` `.yml`
`.sh` `.css` `.sql` `.env` `.cfg` `.ini` `.log` `.rst` `.org`

Binary files, images, and files exceeding the size limit are skipped.
