[Feature]: Make the filee command easier for scripts and AI agents to drive
Maintainer thường phản hồi trong vòng 1 ngày
@SeoJCalive đang làm issue này rồi.
Từ ngày 29/10/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
What would you like Filee to do?
Make a few small additions to the filee command so scripts and AI coding agents (Claude Code, Codex, Cursor, Copilot) can use an installed Filee as a local tool without parsing console text. Existing output stays as it is; these mostly add to it (the one change is in item 1).
- JSON for
formatsandpresets: accept--jsonand print one JSON document. Forformats <format>, list what it converts to now and what it would convert to with optional engines. Today--jsonis accepted there but ignored, and the text table comes out, so those two calls would start printing JSON instead. - Why a file failed, as data: in
convert --json, add the existing error key (for exampleerror.no_route) to failed files. When a conversion only needs an optional engine, also list which engines would make it possible. - Which engines converted a file (optional): the ids of the converters that actually ran for each file in
convert --json(a route can have several steps, and it can change while running). Core would need to record them onFileResult, so only if you want it. - A short guide for agents: one page telling an agent how to call
filee(always--jsonand-o, exit code 0 means nothing failed so checkconverted/state/outputs, point the user to Settings → Engines when an engine is missing). It could be an Agent SkillsSKILL.mdin the repo, a short section on filee.sh/cli, or both.
1 and 2 are the main part. 4 would be written against them.
Why / when would you use it?
filee is already a good fit for this: it runs offline, needs no prompts, has convert --json and clear exit codes, and Setup puts it on PATH. The gaps are in the places where a program has to decide what to do next.
Can this file become X? Answering this means splitting text like:
Markdown (md, markdown) converts to:
png, jpg, webp, ... pdf, docx, ... txtz
With optional engines (install them in Filee, Settings → Engines):
hwp, pptx, pptm, ... tcr
Is it impossible, or does it just need an engine? Without optional engines, md → pptx (listed above as possible with an engine; Pandoc does it) fails the same way as txt → mp3, which no engine can do:
"error": "No engine can do this conversion (md \u2192 pptx)"
"error": "No engine can do this conversion (txt \u2192 mp3)"
A caller can't tell these apart from the conversion JSON alone; it has to parse the formats text or guess what to try next, instead of telling the user "install Pandoc in Settings → Engines". filee formats already knows the difference, but convert doesn't show it.
The same additions help plain shell and PowerShell scripts, not only AI tools.
Ideas for how it could work
A possible shape (names are up to you):
// filee formats md --json
{ "format": "md", "to": ["pdf", "docx", "html"], "withOptionalEngines": ["pptx", "mobi"] }
// a failed file in filee convert doc.md --to pptx --json
{ "source": "doc.md", "state": "failed", "outputs": [],
"error": "No engine can do this conversion (md → pptx)",
"errorKey": "error.no_route", "needsEngines": ["pandoc"] }
- Compatibility: existing
convert --jsonkeys, states and exit codes stay as they are, and output without--jsondoesn't change. The only change is thatformats --jsonandpresets --jsonprint JSON instead of ignoring the flag. Messages stay in English, as decided in #552. New behaviour gets tests inFilee.Cli.Tests. - Engine ids: the ids already used for engines and engine priority (
pandoc,libreoffice, …).needsEngineswould only name engines offered in Settings → Engines (theEngineDownloads.Packageslist), never bundled or system parts like 7-Zip or the Windows JPEG XR codec. It's the missing ones on one route that works once they're installed (all of them together, not alternatives). The JSON list of "with optional engines" targets in item 1 would use the same rule. - No MCP server: a local MCP server would only wrap
fileeand be one more thing to maintain. With JSON output and exit codes the command can be used directly. - Not included: installing engines from the command line, and a
--dry-runmode (1 and 2 cover most of what it would show).
I'd like to work on this myself. I'd send 1 and 2 together as one PR, then 3 and 4 separately if you want them. A few things I'd like your call on:
- Scope: is this okay to do, and how far (1–4)?
- Engines per file (3): worth recording them on
FileResultin Core? - Agent guide (4): in the repo as
SKILL.md, on filee.sh/cli, or both?
Please let me know whether I can go ahead with this. If you have any thoughts, I'll take them into account.
- Ngôn ngữ chính
- C#
- Star
- 3.6k
- Fork
- 192
- Merge trung bình
- 7 giờ 20 phút
- Pull request đã merge (30 ngày)
- 320
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của KnifeLemon/Filee
-
[Format]: .embĐang mởformats
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
KnifeLemon/Filee#770 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Format]: .xdfĐang mởformats
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
KnifeLemon/Filee#769 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Format]: .lstĐang mởformats
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 25/100
KnifeLemon/Filee#767 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature]: H266Đang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
KnifeLemon/Filee#756 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Format]: .zmwĐang mởformats
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
KnifeLemon/Filee#748 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của KnifeLemon/Filee
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 89/100
getsentry/sentry-dotnet#5833 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: core priority: low type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
RicoSuter/Namotion.Interceptor#863 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
bitfoundation/bitplatform#14428 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area-cli
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày