Not in the top 1,000 by GitHub stars
IceWhaleTech/filens
📄 Office / PDF / iWork / CAD / 3D / RAW / 360° 🔒 Browser-local preview & conversion 🤖 Agent CLI with OCR, structured text & layout extraction ⚡ Rust + WebAssembly 🧩 Vue 3 integration. Open-source, local-first. Your files, your device.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/filens/SKILL.md
Week of Nov 2, 2026 · +7 / −7 lines
Before Instructions only → After Instructions only
2f130f2ab623 → 66e01abbd368
- 20 Check `capacity.operations` before using source additions such as `search` or `similar`. Check `capacity.formats`, `capacity.conversionPairs`, and `capacity.ocr.available` for document operations; reading support does not imply conversion support, and an advertised OCR route does not prove that OCR is installed. Reading, directory scans and conversion are local; initial npm installation and explicit OCR setup may download dependencies.
+ 20 Check `capacity.operations` before using operations such as `search` or `similar`. Check `capacity.formats`, `capacity.conversionPairs`, and `capacity.ocr.available` for document operations; reading support does not imply conversion support, and an advertised OCR route does not prove that OCR is installed. Reading, directory scans and conversion are local; initial npm installation and explicit OCR setup may download dependencies.
- 33 {"operation":"understand","input":"/path/report.pdf","format":"json","layout":false,"maxBytes":8388608}
+ 33 {"op":"understand","input":"/path/report.pdf","format":"json","layout":false,"maxBytes":8388608}
- 65 Check `capacity.operations` for `summarize`; older published builds do not provide it. Use `filens summarize report.pdf --query 'budget risk' --summary-chars 1000 --json`, or pipe `{"operation":"summarize","input":"report.pdf","query":"budget risk","summaryChars":1000,"summaryRatio":0.3}`. `prune` is an alias. Query is optional. Defaults retain at most 30% and 2000 Unicode characters, including separators; this is a budget, not a promise to retain all important facts.
+ 65 Check `capacity.operations` for `summarize`; older published builds do not provide it. Use `filens summarize report.pdf --query 'budget risk' --summary-chars 1000 --json`, or pipe `{"op":"summarize","input":"report.pdf","query":"budget risk","summaryChars":1000,"summaryRatio":0.3}`. `prune` is an alias. Query is optional. Defaults retain at most 30% and 2000 Unicode characters, including separators; this is a budget, not a promise to retain all important facts.
- 71 Check `capacity.operations` for `search`. Use `filens search '/path/documents' --query 'budget risk' --json`, or pipe `{"operation":"search","input":"/path/documents","query":"预算 风险","format":"json"}`. Chinese and English quoted directory/query intents are supported. This is lexical BM25 with exact matching boosts, not embedding-based semantic retrieval. `--search-mode exact` matches case-sensitive literal text; `files` searches filenames without reading contents.
+ 71 Check `capacity.operations` for `search`. Use `filens search '/path/documents' --query 'budget risk' --json`, or pipe `{"op":"search","input":"/path/documents","query":"预算 风险","format":"json"}`. Chinese and English quoted directory/query intents are supported. This is lexical BM25 with exact matching boosts, not embedding-based semantic retrieval. `--search-mode exact` matches case-sensitive literal text; `files` searches filenames without reading contents.
- 81 Check `capacity.operations` for `similar`; published npm `0.2.0` lacks it. Source builds include it in Lite without OCR or model setup.
+ 81 Check `capacity.operations` for `similar`; older builds may lack it. Current Full and Lite bundles include it without OCR or model setup.
- 88 The aliases return `operation: "similar"`. JSON requests use `{"operation":"similar","input":"/path/photos","similarityMode":"images","threshold":8}`; mode is `images` (default) or `duplicates`. Full SHA-256 identifies duplicate files after size/prefix filtering. Perceptual image hashes identify possible variants, including different dimensions and compression, for JPEG, PNG, WebP, GIF, BMP and TIFF. This does not compare near-duplicate document text or retrieve different photos by semantic subject.
+ 88 The aliases return `op: "similar"`. JSON requests use `{"op":"similar","input":"/path/photos","similarityMode":"images","threshold":8}`; mode is `images` (default) or `duplicates`. Full SHA-256 identifies duplicate files after size/prefix filtering. Perceptual image hashes identify possible variants, including different dimensions and compression, for JPEG, PNG, WebP, GIF, BMP and TIFF. This does not compare near-duplicate document text or retrieve different photos by semantic subject.
- 111 {"operation":"convert","input":"/path/report.doc","output":"/path/report.docx","format":"json","options":{"locale":"zh-CN"}}
+ 111 {"op":"convert","input":"/path/report.doc","output":"/path/report.docx","format":"json","options":{"locale":"zh-CN"}}
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2f130f2ab623
No earlier version was observed for comparison.
Verified commit 66e01abbd36834ca20defc576ceb64d79efbd5b0
git clone --filter=blob:none --no-checkout https://github.com/IceWhaleTech/filens.git .hotskills/icewhaletech-filens && git -C .hotskills/icewhaletech-filens checkout --detach 66e01abbd36834ca20defc576ceb64d79efbd5b0
# Copy each selected skill directory from .hotskills/icewhaletech-filens into .agents/skills/<skill-name>/Heat
3.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- filens
skills/filens
How it works
filens
When your agent uses it
Read, search and compare local files with the FiLens CLI, or convert supported formats. Use for document evidence, OCR, layout, duplicate files and resized or recompressed image variants through the shared WASM engines.
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
2,832 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Run the CLI
- Interpret results and cite evidence
- OCR and layout
- Extract key excerpts without a model
- Find files and original evidence
- Find duplicate files and similar image variants
- Convert files
Files
SKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesSKILL.mdcore13,004 bytesagents/openai.yamlasset218 bytes
Read SKILL.md
# FiLens
Use FiLens to obtain local file contents and source evidence, then perform the user's requested reasoning yourself. `understand` prepares evidence; builds advertising `summarize` can select original key excerpts without a language model. Translation, paraphrasing and question answering belong to the caller.
## Run the CLI
Prefer an installed `filens`. Otherwise use `npx --yes filens-cli` (includes Chinese/English OCR) or `npx --yes filens-cli-lite` (OCR optional). In a source checkout, build with `npm run build:agent` or `npm run build:agent:lite` and invoke `./dist/filens` or `./dist/agent-lite/filens`.
Inspect the running build when supported formats or OCR availability matter:
```sh
filens capacity --json
```
View the complete source on GitHubSkills included
- filens
Repository facts
- License
- MIT
- Created
- Sep 18, 2026
- Last pushed
- Nov 5, 2026
- Forks
- 8
- Open issues
- 0
- Project activity
- Active
Before you install
Instructions onlyAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 17 notes
skills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/filens/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- No network access
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- No access to secrets
- No requests to vote in Hot
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/filens/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/filens/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/filens/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/filens/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/filens/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.