Skip to main content
Glama
README.md
<p align="center">
  <img src="https://em-content.zobj.net/source/apple/391/file-folder_1f4c1.png" width="120" alt="file folder" />
</p>

<h1 align="center">fileman</h1>

<p align="center">
  <strong>messy folders in, organized library out</strong>
</p>

<p align="center">
  <a href="https://github.com/xiaojiou176-open/fileman/stargazers"><img src="https://img.shields.io/github/stars/xiaojiou176-open/fileman?style=flat&color=yellow" alt="Stars"></a>
  <a href="https://github.com/xiaojiou176-open/fileman/commits/main"><img src="https://img.shields.io/github/last-commit/xiaojiou176-open/fileman?style=flat" alt="Last Commit"></a>
  <a href="LICENSE"><img src="https://img.shields.io/github/license/xiaojiou176-open/fileman?style=flat" alt="License"></a>
</p>

<p align="center">
  <a href="#what-you-get">What You Get</a> •
  <a href="#install">Install</a> •
  <a href="#how-it-work">How It Work</a> •
  <a href="#ecosystem">Ecosystem</a>
</p>

---

fileman is a local-first file organizer. Drop a messy folder. Get a manifest, a plan, and a one-click apply. Your originals never move until you say so.

```
┌──────────────────────────────────────┐
│  LOCAL-FIRST          ████████ 100%  │
│  SOURCE-TRACEABLE     ████████ 100%  │
│  TYPING REQUIRED      ░░░░░░░░   0%  │
│  VIBES                ████████ ZERO  │
│                                FILLER│
└──────────────────────────────────────┘
```

> AI-assisted file triage. Manifest-first, never destructive.

## What You Get

| Surface | What |
|---|---|
| `fileman cli` | Scan, plan, manifest. Apply only when you nod. |
| `fileman webui` | Browse the plan. Approve, edit, or send back for another pass. |
| `fileman mcp` | Same engine, exposed as an MCP server for any agent. |
| `contracts & manifest` | Plans are diffable. Plans are reviewable. Plans are receipts. |
| `public skills` | Drop into Claude/Codex/OpenClaw. Hand it a folder. Get a library. |

> [!IMPORTANT]
> Local-first by default. No silent telemetry. No cloud round-trip. Your data stays on your machine until you explicitly ship it somewhere.

## Install

```bash
git clone https://github.com/xiaojiou176-open/fileman.git
cd fileman
# follow the per-stack quickstart in INSTALL.md or docs/
```

Three commands. No `curl | sh`. No login. Read what you run.

Install break? Open your favorite agent and say *"Read AGENTS.md and bootstrap fileman for me."* Agent fix own brain. Long version: [`docs/`](./docs/).

## How It Work

The repo is seven layers — exactly the seven commits in `git log`. New work goes in as small named PRs. No 50-file mystery commits.

| Layer | What |
|---|---|
| `chore: scaffold` | License, governance, hygiene gates, CI scaffolding. |
| `feat(core)` | The primary engine. The reason fileman exists. |
| `feat(modules)` | Packages, adapters, services, plugins. The second floor. |
| `feat(contracts)` | Schemas, configs, public boundaries. Other code talks here. |
| `test:` | Receipts. Everything in this layer must run. |
| `feat(ops)` | Scripts, infra, CI helpers, build glue. |
| `docs:` | Public docs surface. The pretty face. |

`git log` reads like a building floor plan. Look once, know the whole shape.

## Ecosystem

fileman lives in the **yard family**: seven yards. one philosophy: structured input, structured output, structured proof.

| Repo | What |
|---|---|
| [**switchyard**](https://github.com/xiaojiou176-open/switchyard) | model & agent runtime switch board |
| [**browserclickyard**](https://github.com/xiaojiou176-open/browserclickyard) | your AI clicks, your browser obeys |
| [**noteyard**](https://github.com/xiaojiou176-open/noteyard) | your Apple Notes never really die |
| [**dealyard**](https://github.com/xiaojiou176-open/dealyard) | let prices fight, you sit and watch |
| [**docyard**](https://github.com/xiaojiou176-open/docyard) | docs site in, markdown out, no scraping by hand |
| [**fileman**](https://github.com/xiaojiou176-open/fileman) *(you here)* | messy folders in, organized library out |
| [**proofyard**](https://github.com/xiaojiou176-open/proofyard) | every claim ships with its receipt |

Cross-family taste:
[**BeamMe**](https://github.com/xiaojiou176-open/BeamMe) ·
[**BrewMe**](https://github.com/xiaojiou176-open/BrewMe) ·
[**OpenVibeCoding**](https://github.com/xiaojiou176-open/OpenVibeCoding) ·
[**proofyard**](https://github.com/xiaojiou176-open/proofyard).

## Star This Repo

If fileman saves you a click, an hour, or a headache — star costs zero. Fair trade. ⭐

[![Star History Chart](https://api.star-history.com/svg?repos=xiaojiou176-open/fileman&type=Date)](https://star-history.com/#xiaojiou176-open/fileman&Date)

## Also by Yifeng[Terry] Yu

- **[switchyard](https://github.com/xiaojiou176-open/switchyard)** — model & agent runtime switch board
- **[browserclickyard](https://github.com/xiaojiou176-open/browserclickyard)** — your AI clicks, your browser obeys
- **[BeamMe](https://github.com/xiaojiou176-open/BeamMe)** — beam your agent config to any planet
- **[BrewMe](https://github.com/xiaojiou176-open/BrewMe)** — wake up, news already brewed
- **[OpenVibeCoding](https://github.com/xiaojiou176-open/OpenVibeCoding)** — AI codes overnight, you ship in the morning

## License

MIT — small print, big freedom.

TDQS

B3.4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct action (list, get, create, preview, apply, scan, etc.) across different domains (jobs, manifest, review rules, inbox). Overlap is minimal, with only 'analyze.create' and 'inbox.analyze' slightly related but clearly differentiated by source.

Naming Consistency5/5

All tools follow a consistent `domain.action` or `domain.subdomain.action` pattern using lower_snake_case. Verbs like list, get, create, preview, apply, scan are used uniformly, making the naming predictable.

Tool Count5/5

With 16 tools, the set is well-scoped for a file management system covering jobs, manifests, review rules, inbox processing, settings, and reports. No tool feels redundant or missing in terms of count.

Completeness3/5

The tool surface covers core workflows (analyze, review, manifest patching, inbox scanning) but lacks execution tools for applying changes (only preview exists), job cancellation, or manifest creation. Some lifecycle gaps exist.

Maintenance

ActivityInactive
ResponsivenessNo issues