
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
flowsquire
Advanced tools
Local-first automation platform for organizing files on your computer. No cloud, no AI, no subscriptions — just simple WHEN → DO workflows.
A local-first automation platform for organizing files on your computer. No cloud, no AI, no subscriptions — just simple WHEN → DO workflows.
npm install -g flowsquire
flowsquire init # 30 sec setup wizard
flowsquire start # Drop a file in ~/Downloads
That's it. Your files organize themselves.
npm install -g flowsquire
Ghostscript (required for PDF compression):
# macOS
brew install ghostscript
# Ubuntu/Debian
sudo apt-get install ghostscript
# Windows
# Download from https://www.ghostscript.com/download/gsdnld.html
Note: Without Ghostscript, PDF compression will fail, but all other features work normally.
# Run interactive setup wizard
flowsquire init
# Start the file watcher
flowsquire start
# Or with dry-run (preview only)
flowsquire start --dry-run
During flowsquire init, you'll be asked:
nested — Organize inside Downloads subfolders (Images/, Videos/, etc.)system — Move to system folders (Pictures/, Movies/, Music/, etc.)metadata — Organize by App/Domain (macOS only)by-app — Organize by App name onlyby-date — Organize by date (works on all platforms)Automatically organizes PDFs based on filename and size:
| Priority | Rule | Condition | Nested Mode Destination | System Mode Destination |
|---|---|---|---|---|
| 500 | Large PDF Compression | > threshold (default: 8MB) | ~/Downloads/PDFs/{category}/Compressed/ | ~/Documents/PDFs/{category}/Compressed/ |
| 450 | arXiv Research Papers | YYMM.NNNNN format | ~/Downloads/PDFs/Research(arXiv)/ | ~/Documents/PDFs/Research(arXiv)/ |
| 400 | Invoice Organizer | invoice, bill, payment, receipt, tax | ~/Downloads/PDFs/Invoices/ | ~/Documents/PDFs/Invoices/ |
| 300 | Bank Statement | bank, statement, transaction, finance, credit, debit | ~/Downloads/PDFs/Finance/ | ~/Documents/PDFs/Finance/ |
| 200 | Study Notes | notes, note, lecture, study, class, course, assignment, homework, exam | ~/Downloads/PDFs/Study/ | ~/Documents/PDFs/Study/ |
| 100 | Default | any PDF | ~/Downloads/PDFs/Unsorted/ | ~/Documents/PDFs/Unsorted/ |
Features:
gs, Windows: gswin64c)flowsquire init)Smart Compression: Large PDFs exceeding your configured threshold are automatically categorized before compression:
PDFs/{category}/PDFs/{category}/Compressed/arXiv Research Papers: Academic papers from arXiv.org are automatically detected by their standardized filename format:
YYMM.NNNNN (e.g., 2601.16163.pdf)YYMM.NNNN (e.g., 0706.0001.pdf)YYMM.NNNNNvV (e.g., 2601.16163v1.pdf)Example: 2601.16163v1.pdf → PDFs/Research(arXiv)/2601.16163v1.pdf
Note: Currently only arXiv papers are auto-detected for the Research category. Support for other academic paper sources (DOI-based filenames, keywords like "paper", "journal", "conference") is planned for future releases.
Categories detected from filename:
Multilingual Support:
FlowSquire automatically detects PDF categories in 12 languages: English, German, French, Spanish, Italian, Portuguese, Dutch, Russian, Chinese (Simplified), Japanese, Korean, and Arabic. Files like Rechnung_2026.pdf, ACME銀行_statement.pdf, or 发票_2026.pdf are automatically sorted into the correct category.
Example: invoice_large.pdf (10MB) → PDFs/Invoices/invoice_large.pdf + PDFs/Invoices/Compressed/invoice_large_compressed.pdf
Sorts non-PDF files by type:
| Type | Extensions | Nested Mode Destination | System Mode Destination |
|---|---|---|---|
| Images | jpg, jpeg, png, gif, webp, svg | ~/Downloads/Images/ | ~/Pictures/Downloads/ |
| Videos | mp4, mov, avi, mkv | ~/Downloads/Videos/ | ~/Movies/ |
| Music | mp3, wav, flac, aac | ~/Downloads/Music/ | ~/Music/ |
| Archives | zip, rar, 7z, tar, gz | ~/Downloads/Archives/ | ~/Documents/Archives/ |
| Documents | doc, docx, txt, rtf, xls, xlsx, ppt, pptx | ~/Downloads/Documents/ | ~/Documents/Documents/ |
| Installers | dmg, pkg, exe, msi | ~/Downloads/Installers/ | ~/Documents/Installers/ |
| Code | js, ts, jsx, tsx, py, rb, go, rs, java, cpp, c, h | ~/Downloads/Code/ | ~/Documents/Code/ |
Organizes screenshots based on your chosen mode:
Metadata Mode (macOS only, requires Accessibility permissions):
AppName/Domain/{filename}_{date}_{time}.pngGoogle Chrome/aistudio.google.com/SCR-2026-02-01_16-41.pngBy App Mode:
AppName/{filename}.pngGoogle Chrome/SCR-20260201-ornd.pngBy Date Mode (works on all platforms):
Year/Month/{filename}.png2026/February/SCR-20260201-ornd.pngNote: On non-macOS platforms, metadata mode falls back to by-date automatically.
flowsquire init # Interactive setup wizard
flowsquire start # Start file watcher
flowsquire start --dry-run # Preview mode (no actual changes)
flowsquire rules # List all rules
flowsquire config # Show all configured paths and settings
flowsquire config --<key> <value> # Set a config value
flowsquire config --<key> # Get a config value
Path Settings:
--downloads <path> — Watch folder for new files--documents <path> — Documents organization folder--screenshots <path> — Screenshots folder--pictures <path> — Pictures folder--videos <path> — Videos/Movies folder--music <path> — Music folderMode Settings:
--downloads-mode <nested|system> — Downloads organizer mode--screenshot-mode <metadata|by-app|by-date> — Screenshot organizer mode--pdf-compression-threshold-mb <number> — PDF compression threshold in MBExamples:
flowsquire config --downloads ~/Downloads
flowsquire config --downloads-mode system
flowsquire config --screenshot-mode by-date
flowsquire config --pdf-compression-threshold-mb 12
Note: After changing modes, delete rules and re-run
flowsquire initto regenerate rules.
Rules are stored in .flowsquire/rules.json:
{
"id": "...",
"name": "My Rule",
"enabled": true,
"priority": 100,
"tags": ["pdf", "invoice"],
"trigger": {
"type": "file_created",
"config": { "folder": "/Users/me/Downloads" }
},
"conditions": [
{ "type": "extension", "operator": "equals", "value": "pdf" },
{ "type": "name_contains", "operator": "equals", "value": "invoice" }
],
"actions": [
{
"type": "move",
"config": {
"destination": "/Users/me/Documents/Invoices",
"pattern": "{filename}_{YYYY}-{MM}-{DD}",
"createDirs": true
}
}
]
}
extension — File extension (e.g., "pdf", "jpg")name_contains — Filename contains text (case-insensitive)name_starts_with — Filename starts with textname_ends_with — Filename ends with textsize_greater_than_mb — File size in MBmove — Move file to destinationcopy — Copy file to destinationrename — Rename filecompress — Compress PDF (requires Ghostscript)Date/Time:
{filename} — Original filename without extension{YYYY} — Year (2026){MM} — Month number (01-12){Month} — Month name (January, February, etc.){DD} — Day (01-31){HH} — Hour (00-23){mm} — Minute (00-59){ss} — Second (00-59)Screenshot Metadata (macOS only):
{app} — Foreground application name (e.g., "Google Chrome"){domain} — Website domain (e.g., "github.com")# Clone repo
git clone git@github.com:miit-daga/flowsquire.git
cd flowsquire
# Install dependencies
npm install
# Build
npm run build
# Run in dev mode
npm run dev
# Test
npm test
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ CLI │────▶│ File Watcher│────▶│ Rule Engine│
│ (cli.ts) │ │ (chokidar) │ │ │
└─────────────┘ └──────────────┘ └──────┬──────┘
│
┌──────────────┐ │
│ Actions │◀───────┘
│ (move/copy/ │
│ compress) │
└──────────────┘
MIT
Your computer should work for you. Not the other way around.
FAQs
Local-first automation platform for organizing files on your computer. No cloud, no AI, no subscriptions — just simple WHEN → DO workflows.
We found that flowsquire demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.