Handy desktop toolset for developers.
Hi! Thanks for using MooTool. "Moo" is named after my daughter.
I keep building and improving MooTool to support my own day-to-day development work.
Fewer Java developers build with Swing nowadays, but I still enjoy it. So in every bit of free time, I kept working on this project. I finally shipped something, though many similar tools exist on the web.
Hope you enjoy using it as much as I enjoyed building it.
Windows • Linux • macOS. Target platforms and current status are listed below; editions under development have not completed release acceptance on every target platform.
MooTool now has 7 independent product lines, each with its own code, build, version, installation identity, data, and update channel. They can be installed side by side and evolve independently. Version numbers are specific to each product; see its documentation for feature coverage.
| Product / source | Technology and overview | Target platforms | Status / download |
|---|---|---|---|
| MooTool Next Electron | Electron, Vite, React, TypeScript; the currently recommended desktop edition. | Windows / Linux / macOS | Stable: Download 1.2.0 |
| MooTool Java | Java, Swing; the original desktop edition, still maintained. | Windows / Linux / macOS | Stable: Download 1.8.6 · Gitee mirror |
| MooTool Next Tauri | Tauri 2, Rust, React, TypeScript; 25 tools with independent storage and updates. | Windows / Linux / macOS | Release candidate: Download 0.1.0-rc.2 |
| MooTool Next macOS Native | SwiftUI, AppKit, system frameworks; native workspaces, JSON vault, quick notes, and image attachments. | macOS 14+ | 0.6.0 development build; build .app / DMG from source. |
| MooTool Next Flutter | Flutter, Dart; tools and desktop channels are implemented, with platform acceptance and some capabilities still in progress. | Windows / Linux / macOS | 0.1.0 development build; local run and unsigned packaging scripts available. |
| MooTool Next Compose | Kotlin, Compose Multiplatform Desktop; multiple tools, quick notes, and backup/restore implemented. | Windows / Linux / macOS | 0.1.0 development build; local macOS app-image build verified, with its own JVM runtime. |
| MooTool Next FX | OpenJDK, OpenJFX (JavaFX); application shell, JSON vault, encoding/decoding, and regex tools implemented. | Windows / Linux / macOS | 0.1.0-SNAPSHOT early development build; local macOS app-image packaging implemented. |
Follow the product links for source code or the product README, including development setup, running, packaging, and acceptance notes. The current macOS native product lives in next-macos-native/; macos/ contains the early SwiftUI prototype.
MooTool Next Electron 1.2.0 lets local AI clients use MooTool through MCP or a standalone Skill. Tools use the bundled runtime, so no separate Node.js installation is needed and calls work with the MooTool window closed.
| Client | One-click integration |
|---|---|
| Codex | MCP, Skill, or both |
| Claude Code | MCP, Skill, or both |
| Cursor | MCP |
- 11 tools: JSON formatting and JSONPath queries, encoding/decoding, timestamps, text diffs, hashes, UUIDs, plus search and read tools for Quick Notes and JSON documents.
- Installation management: preview generated configuration, test the connection, inspect installation status, repair/update, and uninstall. Existing configuration is backed up; conflicting user edits are reported and preserved.
- Read-only document access: off by default, with a separate grant for each vault. Disabling access takes effect on the next call; moving a vault revokes access. Reads are paginated and exclude hidden files, symbolic links and files ignored by the vault root's
.gitignore.
To get started:
- Install MooTool at a permanent location: macOS Applications, the Windows installer, or Linux deb. AppImage and Windows portable runtimes cannot be registered for one-click AI integration.
- Open Settings → AI integration, choose the client and integration mode, review the preview, then click Install in one click.
- Restart the AI client or reload its MCP / Skills, enabling the tools if prompted. Try “Use MooTool to sort the keys in this JSON.”
- For saved documents, enable Allow reading Quick Notes or Allow reading JSON documents in the same settings page, then ask the AI to search the corresponding vault.
Other local stdio MCP clients can use Copy MCP configuration. See the AI integration guide for installation paths, limits, standalone Skill usage and verification records.
The screenshots below show MooTool Java. See each product's README for its UI and acceptance records.
Main feature screenshots below. Translation, UA analysis, Image assistant, PDF, environment variables, system info, config conversion, Protobuf, and other modules do not have dedicated screenshots yet — open the corresponding tabs after install.
- MooTool Next Electron 1.2.0 (recommended)
- MooTool Java 1.8.6
- MooTool Next Tauri 0.1.0-rc.2 (release candidate)
- All GitHub Releases
- MooTool Java releases on Gitee
For macOS Native, Flutter, Compose, and FX, see the product READMEs above for source builds. A development version number does not imply that a public stable installer is available.
If MooTool helps you, consider supporting the evenings and weekends spent building it — your appreciation keeps me motivated.
This feature map describes MooTool Java. See each product's documentation for implemented features, differences, and planned work.
Many modules include a History sub-tab: search, apply, copy input/output, delete, and clear all.
MooTool
├── Quick Note
│ ├── Multi-language syntax highlighting
│ ├── Common code formatting
│ │ ├── SQL
│ │ ├── JSON
│ │ └── Java
│ ├── Ordered / unordered lists
│ ├── Markdown live preview
│ ├── Insert images in Markdown
│ ├── Export / batch export, search, global find
│ ├── Document info (created/updated time, word count, etc.)
│ ├── Link detection and click-to-open
│ ├── Font, font size, list colors
│ └── Quick replace panel
│ ├── Batch text operations in the side panel (selected lines only):
│ ├── Auto save
│ ├── Trim spaces
│ ├── Remove empty lines
│ ├── Remove tabs (\t)
│ ├── Scientific notation → plain number
│ ├── Plain number → scientific notation
│ ├── Plain number → thousands separator
│ ├── Thousands separator → plain number
│ ├── snake_case → camelCase
│ ├── camelCase → snake_case
│ ├── UPPER → lower
│ ├── lower → UPPER
│ ├── Remove line breaks
│ ├── Line break → comma
│ ├── Line break → ','
│ ├── Line break → ","
│ ├── Comma → line break
│ ├── ',' → line break
│ ├── "," → line break
│ ├── Tab (\t) → line break
│ ├── Deduplicate lines
│ ├── Deduplicate lines and count occurrences
│ ├── Escape
│ ├── Unescape
│ ├── Reverse lines
│ ├── Sort lines A→Z
│ ├── Sort lines Z→A
│ └── Sort by pinyin
├── Time convert
│ ├── Timestamp conversion
│ │ ├── Date/time → timestamp (ms)
│ │ ├── Timestamp (ms) → date/time
│ │ ├── Timestamp (s) → date/time
│ │ └── Date/time → timestamp (s)
│ ├── History
│ ├── Fullscreen clock
│ └── Timezone picker and quick shortcuts
├── JSON
│ ├── JSON format
│ │ ├── Sort keys alphabetically
│ │ ├── Ignore key case
│ │ └── Check duplicate keys
│ ├── JSON minify
│ ├── Export / batch export, find
│ ├── Font and size
│ ├── Swap JSON keys and values
│ ├── JSON → XML
│ ├── XML → JSON
│ ├── JavaBean → JSON
│ ├── JSON → JavaBean
│ ├── Escape
│ ├── Unescape
│ ├── Get JSON via JSON Path
│ └── Visual JSON Path picker
├── Translation
│ ├── 20+ languages with auto-detect (Chinese, English, Japanese, Korean, French, Spanish, German, Russian, …)
│ ├── Google / Bing translators with automatic fallback
│ ├── Save to word book
│ ├── Word book
│ │ ├── Search, create, edit, delete
│ │ └── Retranslate
│ └── Translation history
├── Host
│ ├── Host formatting / syntax highlight
│ ├── Manage / view system hosts
│ ├── Import / export hosts
│ └── Search, find & replace
├── HTTP
│ ├── HTTP requests: GET/POST/PUT/DELETE/HEAD/PATCH/OPTIONS
│ ├── Import cURL
│ ├── Format HTTP header/body
│ ├── Request management
│ ├── Request history
│ └── Search
├── UA analysis
│ ├── Parse User-Agent (browser, engine, OS, device type/brand/model, …)
│ ├── Detect mobile / bot crawlers
│ ├── Preset UAs (Chrome, Firefox, Safari, Edge, WeChat in-app browser, curl, …)
│ ├── Paste / clear
│ └── History
├── Encode / decode
│ ├── Native → Unicode
│ ├── Unicode → Native
│ ├── URL encode / decode
│ ├── Native → hex
│ ├── Hex → Native
│ ├── Native → ASCII (decimal/hex code points)
│ ├── ASCII → Native
│ └── History
├── QR code
│ ├── Generate QR code
│ │ ├── Custom size
│ │ ├── Custom error correction level
│ │ └── Custom logo
│ ├── Decode QR code
│ ├── Read from clipboard
│ └── History
├── Crypto / random
│ ├── Supports Chinese national crypto SM2 / SM3 / SM4
│ ├── Symmetric encrypt/decrypt
│ │ ├── AES
│ │ ├── DES
│ │ └── SM4
│ ├── Asymmetric encrypt/decrypt
│ │ ├── RSA
│ │ └── SM2 (encrypt/decrypt, sign, verify)
│ ├── Digest (file/text)
│ │ ├── MD5
│ │ ├── SHA1
│ │ ├── SHA256
│ │ ├── SHA384
│ │ ├── SHA512
│ │ └── SM3
│ ├── Base64 encode/decode
│ ├── Base32 encode/decode
│ ├── Random UUID
│ ├── Random numeric/alpha/alphanumeric strings (custom length)
│ ├── Random strong passwords (custom length)
│ └── History
├── Calculator
│ ├── Arithmetic
│ ├── Base conversion
│ ├── Greatest common divisor
│ ├── Least common multiple
│ ├── Permutations & combinations
│ └── History
├── Network / IP
│ ├── IP lookup
│ ├── Domain lookup
│ ├── netstat
│ ├── ping
│ ├── IPv4 ↔ long conversion
│ ├── WHOIS lookup
│ └── Flush DNS
├── Color board
│ ├── Theme / standard palettes
│ ├── Screen color picker
│ ├── Free-form color pick
│ ├── Color format conversion
│ ├── Favorite colors
│ ├── Color ops (invert, intersect, add, difference, average)
│ └── History
├── Image assistant
│ ├── Local image host
│ ├── Screenshot
│ ├── Clipboard import / export
│ ├── Zoom toolbar (in/out/original/fit)
│ ├── Image Base64 encode/decode
│ ├── Image compression
│ ├── Image watermark
│ └── Image OCR (Tesseract)
├── Cron
│ ├── Cron expression builder
│ ├── Parse cron (Linux 5-field / Quartz 6–7 field)
│ ├── Validate cron
│ ├── Cron to natural language
│ ├── Next 10 run times
│ ├── Favorite cron expressions
│ ├── History
│ └── Common cron examples
├── Regex
│ ├── Regex match test
│ ├── Favorite regex
│ ├── Common regex patterns
│ └── History
├── Java
│ ├── Java/Groovy format & highlight
│ ├── Java/Groovy interpret & run
│ └── History
├── Reformat
│ ├── Format uploaded files
│ │ ├── Nginx config
│ │ ├── XML
│ │ ├── HTML
│ │ └── Java
│ ├── Paste & format (Nginx / Java / XML / HTML)
│ └── History
├── PDF
│ ├── Split PDF
│ └── Merge PDF
├── Environment
│ ├── System environment variables (table)
│ ├── Java properties
│ └── Refresh / export
├── System info
│ ├── Collects local system/hardware info via OSHI; loads on first visit or refresh:
│ ├── System (OS, computer, firmware, motherboard, …)
│ ├── CPU
│ ├── Memory
│ ├── Storage
│ └── Network
├── Config conversion
│ ├── Properties → YAML
│ ├── YAML → Properties
│ ├── YAML validate (syntax & line numbers)
│ ├── YAML format
│ ├── History
│ ├── JSON → YAML (TODO)
│ └── YAML → JSON (TODO)
├── Text diff
│ ├── Side-by-side diff (sync scroll)
│ ├── Unified diff
│ └── Copy diff
├── Protobuf
│ ├── JSON ↔ Protobuf binary
│ │ ├── Hex / Base64 output
│ │ └── Format `.proto` definitions
│ ├── Decode wire format (no `.proto` required)
│ ├── Hex / Base64 conversion
│ └── History
└── App & settings
├── Sync & backup (Git sync, data export)
├── Keyboard shortcuts
├── Custom data directory
├── Check for updates on startup
├── SQL dialect
├── System tray
├── Window behavior
│ ├── macOS / Windows: close button hides to Dock/taskbar; app keeps running
│ └── Linux: close button quits the app
├── Appearance
│ ├── Many themes (Flat Light/Dark, macOS, One Dark, Monokai, …)
│ ├── Accent color
│ ├── Follow system accent
│ ├── Immersive window background
│ ├── Maximize on startup
│ └── Tab icons only mode
└── Layout
├── Panel position (top/bottom/left/right)
└── Global font & size
Hutool
FlatLaf
vscode-icons
iconfont
See the multi-product release conventions for version, Git tag, GitHub Release, Latest, and CI isolation rules.
Each product has an independent project. Read its README linked in the product table and work in the corresponding directory. The JDK, IntelliJ IDEA, Maven, and packaging instructions below apply only to MooTool Java at the repository root.
Minimum JDK: 21
Before you start, configure IntelliJ IDEA as shown below, then run maven clean:

Packaging JDKs can be downloaded and cached locally:
- JDK archives:
downloads/jdks/ - Extracted JDKs:
jdks/<os>/<arch>/home
The download script uses Eclipse Temurin 21 and skips re-download when already present.
python3 scripts/prepare_jdks.py --targets mac-x64
python3 scripts/prepare_jdks.py --targets mac-arm64
python3 scripts/prepare_jdks.py --targets windows-x64
python3 scripts/prepare_jdks.py --targets linux-x64Resolve all download targets:
python3 scripts/prepare_jdks.py --targets all --resolve-onlyDefault mvn clean package uses your current JDK and builds a macOS universal package.
Profiles mac-intel, mac-apple-silicon, windows-x64, and linux-x64 validate cached JDKs under jdks/ during validate; run scripts/prepare_jdks.py first or the build fails fast.
Package for a specific platform using cached JDKs:
mvn clean package -Pmac-intel -Dmaven.test.skip=true
mvn clean package -Pmac-apple-silicon -Dmaven.test.skip=true
mvn clean package -Pwindows-x64 -Dmaven.test.skip=true
mvn clean package -Plinux-x64 -Dmaven.test.skip=trueOutput directories:
- Default:
target/ - Intel Mac:
target/mac-intel/ - Apple Silicon Mac:
target/mac-apple-silicon/ - Windows x64:
target/windows-x64/ - Linux x64:
target/linux-x64/




















