Skip to content
int2t05Public

About

Self-hosted Linux file manager for mounted disks, resumable uploads, browser-based reading, and human-reviewed AI file operations.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

FileSage — Self-Hosted Linux File Manager

FileSage logo

CI MIT License

Overview

A local-first, self-hosted Linux file manager for mounted disks. FileSage manages real directories, resumes large uploads, and lets you review AI-proposed file operations before they run.

简体中文

Status

The release workflow publishes verified Linux amd64 packages from version tags. See current status, acceptance evidence, and GitHub Releases.

What it does

  • Browse, search, filter, upload and organize files in their native directory structure. Mount additional disks beneath the configured root; folders remain the only categories.
  • Resume interrupted uploads (20 GiB per file and 20 GiB total staging by default; both configurable), download original files, and create or inspect supported archives.
  • Read common image, audio, video, PDF, text, Markdown, Office, spreadsheet, EPUB and archive formats in the browser. Unsupported or complex files remain available for download.
  • Ask an OpenAI-compatible model to clarify a task, then review the complete plan before it runs. Continue with follow-up tasks in the same saved conversation, including after a refresh. bypasspermission is on by default and runs steps in order; turn it off in Agent settings to run one step at a time. Expand a step to inspect its command, exit code, bounded output and file diff, then check the audit history. Bounded Shell output is retained in the task record and can inform the next turn in the same conversation.
  • Keep SQLite task and search metadata outside the managed files. The filesystem remains the source of truth.

Getting started

Requirements: Linux, Go 1.27.3 or newer, Node.js 24 and npm. Optional system tools enable formats and operations such as Office conversion, OCR, video posters and 7-Zip archives; see deployment.

cd web
npm ci
npm run build
cd ..
go build -o ./filesage ./cmd/filesage

mkdir -p "$HOME/FileSageFiles" "$HOME/.local/state/filesage"
export FILESAGE_ROOT="$HOME/FileSageFiles"
export FILESAGE_DATA_DIR="$HOME/.local/state/filesage"
export FILESAGE_WEB_DIR="$(pwd)/web/dist"
export FILESAGE_LISTEN_ADDR="127.0.0.1:8080"
./filesage

Open http://127.0.0.1:8080. FILESAGE_ROOT must already exist and FILESAGE_DATA_DIR must be outside it. The default listener is loopback. For LAN access, bind only to a trusted private interface and configure the host firewall. FileSage has no login or password.

Verify a change

go test -count=1 ./...
go vet ./...
go build ./...

cd web
npm ci
npm test
npm run typecheck
npm run build
npx playwright install chromium
npm run e2e

The browser test uses a local mock model and temporary files/database. GitHub Actions also runs race detection, vulnerability scanning and a Linux package smoke test.

Project docs

Contact and support

Report a reproducible bug or suggest an improvement through GitHub Issues. Do not post secrets, private file contents or exploitable security details there; see the security reporting guide for private reports.

Security boundary

FileSage is intended for a trusted personal network. It does not authenticate users or provide HTTPS termination. Anyone who can reach it can browse and change managed files, change the Agent approval mode, create and approve tasks, and consume the configured model quota. Keep it on loopback or a trusted LAN; do not expose it to the internet or an untrusted network. Agent chat messages are sent to the configured model as you converse. File-analysis tools read and send file contents only after you confirm an analysis card; review its listed data types first. Shell does not read file bodies automatically. After you confirm a Shell run, stdout and stderr are stored locally (up to 16 KiB per stream). The next turn sends the confirmed command, scope, working directory, execution status, bounded output and changed paths, types and statuses to the configured model as untrusted evidence. Command output may contain file contents or other sensitive information. See the Agent API notes.

License

FileSage-authored code and documentation are licensed under the MIT License. Third-party assets and dependencies retain their own terms; see third-party notices. The public repository contains research summaries, source links and collection tools; locally collected upstream documents are excluded.

About

Self-hosted Linux file manager for mounted disks, resumable uploads, browser-based reading, and human-reviewed AI file operations.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages