REA, short for Reverse Engineer Anything, is an open-source toolkit that helps AI coding agents investigate how software works, even when its original source code is unavailable. Hosted on GitHub, the project connects agents to analysis tools for native binaries, JavaScript applications, Electron apps, and other software.

Rather than attempting to recover an application's exact original source code, REA collects evidence from decompilers, disassemblers, strings, symbols, function references, and other analysis techniques. An AI agent can use that evidence to explain a feature, document an implementation, or build a compatible alternative for another project.

REA provides a command-line interface (CLI), a Model Context Protocol (MCP) server, and guided workflows for compatible AI coding tools. It is particularly useful for developers who need to understand undocumented behavior, investigate legacy software, or reproduce a feature without access to its implementation.

Features

AI-Assisted Reverse Engineering

REA is designed to let developers investigate software by describing what they want to understand in natural language.

For example, you could ask an AI agent to investigate how an application's offline search works, trace the relevant functions, explain the evidence, and implement similar functionality in your own project.

REA supplies the investigation tools and findings, while the AI agent performs the reasoning and writes the new implementation. This division makes it easier to investigate unfamiliar software without manually navigating every analysis tool.

The workflow generally follows three stages: decompile or inspect the target, trace the relevant behavior through the available evidence, and recreate the desired functionality in a separate implementation.

Native Binary Analysis

REA connects AI agents to tools that inspect compiled native applications. Depending on the configured analysis provider, developers can examine functions, strings, symbols, assembly instructions, pseudocode, references, and call relationships.

These capabilities help investigate how a binary implements a particular feature or interacts with other components.

For native analysis, REA supports integration with Hopper and Ghidra. The project also documents IDA-related support in its broader development direction, although provider availability and individual capabilities depend on the installed version and platform.

Hopper is a separate product with its own licensing requirements. Ghidra must be installed independently and configured before REA can use it.

Importantly, decompilation produces an approximation of the original program logic, not the original source code with all its comments, names, and design decisions intact.

JavaScript and Electron Application Inspection

REA can analyze JavaScript applications and Electron packages without executing the target application.

It can inspect application directories and ASAR archives to identify modules, imports, dependencies, and relationships between components. This is useful for understanding how a desktop application's frontend communicates with its underlying services.

For example, developers can investigate how an Electron application handles authentication, storage, updates, or networking by examining the available code and tracing the relevant modules.

Static analysis is especially convenient because it does not require a native decompiler for supported JavaScript targets. It also reduces the risks associated with running unfamiliar applications during an initial investigation.

Command-Line Interface

REA provides a CLI for running analysis tasks directly from a terminal or through automation scripts.

Install the command-line package globally with npm:

npm install --global rea-agents

Then start the guided setup:

rea setup

To check the environment and configured analysis tools:

rea doctor --json

For a JavaScript application or Electron package, you can run an analysis directly:

npx -y rea-agents@latest analyze-javascript-application \
  /absolute/path/to/app --json

The JSON output makes it easier to process analysis results programmatically or pass structured findings to another tool.

Native binary analysis requires an appropriate provider to be installed and configured. The CLI therefore serves as a common entry point rather than replacing the underlying analysis engines.

MCP Integration for AI Coding Agents

One of REA's strongest features is its MCP server, which exposes analysis operations to compatible AI assistants.

The setup utility can configure supported clients, including Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, and Windsurf. Additional clients can connect through manual MCP configuration if they support local MCP servers.

After setup, an agent can call REA's tools to inspect a target, search for strings, examine functions, trace references, and collect evidence without requiring the user to execute each analysis command manually.

This integration is valuable for AI-assisted software development because it allows reverse engineering to become part of the same workflow used to modify and test code.

Guided Workflows and Evidence-Based Results

REA provides structured investigation workflows intended to guide an agent from an initial question toward a supported explanation.

Instead of returning only a conclusion, the tools can provide evidence and identify unresolved questions or limitations. Developers can then distinguish observed behavior from assumptions that require further testing.

The project also supports reusable analysis results and snapshots in relevant workflows, reducing the need to repeat expensive analysis operations unnecessarily.

This evidence-oriented approach is particularly useful when examining unfamiliar or poorly documented software, where an unsupported conclusion could lead to an incorrect implementation.

Local Analysis and Privacy

REA is designed to analyze target applications locally rather than uploading them to a hosted REA analysis service.

This is beneficial when investigating internal tools, proprietary software, or applications that cannot easily be shared with an external service.

However, the privacy boundary also depends on the AI agent and model provider being used. Analysis results returned to an agent may be sent to its configured model service, so developers should review that provider's data-handling policy before investigating confidential software.

Guided Installation and Diagnostics

REA includes a setup utility that configures the CLI, MCP server, and matching agent instructions. It can connect existing analysis tools and offer to install Hopper when needed.

The setup process presents proposed changes for review and approval and backs up existing agent configuration before applying changes.

Its diagnostic command checks dependencies, host compatibility, analysis tools, and agent configuration:

npx -y rea-agents@latest doctor

This helps developers identify missing dependencies or configuration problems before attempting a more involved investigation.

Performance and Compatibility

REA is distributed as a Node.js application and supports the command line and local MCP workflows. Its documented runtime requirements include Node.js 22.19 or newer in the 22.x line, Node.js 24.11 or newer in the 24.x line, or Node.js 26 and later.

Native analysis depends on the configured provider and supported host environment. The project documents support for macOS and selected Linux distributions, while Windows support varies by analysis provider and workflow.

Static JavaScript and Electron analysis has fewer dependencies because it does not require a native analysis engine. This makes it a convenient starting point for developers who want to try REA without installing a separate disassembler.

Actual analysis speed depends on the target application's size, the chosen provider, and the complexity of the behavior being investigated. Large native binaries may require more time and resources than a small JavaScript application.

REA is an analysis framework rather than a universal decompiler. Its capabilities depend on the tools available for the target platform, and the accuracy of conclusions depends on the evidence that can be recovered. It cannot guarantee recovery of original source code or perfectly reproduce every behavior of an application.

System Requirements

  • Runtime: Node.js 22.19 or newer in the 22.x line, 24.11 or newer in the 24.x line, or 26 and later.

  • Package manager: npm.

  • Operating systems: Supported macOS and Linux environments, with Windows support depending on the selected workflow and provider.

  • Native analysis: Hopper or Ghidra for the corresponding supported workflows.

  • AI integration: An MCP-compatible agent for interactive, agent-driven investigations.

  • JavaScript analysis: A local application directory or ASAR archive; no native decompiler is required for this workflow.

Ghidra integration has additional requirements, including a compatible Ghidra installation and Java Development Kit. Consult the current installation documentation for exact versions and platform-specific instructions.

Pros and Cons

Pros

  • Free and open-source under the MIT license.

  • Connects AI coding agents to reverse engineering tools through MCP.

  • Supports native binary investigation using decompilation and disassembly.

  • Analyzes JavaScript applications and Electron archives without executing them.

  • Provides CLI access for scripting and automation.

  • Collects evidence to support explanations of application behavior.

  • Offers structured workflows for investigating and recreating software features.

  • Designed for local analysis without a hosted REA analysis service.

  • Guided setup and diagnostic tools simplify configuration.

  • Can help developers understand legacy software and undocumented implementations.

Cons

  • Native analysis depends on external tools such as Hopper or Ghidra.

  • Some analysis providers have platform-specific limitations.

  • Decompilation cannot reliably recover the original source code.

  • Investigation quality depends on the available evidence and analysis engine.

  • Requires an AI agent for the full natural-language investigation workflow.

  • Additional setup may be necessary for native binaries.

  • Model-provider privacy policies still matter when sending analysis results to an AI service.

  • Reverse engineering complex applications can require substantial technical knowledge and time.

Download REA - Reverse Engineer Anything - rea-agents-6.7.0 - Software Mirrors

REA - Reverse Engineer Anything - rea-agents-6.7.0 Source Code

REA - Reverse Engineer Anything - rea-agents-6.7.0 Source code (zip)

REA - Reverse Engineer Anything - rea-agents-6.7.0 Source code (tar.gz)

REA - Reverse Engineer Anything - rea-agents-6.7.0 Release Notes:

6.7.0 (2026-10-18)

Highlights

  • Client configuration edits follow the duplicate-member semantics used by MCP clients.

Changes

Fixes

  • Client configuration: Setup edits the last repeated JSON/JSONC member, matching the value clients actually read. Setup and uninstall refuse a removal that would reactivate a shadowed duplicate, preserving the original configuration. (#4957, morluto/rea#4952). Thanks @kaoru0822-kitauji, @xu91102.
Full contribution record: 4 commits and 1 merged PR.

6.6.0 (2026-10-18)

Highlights

  • Add Kuna as a caller-supplied static-analysis provider.
  • Query selected JavaScript facts and multiple APK locale tables without repeating the underlying analysis.
  • Extend Ghidra analysis to Windows ARM PE targets and explicit raw m68k images.
  • Preserve completed Evidence, cancellation reasons and retryable cleanup across provider and CLI finalization.

Changes

  • Kuna analysis: Use a caller-installed Kuna for procedure listings, pseudocode, assembly, call relationships, exact-address xrefs and cached string searches. Project exports retain source spans and digests; repeated requests reuse completed work. Recorded real-provider coverage uses Kuna 1.833 on Linux; Windows, PE and universal Mach-O are unsupported. See the provider guide. (#3832, #3854, #4071, #4095). Thanks @gensokyo-dev, @kaoru0822-kitauji, @N0zoM1z0.
  • Retained JavaScript facts: Query exact application paths, selected properties and filtered module references through inspect_analysis_view, with paging and complete row Evidence. These views reuse completed analysis and preserve source selection and unknown coverage. (#4265, morluto/rea#4190, #4097, morluto/rea#4092). Thanks @kaoru0822-kitauji, @N0zoM1z0.
  • APK locale tables: Request several resource locales in one decode with repeatable CLI --locales or MCP locales. Each table reports its status and coverage; existing single-locale fields remain available. (#4804, morluto/rea#4777). Thanks @abhay-2108, @N0zoM1z0.
  • Windows ARM binaries: Ghidra admits ARMNT/Thumb-2 and ARM64 PE applications and DLLs on the Windows x64 host lane. Recorded Ghidra 12.1.4 verification uses WindowsResourceReference disabled and raised startup budgets; default-analyzer completion, ARM64EC/ARM64X and Windows-on-Arm hosts remain unverified or unsupported. See the exact scope. (#3965, morluto/rea#2186). Thanks @N0zoM1z0, @WestLabsAI.
  • Raw m68k images: Analyze explicitly selected big-endian m68k raw binaries using Ghidra’s fixed 68000 profile and a caller-supplied aligned entry. Real CLI/MCP verification used Ghidra 12.1.4 on macOS arm64; Linux is unverified and Windows P0 does not admit m68k. See mapping requirements. (#4018). Thanks @icedac.
  • JADX deadlines: Set REA_JADX_OPERATION_TIMEOUT_MS to extend APK loading and upstream operation deadlines together. Doctor reports the effective value and setup forwards an explicit selection. (#4466, morluto/rea#3918). Thanks @jaychou813, @SandstromPL.
  • Electron window options: Resolve stable local constant BrowserWindow options while retaining source provenance. Relevant writes and escapes keep the result unknown. (#4400, morluto/rea#4366). Thanks @kaoru0822-kitauji, @N0zoM1z0.
  • Language editions: Add the Greek website edition and Malayalam documentation, with Korean typography and translation corrections across the site. (#3520, #4792, #3821, morluto/rea#3820, #3799, morluto/rea#3798, #4344, #3856, #4166). Thanks @gensokyo-dev, @hi2242, @kalayciburak, @kaoru0822-kitauji, @kraken-503, @kukinghan, @N0zoM1z0, @yeseong0412.

Fixes

  • Cancellation and cleanup: Keep completed observations, exact cancellation reasons and the original physical failure through finalization. Failed cleanup retains its process or file owner for retry; recovered resources disappear from pending-cleanup reports without replacing the original error. (#4238, morluto/rea#4232, #4274, morluto/rea#3923, 3e82366, 16924e2, bbfe6ed, 1f23e97, 08fbeb8). Thanks @coygeek.
  • Provider startup: Join prerequisite probes and in-flight readiness work before shutdown, preserve typed timeout and JVM-memory failures, and retain startup diagnostics through cleanup. Ghidra recognizes keg-only Homebrew JDKs and names the setting responsible for a startup timeout. (376eeca, ceeff5a, 3ad1032, 964decd, 3fa972a, #4557, morluto/rea#4556, #4590, morluto/rea#4241). Thanks @DanielCvz1, @J0UH, @Rinkia, @RishTheFish21, @vadlachary2002.
  • Client configuration: Preserve the selected launcher, destination file, caller timeout choices and unresolved configuration evidence. Setup/uninstall recovery stays bound to the exact published file, keeps current verified backups, and transfers failed cleanup ownership for retry. (d0253c9, 7e4eed9, 2fb5e20, 8235210, d818c3d, 19329e4, dadf909, 333e0ab, c15c206). Thanks @Adolanium.
  • Configuration formats: Read signed 64-bit TOML integers without rounding, handle large TOML documents without argument-spread failures, preserve JSONC trivia and Hermes YAML scalar text, and reject NUL bytes in registration environment values. (#4937, morluto/rea#4917, c43bc0b, 4fd28fc, #3568, #4335). Thanks @alfredo1491, @gensokyo-dev, @kaoru0822-kitauji, @N0zoM1z0, @ShuaixinHuang, @xu91102.
  • Claude Code configuration: Setup, doctor and uninstall now accept only the strict JSON format Claude Code reads, including a leading UTF-8 BOM. Comments and trailing commas are refused before backup or writing; clients that support JSONC retain their existing behavior. (#4944, morluto/rea#4940). Thanks @kaoru0822-kitauji, @xu91102.
  • CLI output and dispatch: Accept --flag=value and spaced global output values, keep array positions in filtered JSON, validate integer tokens before coercion, and exit quietly when the output reader closes. Cancellation remains effective through command finalization; app bundles and static native inspections select the intended workflow. (#3811, #4823, 2ae4e16, 8d82579, #3781, 279c590, #3511, morluto/rea#3321, f31b231). Thanks @arjunprabhulal, @coygeek, @kaoru0822-kitauji, @ShuaixinHuang, @Sriram-PR, @Tapraj-Pathak.
  • Updates: Route --update through the verified updater and bound retained package-manager diagnostics. (4f7b5fb, 01cdbbd).
  • MCP contracts: Advertise self-contained tool inputs while preserving tuple, array, Boolean and nested-JSON constraints across schema profiles. Schema-reference handling no longer rewrites literal metadata; catalog identity includes the output-schema profile. (5e30969, 10aa74d, 204b9f3, b3389a5, a2e3016, ba98130, c5fb86d). Thanks @akushonkamen, @HarsH-1877, @kaoru0822-kitauji, @xingzihai.
  • Session ordering: Keep snapshot admission ahead of later calls on the same connection, retain shutdown signals until cleanup succeeds, and preserve inspection authority through investigation publication. (#3661, morluto/rea#3334, 8873b39, 663d07f). Thanks @coygeek, @rudycelekli, @Swatantra-66.
  • JavaScript relationships: Distinguish Map reads from network endpoints, associate response endpoints only with writes that reach the read, and preserve child-process receiver ownership and effective stdio choices. Version comparisons keep relocation and unknown relationships distinct from application changes. (fbfdb6a, #4759, morluto/rea#4606, #3819, morluto/rea#3362, #4336, morluto/rea#3355, 556504e, 4d980d0). Thanks @Abdooo2235, @coygeek, @kaoru0822-kitauji, @Xinglan233.
  • Browser capture: Bound CDP handshakes and command responses, preserve malformed inventory uncertainty and partial cleanup diagnostics, and report cancellation after content reads and final cleanup. Accessibility comparisons require observed coverage; attached emulation teardown limits remain explicit. (#3555, morluto/rea#3553, #3901, morluto/rea#3379, 4cc044b, #4406, morluto/rea#4403, #2893, 0123d59, 2ff0867). Thanks @coygeek, @dakjdakd, @kaoru0822-kitauji, @maxazure, @N0zoM1z0, @YunzhouLi-hub.
  • Browser page facts: Preserve URL path bytes when removing credentials, repeated document Link headers and complete COOP/COEP structured items. WebMCP discovery reads the actual schema properties and exact receiver path. (#4731, df2fc25, c360cfc, ebd5a82, 38f92d1). Thanks @Abdooo2235, @geekwolf, @ShuaixinHuang.
  • APK resource accuracy: Retain completed tables and decode facts after interrupted or failed reads. Derive locale limits from resource configuration fields, disclose unselectable qualified tables, distinguish document failures from omitted entries, and bind Evidence to the decoded snapshot. (34a88d6, f5fcf52, 6385ef4, 98886ad, dc2e811, #4771, morluto/rea#4768). Thanks @abhay-2108, @gensokyo-dev, @Iyanuoluwa007, @kaoru0822-kitauji, @N0zoM1z0.
  • Apktool guidance: Retain the observed version and disclose the matching platform/release advisory windows without treating a version string as proof of decoder safety. Missing prerequisites and decode refusals identify the selected APK or launcher. (d38f099, 63696d2, cc038da). Thanks @GovinduSasanka, @peter-research.
  • Android method bodies: Recover original bytecode bodies when Java source is omitted while preserving genuine native/abstract body absence and primary failures during retryable cleanup. (63c65a2, 742b6f5, 9fa6d2b). Thanks @balkan16, @Chessing234.
  • ADB observations and transfers: Preserve display-scoped focus, distinguish missing declarations from absent focus, retain numeric physical density and mark unknown permission coverage partial. Transfers use consumed snapshot identity and refuse unknown destination existence; uninstall requests explicitly select user zero. (7086768, 3d028db, #4074, morluto/rea#3942, #4663, #4665, 1342127, 61e6880, be0b2d1). Thanks @Copilot, @coygeek, @gongfpp, @Tapraj-Pathak, @yankikucuk.
  • Apple application structure: Derive bundle components and launchd domains from their owning directories, retain unavailable components, and select only exact Assets.car names as asset catalogs. Interface Builder keeps unresolved classes and counts hierarchy records beyond the returned object page. (149a0fc, 5d6029e, c192c58, #4094, morluto/rea#3914, #4118, morluto/rea#3958, #4162, morluto/rea#3950). Thanks @coygeek, @kaoru0822-kitauji.
  • Native analysis providers: Keep Ghidra byte matches within examined coverage, retain PE PDB/function-boundary limitations and preserve configured MIPS choices. Attached IDA refuses universal Mach-O rather than silently choosing a slice; request timeout identity and captured output survive adapter handling. (#4531, #2933, morluto/rea#2259, 01a1b3f, 50dd9fc, #4765, morluto/rea#3871, c0cfccb). Thanks @BeLit-Development-2, @coygeek, @kaoru0822-kitauji, @N0zoM1z0, @ShuaixinHuang.
  • Recorded crashes: Prevent GDB from discovering an executable named by an untrusted core, reject core mapping paths that escape the isolated sysroot, and preserve pwntools worker ownership across launcher exec. Completed decode facts and cancellation reasons remain available through failed final cleanup. (5bf4fff, b33c0df, #4435, morluto/rea#4011). Thanks @coygeek, @N0zoM1z0.
  • Windows cleanup: Retain unpublished runtimes after failed removal, handle read-only attributes and sharing conflicts, preserve primary snapshot failures and honor caller environment overrides. (f78d137, d69acc3, 0679a79, 5f9ac2c, 1bbf4bd). Thanks @DeryFerd.
  • Managed metadata: Compare nominal signatures and declaring identities across builds, preserve empty names without display substitutions, verify ABI-prefixed Mach-O exports exactly, and charge cached metadata once. Metadata errors report artifact file offsets; mixed-mode assemblies retain their actual boundary classification. (#3059, #3079, #3853, morluto/rea#3352, #3974, morluto/rea#3961, #3491, morluto/rea#3449, #4418, morluto/rea#4372, #3516, morluto/rea#3366). Thanks @8rulerstar, @coygeek, @duckhunt113, @Hahaa909, @JayOfTheKeyboard, @kaoru0822-kitauji, @keeponlight, @N0zoM1z0, @tomyrms.
  • Archive and filesystem identity: Reject colliding extraction paths before writing, classify ZIP offsets beyond EOF as malformed, normalize ZIP current-directory prefixes once, and preserve symlink and unreadable-path provenance. A directory named *.map is no longer mistaken for a source-map file. (862a0b2, c209dcb, 6b1c36e, 25c2222, d6e4fe4, #4131, morluto/rea#3909). Thanks @Adkid-Zephyr, @coygeek, @jackie-cqz, @kaoru0822-kitauji, @maxazure, @XY-code1.
  • Evidence and reconstruction: Authenticate all retained inventory substeps, preserve source-attributed caveats in composed workflows, and require comparable cited Evidence before declaring reconstruction coverage or readiness. Missing Evidence and residual replay uncertainty stay explicit. (9ac91e0, c4608a2, #4075, morluto/rea#3357, #3526, morluto/rea#3363, 153017d). Thanks @coygeek, @gensokyo-dev, @kaoru0822-kitauji, @N0zoM1z0, @rudycelekli.
  • Offline data: Preserve exact UTC packet-capture instants, SQLite column identity and snapshot admission failures, and cooked WASM directive literals. Cleanup cancellation retains completed EVM/WASM observations rather than losing them. (796faa0, 748ac7f, bc51d0e, 4f87f02, d694aef, 321cacb). Thanks @himamaheswarreddy, @mertkayacs, @rollroyces, @viniciusdsandrade.
  • Kuna recovery: Share concurrent single-function requests and cache repeats, validate warm exports once, stream string inventories beyond the former fixed buffer ceiling, and keep unproven processes in their run slots until close confirms release. Failure messages distinguish final buffer refusals from configurable deadlines. (#4045, #4169, #4049, #4318, #4052, #4098, #4343). Thanks @kaoru0822-kitauji.
  • Document selection: Preserve explicitly selected plist paths and bundle defaults, and only use document fallback after confirming its applicability. Finalization keeps completed selection facts and cancellation outcomes. (e6c4877, #3774, 9df559b). Thanks @kaoru0822-kitauji.
  • Capture and comparison accuracy: Admit schema-valid HAR numeric values while retaining exact-publication limits, preserve empty URL path segments, and keep unrelated process traces and unnamed reference endpoints distinct or unknown. (#3159, morluto/rea#3145, #3792, morluto/rea#3307, #4178, morluto/rea#3931, #3809, morluto/rea#3388). Thanks @coygeek, @gensokyo-dev, @kaoru0822-kitauji, @N0zoM1z0, @pablodiazjorge, @xu91102.
  • Evidence publication: Recheck staged output identity after its final write, classify missing review Evidence and duplicate ledger entries as caller input, and preserve the selected freshness requirement in comparison parameters. (#4764, morluto/rea#4613, #4452, morluto/rea#4444, #4065, morluto/rea#4000). Thanks @amyanger, @coygeek, @kaoru0822-kitauji, @Rinkia, @Swatantra-66.

⚠ BREAKING CHANGES

  • Saved Evidence: Evidence and analysis snapshots now require explicit nullable relationship_coverage in their identity commitments. Artifact inventories require scoped coverage and explicit integrity_contradictions; obsolete coverage_status and prose-based coverage inference are removed. Regenerate old Evidence/snapshots and inventory observations with this release: saved files are not migrated and omitted facts are not filled with guessed defaults. (db8128d, 0405c9d, a9588be).
  • Browser capture results: Consumers must retain resolved capture limits, event families and omission facts. Set desired budgets through the supported capture options; omitted caller inputs still select defaults, but stored observations must report the resolved values. Admitted content reads queue behind bounded concurrency. (57a23f0).
  • Android version codes: inspect_adb_package.version_code is a decimal string rather than a JSON number. Read it as a string, or use BigInt for numeric comparison. (#3485, morluto/rea#3368, 7666a48). Thanks @coygeek, @kaoru0822-kitauji.
  • Native UI failures: Failed or cancelled native UI scenarios now return typed errors with the collected report in partial_observation. Handle the error path and read that report instead of expecting a successful result containing failed steps. (d909919).
  • Provider status: binary_session candidate availability can be unknown during owner finalization. Preserve that state rather than treating it as unavailable; internal consumers must await the asynchronous session status API. (150e996).
  • Swift symbol locations: swift_symbols entries may have a null address when the provider supplies no location. Handle unknown addresses; optional evidence.reported_address retains the original provider value. (8116dc0).
  • Linux Hopper admission: Older builds previously admitted by a fixed allowlist need retained publisher-signed package evidence or an approved update to the current public demo. Update explicit HOPPER_LAUNCHER_PATH selections when migrating; the live feed offers only its current release. The official RPM metadata mismatch remains unresolved and is refused. (#3590, morluto/rea#3577, 70cd4cb). Thanks @gensokyo-dev, @kaoru0822-kitauji, @N0zoM1z0.
Full contribution record: 571 commits and 236 merged PRs.

How to Install

The recommended approach is to install REA through its guided setup utility.

First, ensure that a supported Node.js runtime and npm are installed. Then run:

npx rea-agents@latest setup

Choose the AI agents you want to configure, review the proposed changes, and approve them. Setup configures the MCP connection and installs the corresponding workflow instructions.

Restart the configured AI client after setup so it can load the new MCP server.

To use REA as a regular command-line application, install it globally:

npm install --global rea-agents

Then verify the installation:

rea doctor --json

For native binary analysis, configure Hopper or an existing Ghidra installation according to the official documentation. Static JavaScript and Electron analysis can be used without installing either tool.

To update an existing installation, follow the update instructions for the installation method you used. If you use the npx workflow, refresh the agent configuration with:

npx rea-agents@latest setup

Review the proposed changes and restart the relevant client when its MCP registration changes.

Final Verdict

REA is a compelling open-source toolkit for developers who want to combine reverse engineering with AI-assisted software development. Its biggest advantage is the way it connects analysis tools, structured evidence, and MCP-compatible agents into a single investigation workflow.

Support for native binaries, JavaScript applications, and Electron packages gives it a broad range of uses, from understanding undocumented features to investigating legacy software and building compatible implementations. The CLI and evidence-oriented results also make it useful beyond interactive AI sessions.

Its main limitation is that REA depends on external analysis engines for many native workflows, and its capabilities vary by operating system and provider. It also cannot recover original source code automatically or guarantee that an implementation recreated from analysis will behave identically to the original.

For developers working with unfamiliar applications, REA is worth exploring, particularly if they already use an MCP-compatible coding agent. It is best viewed as a bridge between reverse engineering tools and AI development workflows rather than a replacement for established disassemblers or the expertise required to interpret their results.

REA - Reverse Engineer Anything - rea-agents-6.7.0
Free
Software Informations:
Developer:

Operating System:
All Platforms
Date Added:
2026-10-18T12:07:22.080Z

dbForge SQL Tools is a collection of database development and administration utilities from Devart. Designed for Microsoft SQL Server and Azure SQL Database, the suite brings together tools that help developers, database administrators, and DevOps engineers work more efficiently with database code, schemas, data, and deployment workflows.

Rather than relying on a single application for every task, dbForge SQL Tools bundles 15 specialized tools that integrate with SQL Server Management Studio (SSMS), Visual Studio, or run as standalone applications. This approach makes it useful for teams that want to improve their existing database development environment without replacing it entirely.

Features

SQL Coding Assistance

SQL Complete enhances the SQL editing experience with code completion, formatting, code snippets, and other productivity features. These tools can help developers write queries more efficiently and maintain consistent SQL formatting across projects.

For teams working with large SQL scripts or complex stored procedures, coding assistance can reduce repetitive typing and make database code easier to read.

Schema and Data Comparison

The suite includes tools for comparing database schemas and table data between different environments. Developers can identify differences, review changes, and synchronize databases when preparing updates or deployments.

Schema comparison is useful when keeping development, testing, and production databases aligned. Data comparison can help identify differences in table contents and synchronize selected records when appropriate.

These capabilities are particularly valuable when managing multiple database environments or coordinating changes across a development team.

Visual Query Building

The visual Query Builder helps users construct SQL queries through a graphical interface. Instead of writing every part of a query manually, users can work with tables, relationships, and query conditions visually.

This feature can be useful for developers who want to explore data or build complex queries more conveniently. Experienced SQL users can still write queries directly when that is faster.

Data Import and Export

The Data Pump utility supports importing and exporting SQL Server data in common formats. It can simplify moving information between databases and external files for reporting, migration, testing, and data exchange.

Having these operations available through a graphical workflow can reduce the amount of manual scripting required for routine data management tasks.

Test Data Generation

The Data Generator creates sample data for development, testing, and integration environments. Developers can populate tables with realistic-looking test records without manually preparing every entry.

This is useful when validating application behavior, testing database procedures, or preparing datasets for performance and integration tests. Generated data should be reviewed to ensure it matches the application's requirements and does not introduce misleading test results.

Source Control Integration

The Source Control tool connects database objects and supported static data with version control systems. This helps teams track database changes alongside application code and maintain a clearer history of database development.

Version control is particularly important when several developers work on the same database project. It makes changes easier to review and can support more consistent development and release processes.

Database Documentation

The Documenter tool generates database documentation, helping teams understand database structures and maintain technical references.

Automatically generated documentation can be useful for onboarding developers, reviewing database designs, and supporting maintenance. Teams should still verify that the generated documentation reflects their intended design and operational practices.

Database Testing and DevOps Automation

The suite includes database unit testing and DevOps automation capabilities. These features help teams test database logic and automate selected steps in database development and deployment workflows.

Integrating database testing into continuous integration processes can help identify problems before changes reach production. Automation can also reduce repetitive manual work, although deployment pipelines still need appropriate validation, access controls, and rollback procedures.

Monitoring and Administration Utilities

Additional tools include database monitoring, event profiling, object search, index management, and transaction log analysis. These utilities address different operational needs, from investigating database activity to finding objects and examining performance-related issues.

The collection is useful because developers and administrators can select tools for specific tasks instead of relying on one general-purpose interface.

Performance and Compatibility

dbForge SQL Tools is designed to complement existing SQL Server development environments. Its integration with SSMS and Visual Studio allows users to continue working with familiar applications while adding specialized database development features.

The suite supports a range of SQL Server environments, including newer SQL Server releases, Azure SQL Database, and selected related Microsoft database services. Compatibility varies by individual tool and integration, so teams should check the official compatibility documentation before deploying it across their development machines.

The suite is primarily designed for Windows. Some tools can run on Linux and macOS through CrossOver, a compatibility layer for Windows applications, but this is not equivalent to native support for the entire collection.

Performance benefits depend on the tasks being performed, database size, and the tools used. Features such as code completion, comparison, and automation can streamline routine work, but complex database comparisons, large data transfers, and monitoring operations still depend on the underlying system and database workload.

System Requirements

The core dbForge SQL Tools suite is designed for Windows environments. Its documented requirements include:

  • A supported Windows desktop or Windows Server operating system.

  • Microsoft .NET Framework 4.7.2 or later.

  • A compatible version of SQL Server Management Studio or Visual Studio for the integrations being used.

  • Network access and appropriate database permissions when connecting to remote SQL Server instances.

Some tools have additional requirements, particularly those used for DevOps automation or integration with specific development environments.

Linux and macOS users may be able to run selected components using CrossOver and the required .NET Framework installation, but compatibility should be verified for each component.

Pros and Cons

Pros

  • Combines 15 database development and administration tools in one suite.

  • Integrates with familiar SQL Server development environments.

  • Provides SQL coding assistance and visual query building.

  • Supports schema and data comparison.

  • Includes data import, export, and test data generation.

  • Offers source control integration and database documentation.

  • Provides database testing and DevOps automation capabilities.

  • Includes monitoring, event profiling, and other administrative utilities.

Cons

  • Primarily focused on Microsoft SQL Server and Azure SQL Database rather than multiple database platforms.

  • The complete installation is relatively large.

  • Some advanced features require a paid license.

  • The number of included tools can create a learning curve for new users.

  • Linux and macOS compatibility relies on a Windows compatibility layer for selected applications rather than full native support.

  • Integration compatibility should be checked when upgrading SSMS or Visual Studio.

How to Install

  1. Visit the official dbForge SQL Tools download page.

  2. Download the installer for the edition you want to evaluate.

  3. Run the installer and follow the setup wizard.

  4. Choose a full installation or select only the tools your workflow requires.

  5. Complete the installation and open the relevant tool through its supported integration or standalone application.

  6. Connect to your SQL Server environment using the appropriate connection details and permissions.

  7. Configure the tools you plan to use, such as SQL coding assistance, schema comparison, source control, or database testing.

The suite offers a free trial for evaluating its functionality. According to Devart's licensing documentation, most included tools have a 30-day trial, while SQL Complete has a separate 14-day trial. After the trial expires, only selected free tools remain available without a purchased license.

Final Verdict

dbForge SQL Tools is a capable toolkit for SQL Server developers and database administrators who want to improve database development, testing, comparison, documentation, and deployment workflows.

Its main strength is the breadth of its toolset. Instead of using separate utilities for query assistance, schema synchronization, test data generation, source control, and database testing, teams can access these capabilities through one product bundle. Integration with established SQL Server development environments also makes adoption more practical for organizations that already use SSMS or Visual Studio.

The main considerations are its Windows-oriented design, installation size, and licensing requirements for advanced features. Smaller teams that need only one or two functions may find an individual dbForge product more appropriate than the full suite.

For professional SQL Server development teams, dbForge SQL Tools is worth considering as a way to reduce repetitive database work and establish more consistent development practices.

dbForge SQL Tools 2026.2.82 - Discount 5% Off
$664.95$699.95
Software Informations:
Developer:

Operating System:
Windows
Date Added:
2026-10-18T09:54:17.000Z

WordCraft is a free, open-source word processor designed as an alternative to Microsoft Word. Developed by the ArtCraft team, it is written in Rust and aims to reproduce familiar Word workflows while providing native applications for desktop operating systems and a browser-based version.

The application goes beyond basic text editing. It includes document formatting, styles, tables, page layout, references, comments, tracked changes, mail merge, and PDF export. It can open and save DOCX files, making it a potential option for users who regularly exchange documents with Microsoft Office users.

WordCraft also includes command-line tools and Model Context Protocol (MCP) integration, allowing compatible AI agents to create, inspect, edit, and export documents programmatically.

Although its feature set is extensive, WordCraft is still approaching maturity for everyday writing. Users who rely on complex Word documents or specialized publishing workflows should test compatibility before making it their primary word processor.

Features

Document Editing and Formatting

WordCraft provides a familiar ribbon-style interface with formatting controls for fonts, sizes, bold and italic text, underlining, colors, highlighting, superscript, and subscript.

It supports paragraph alignment, indentation, line spacing, tabs, borders, shading, and other layout options. The Format Painter lets users copy formatting between document elements, while built-in styles help maintain consistent formatting across longer documents.

The editor also includes AutoCorrect, smart quotes, automatic list formatting, find and replace with regular expressions, and standard undo and redo functionality.

These features make WordCraft suitable for writing reports, letters, essays, and other everyday documents.

DOCX Compatibility and File Formats

WordCraft supports reading and writing Microsoft Word's DOCX format. It also supports importing and exporting ODT, RTF, HTML, Markdown, and plain-text documents.

PDF export produces selectable text and supports links and bookmarks, making it useful for distributing reports and other finished documents.

The ability to work with common document formats is one of WordCraft's main advantages. However, opening a DOCX file does not guarantee that every element will render identically to Microsoft Word. Complex layouts, embedded objects, and less common formatting features should be checked after import.

Styles, Themes, and Page Layout

WordCraft includes paragraph and character styles, style sets, themes, and a live style gallery. Users can create or modify styles to maintain consistent formatting throughout a document.

Page-layout controls include margins, page size, orientation, columns, section breaks, page breaks, headers, footers, page numbers, watermarks, and page borders.

The application also supports automatic hyphenation, line numbering, drop caps, and text wrapping around pictures and shapes.

These capabilities are useful for creating structured reports, academic papers, business documents, and longer publications.

Tables, Images, and Graphics

WordCraft supports tables with merged and split cells, borders, shading, banded styles, sorting, and formulas. Rows can split across pages, and table headers can repeat on subsequent pages.

Images can be inserted, resized, cropped, rotated, recolored, and adjusted for brightness, contrast, and transparency. Additional features include picture styles, shapes, and text boxes with floating positioning and text wrapping.

The editor also supports converting text into tables and tables into text, helping users restructure information without recreating content manually.

References and Academic Writing

WordCraft provides a collection of tools for structured and academic documents, including:

  • Automatic tables of contents.

  • Footnotes and endnotes.

  • Citations and bibliographies in APA, MLA, Chicago, and IEEE styles.

  • Captions and tables of figures.

  • Cross-references and indexes.

  • Tables of authorities.

These tools make WordCraft particularly interesting for students, researchers, and professionals who work with long documents containing references and supporting material.

Users preparing formal academic submissions should verify that the generated references and formatting comply with their institution's requirements.

Comments, Track Changes, and Proofreading

WordCraft includes comments displayed in document margins or a dedicated pane. Track Changes allows users to review edits and accept or reject individual changes.

Document comparison, spelling and grammar suggestions, a thesaurus, word counting, and an accessibility checker provide additional support for reviewing and refining documents.

The application also includes document inspection and editing restrictions.

These features are valuable for collaborative editing and document review, although teams should test their specific review workflows before replacing established Microsoft Word processes.

Mail Merge

WordCraft supports mail merge using CSV data sources and document fields. Users can insert merge fields, configure address blocks and greeting lines, preview personalized documents, and generate merged output.

Envelope and label tools are also included.

This can help automate repetitive administrative tasks such as generating letters, notices, certificates, and personalized business documents.

AI and Command-Line Automation

WordCraft is designed to support both manual editing and programmatic document manipulation. Its editing engine exposes commands that are shared across the graphical interface, keyboard shortcuts, command search, CLI, JSON control channel, and MCP server.

The command-line interface supports document conversion, text extraction, structural inspection, rendering, and scripted editing.

For example, convert a Word document to PDF:

wordcraft-cli convert report.docx report.pdf

Extract its text:

wordcraft-cli text report.docx

Inspect the document structure as JSON:

wordcraft-cli inspect report.docx

These capabilities make WordCraft useful for batch processing, document-generation pipelines, and AI-assisted workflows. Compatible agents can inspect documents and execute editing commands without relying exclusively on screenshots or mouse interaction.

Download WordCraft v0.8.0 - Software Mirrors

WordCraft v0.8.0 for Windows

wordcraft-0.8.0-windows-x86.msi | 76.35 MB

wordcraft-0.8.0-windows-x86-portable.zip | 91.48 MB

wordcraft-0.8.0-windows-x64.msi | 77.56 MB

wordcraft-0.8.0-windows-x64-portable.zip | 94.06 MB

wordcraft-0.8.0-windows-arm64.msi | 74.72 MB

wordcraft-0.8.0-windows-arm64-portable.zip | 91.41 MB

WordCraft v0.8.0 for macOS

wordcraft-cli-0.8.0-macos-universal.zip | 83.61 MB

wordcraft-0.8.0-macos-universal.dmg | 104.01 MB

WordCraft v0.8.0 for Linux

wordcraft-0.8.0-linux-x86_64.tar.gz | 94.97 MB

wordcraft-0.8.0-linux-x86_64.rpm | 95.74 MB

wordcraft-0.8.0-linux-x86_64.flatpak | 68.42 MB

wordcraft-0.8.0-linux-x86_64.deb | 96.27 MB

wordcraft-0.8.0-linux-x86_64.AppImage.zsync | 317.28 kB

wordcraft-0.8.0-linux-x86_64.AppImage | 90.58 MB

wordcraft-0.8.0-linux-riscv64.tar.gz | 93.91 MB

wordcraft-0.8.0-linux-riscv64.rpm | 94.7 MB

wordcraft-0.8.0-linux-riscv64.deb | 95.05 MB

wordcraft-0.8.0-linux-aarch64.tar.gz | 92.32 MB

wordcraft-0.8.0-linux-aarch64.rpm | 93.63 MB

wordcraft-0.8.0-linux-aarch64.flatpak | 65.56 MB

wordcraft-0.8.0-linux-aarch64.deb | 94.28 MB

wordcraft-0.8.0-linux-aarch64.AppImage.zsync | 308.02 kB

wordcraft-0.8.0-linux-aarch64.AppImage | 87.94 MB

WordCraft v0.8.0 for BSD

wordcraft-0.8.0-freebsd-x86_64.tar.gz | 97.74 MB

Others Download related to WordCraft v0.8.0

wordcraft-web-0.8.0.zip | 15.15 MB

WordCraft v0.8.0 Source Code

WordCraft v0.8.0 Source code (zip)

WordCraft v0.8.0 Source code (tar.gz)

WordCraft v0.8.0 Release Notes:

What's Changed

  • CI: main passes again (Word 2003 check reads through io; first keystroke after a chrome click isn't dropped) by @dkhlapov in #1578
  • Interface-translation audit green and back in CI (#1128) by @dkhlapov in #1143
  • Double-click the margin to create and edit a header or footer (#960) by @dkhlapov in #1144
  • Alt+numpad character codes (#961) by @dkhlapov in #1146
  • Review › Language reaches every proofing language (#860) by @dkhlapov in #1151
  • Dark theme: the ruler text area is lighter than its margins by @marcoarnulfo in #1154
  • Print: the preview fills the pane, with a zoom bar and scrolling both ways by @marcoarnulfo in #1157
  • Zotero: text typed just after a citation goes outside its field by @marcoarnulfo in #1162
  • Layout: a list label moves with its text when the paragraph is aligned (#1159) by @Silvertree2010 in #1163
  • CI: translate Croatian in every interface catalog by @echelon in #1719
  • Full screen on F11 and View › Window › Full Screen (#980) by @dkhlapov in #1153
  • Layout: a paragraph ending with a page break leaves its space after on the old page by @naxvog in #1168
  • Picture transparency/corrections/color are absolute from the original + transparency slider by @DevCoderMax in #1175
  • Fonts embedded in a .docx lay out and export its text by @marcoarnulfo in #1176
  • Layout: table rows share their cell margins and split across pages like Word by @naxvog in #1177
  • Stop Space and Enter from resetting the X11 input context by @raythurman2386 in #1179
  • Equations: bound parser tree depth, escape \text in LaTeX, merge runs everywhere (#1456) by @vangel76 in #1457
  • i18n: add Vietnamese (vi) interface translation by @Nghiathan13 in #1458
  • Tables: thick cell borders meet in closed corners by @dfgodvan in #1461
  • Close prompt: a failed Save says why and keeps the document open (#1445) by @dkhlapov in #1465
  • Metafile: WMF object table without scanning, in-place shape ops, cropped DIB decode (#1463) by @vangel76 in #1466
  • i18n(hu): align two new rows with the catalog terms by @Skaywalker in #1469
  • References: TOC entries carry their headings' list numbers by @dfgodvan in #1470
  • PDF: draw horizontal and vertical lines inside groups by @cyril265 in #1474
  • Layout: PAGE fields on the later pages of a paragraph show their own page (#1352) by @dkhlapov in #1481
  • fix(proof): classify each whitespace token once when checking spelling (#1335) by @saadkhantareen in #1490
  • Shapes: rounded rectangles keep their own corner radius by @cyril265 in #1476
  • Fields: PAGEREF in headers and footers shows its bookmark's page by @cyril265 in #1477
  • Ctrl+A stays on this page, and in a table grows cell, then row, then table, then the document (#1424) by @ImpotStite in #1478
  • Word 365 cover pages: page-relative positions and freeforms drawn back to their start (#743) by @benandez in #1487
  • Fix Replace All bypassing content-control locks by @MMexicann in #1488
  • RTF import: keep section breaks and their page settings (#1378) by @dkhlapov in #1495
  • Save As: fill the file type list (#1399) by @dkhlapov in #1497
  • HTML import: bold header cells, cell alignment and the region paper (#1381) by @dkhlapov in #1494
  • Custom page sizes: Size › More Paper Sizes and Page Setup width/height (#1433) by @dkhlapov in #1496
  • Dark page: highlights are dimmed so the text on them stays readable (#1252) by @dkhlapov in #1498
  • Fix mini toolbar positioning while scrolling by @shlok2721-web in #1501
  • Canvas: draw colour emoji on screen as the PDF does (#1269) by @dkhlapov in #1504
  • .doc import: cell shading, column count and merged cells (#1380) by @dkhlapov in #1507
  • Layout: long tables keep one layout per cell and relayout without re-measuring by @dfgodvan in #1492
  • Layout: a paragraph continued into the next column wraps around a shape there (#1374) by @dkhlapov in #1505
  • ODT import: keep each section’s page properties (#1379) by @dkhlapov in #1506
  • PDF export: Hebrew and Arabic text extracts in reading order (#1383) by @dkhlapov in #1508
  • Web: image paste goes to the active edit target (#1349) by @dkhlapov in #1513
  • Track Changes and content controls: table delete, Change Case and Unlink Fields respect them (#1329) by @dkhlapov in #1514
  • PDF export: All Caps text extracts correctly (#1473) by @dkhlapov in #1509
  • Web: New/Open waits for Save before discarding the document (#1315) by @dkhlapov in #1510
  • Document Inspector: find hidden text outside the body and from styles (#1344) by @dkhlapov in #1515
  • RTF: read and write tracked changes (insertions, deletions, authors, times) by @dkhlapov in #1516
  • Canvas: alignment guides while dragging pictures and shapes by @dkhlapov in #1519
  • Draw: Ink to Shape recognises arrows by @dkhlapov in #1520
  • fix(math): preserve equation text color on save/load (#1467) by @mjohnson7cd in #1525
  • fix(proof): British spellings such as honour and prioritise are not flagged (#40) by @HyakoV3 in #1536
  • ODT: read and write tracked changes (text:tracked-changes) by @dkhlapov in #1517
  • fix(pdf): inline pictures keep their alt text in tagged PDF (#1502) by @HyakoV3 in #1526
  • proof: Turkish spelling, suggestions, grammar and hyphenation by @yeniufuklar-com in #1527
  • ODT and .doc import: pictures are read once, within their byte budget (#1334) by @rabis7575 in #1554
  • macOS: the title bar fits around the traffic lights as macOS draws them by @kkilchrist in #1559
  • CI: Turkish review-command test skips without a Turkish dictionary by @echelon in #1752
  • --help and -h print the usage for the app and every CLI command (#968) by @Nael-Nathanael in #977
  • fix(cli): reject invalid page and scale arguments by @NavidZamanKhan in #982
  • Native print test: fixed PDF creation date, no flaky byte comparison (#987) by @dkhlapov in #990
  • Tables: AutoFit in a nested table, whole cells shaded for a selection through a table, Shift+Right at a cell's end by @rabis7575 in #1004
  • Reset table tools on table deletion and preserve Draw Table outside tables by @y2w8 in #1006
  • fix(markdown): preserve table cells containing code spans and pipes by @NavidZamanKhan in #1009
  • Focus hides the ribbon, status bar and panes; Escape brings them back by @marcoarnulfo in #1017
  • Ribbon tabs that don't fit move to a » menu instead of under Comments by @marcoarnulfo in #958
  • i18n(cs): wording fixes after #387 by @Losminek in #973
  • #916: Cross-reference opens a dialog by @justinjohn0306 in #1003
  • feat(engine): rename documents from the title bar and open account settings from the badge by @neupaneprashant in #1016
  • Track Changes: rejecting a whole inserted paragraph keeps the next paragraph's style and numbering by @przemek-arch in #1020
  • Caret: Down and Up from a line start beside a table go into it, not past it by @rabis7575 in #1021
  • macOS: Control-click opens the context menu, with its spelling suggestions by @marcoarnulfo in #1025
  • DOCX: a hyperlink with an empty target is no link (#1005) by @vangel76 in #1030
  • i18n(cs): complete the Czech catalog (built-in styles, equation gallery) by @Losminek in #978
  • One Page and the zoom are saved with the document and restored when it is reopened by @marcoarnulfo in #1023
  • DOCX: keep Office 2016 charts (cx:chart) and their data when saving by @marcoarnulfo in #1029
  • Table eraser: borders beside vertically merged cells merge as in Word (#1039) by @vangel76 in #1044
  • Layout: keep with next moves the heading when the next paragraph moves for widow control (#966) by @albayazid in #1049
  • Ribbon menu buttons carry their name for accessibility by @tarpescu in #1050
  • Page background: picture and texture fills are drawn and kept on save (#999) by @vangel76 in #1036
  • Ribbon: holding a press no longer scrolls the document (#1019) by @lasse-tech in #1041
  • Track Changes: deletions inside a field result are tracked, accepted and saved (#1037) by @vangel76 in #1043
  • feat(ui): implement Ctrl+drag to copy objects on canvas by @guruswarupa in #1046
  • fonts: Add platform-specific Hebrew font support by @H0ruu1 in #1052
  • DOCX: merge settings.xml into the original instead of regenerating it (#1034) by @przemek-arch in #1059
  • CI: Hebrew font substitution test expects David only on Windows by @echelon in #1790
  • Comments: a click inside a selected balloon moves the caret in its text (#1013) by @lasse-tech in #1051
  • UI: mini toolbar steps aside for the ribbon by @Toddpe in #1069
  • Docs: encrypted DOCX row, duplicate document-grid rows, dated issue count by @vangel76 in #1072
  • Contributors: add Sazid Al Bayazid (albayazid) to people.toml by @albayazid in #1074
  • UI: combo boxes join their dropdown arrow (field rounded left, arrow right) by @Toddpe in #1083
  • Proofing: a Dictionaries folder setting, and the dictionary each language found (#1063) by @witkowski01 in #1084
  • CI: park the mini-toolbar scroll test that #1501 and #1069 disagree on by @echelon in #1834
  • DOCX: carry unmodelled parts; keep comment ids, style defaults, latent styles, list ids and app props (#1034) by @przemek-arch in #1060
  • Comments: an option to show only the selected text's comment (#1055) by @lasse-tech in #1066
  • Docs: gaps.md re-audited against main by @vangel76 in #1071
  • README: install on Gentoo from the ::snakebyte overlay by @switch87 in #16
  • macOS packaging: strip extended attributes before signing and verify the DMG's app strictly (#525) by @vangel76 in #527
  • fix(layout): match Word's contextual paragraph spacing by @OPUZZLES in #568
  • STYLEREF fields show each page's result in headers and footers (#775) by @dkhlapov in #882
  • Mail merge: .xls recipients, legacy encodings, Filter and Sort (#778) by @dkhlapov in #885
  • .doc: open password-protected Word 97–2003 files (RC4, RC4 CryptoAPI, XOR) (#1079) by @vangel76 in #1087
  • fix(layout): prevent list labels from inflating line height by @OPUZZLES in #601
  • Russian proofing: spelling, suggestions, grammar and word division by @xmaks82 in #894
  • File: recover unsaved work after a crash (#518) by @OPUZZLES in #586
  • fix(layout): preserve legacy table paragraph spacing by @OPUZZLES in #577
  • STYLEREF review follow-ups: headers stay cached, switch labels in our own words (#1286) by @dkhlapov in #1294
  • CI: recovery pruning test retries a scan that a lock race skipped by @echelon in #1849
  • Word forms keep their legacy form fields and rows' skipped grid columns when saved by @marcoarnulfo in #1184
  • Keytips: Alt, J, T and Alt, J, L open the table tabs like Word by @marcoarnulfo in #1185
  • Modify Style picks its font from the font box the ribbon uses by @marcoarnulfo in #1187
  • UI: fix Select icon polygon rendering by @marc-antoine-girard in #1193
  • Desktop: a maximized window no longer flashes on and off at start-up on Windows (#23) by @tlomts-dev in #1194
  • Tables: Select All then Delete removes a table the document starts with; right-click Delete offers Delete Table again by @marcoarnulfo in #1202
  • Right-click on a table of contents entry offers Update Field by @marcoarnulfo in #1203
  • Navigation pane headings align left, indented under their parent by @marcoarnulfo in #1204
  • Layout menus mark the current margins, orientation, size and columns by @marcoarnulfo in #1214
  • Ctrl+Q resets the paragraph without also closing the window by @marcoarnulfo in #1220
  • Ctrl+wheel zoom keeps the place under the pointer instead of scrolling the page away by @marcoarnulfo in #1226
  • Harden against hostile-document DoS and non-web link export by @JeremyYao in #1235
  • i18n(it): translate the 24 strings other catalogs added since #598 by @fabiodalez-dev in #1244
  • Fonts: the interface CJK fallback skips faces without outlines by @dotCooCoo in #1250
  • fix: remove dead-code unwrap_or magic string in percent_decode by @ahutsunshin in #1257
  • Cut copies to the system clipboard from every control by @tarpescu in #1256
  • fix: remove unreachable empty-string branch in open_bytes_with match by @ahutsunshin in #1258
  • Accessibility: Windows Magnifier follows the caret onto a new line (#1119) by @rabis7575 in #1247
  • Desktop: a window too big for its screen shrinks to fit when it opens (#1215) by @rabis7575 in #1253
  • feat: add SVG and ICO MIME types to mime_of helper by @ahutsunshin in #1262
  • Table Layout: the Cell Size boxes apply to the whole selection (#1242) by @Silvertree2010 in #1276
  • Insert › Bookmark: Delete and Go To, laid out as Word's (#1236) by @rabis7575 in #1277
  • Improve Polish spelling suggestions for final consonant devoicing by @neronek22 in #1298
  • fix(ui): prevent options pane labels from overflowing (#1266) by @Zaxaerith in #1301
  • CI: Select All + Delete test presses Select All until the document is selected by @echelon in #1865
  • Layout: inside/outside floats swap sides on even pages; Page Setup shows mirror margins (#1181) by @LloydNicholson in #1239
  • refactor: deduplicate ZIP and OLE magic number constants in io.rs by @ahutsunshin in #1260
  • UI: view-mode tooltips, SmartArt labels and TOC style names follow the interface language by @andrejskvorc in #1272
  • Restrict Editing: filling in forms opens fillable content controls (#1077) by @edurbs in #1309
  • fix(ui): drag a Behind Text picture or shape over the text it overlaps by @mute-09 in #1313
  • Word's text watermark in DOCX: drawn on screen and in the PDF, and kept on save (#1290) by @mmazzieri in #1328
  • Insert Hyperlink: Link to › Place in This Document (#1234) by @Silvertree2010 in #1370
  • An empty .docx opens as a blank document that saves back to it (#1384) by @rabis7575 in #1387
  • Scripts can't close a document with unsaved changes without force (#1268) by @dkhlapov in #1391
  • Paragraph dialog: leave mixed formatting alone, apply as one undo step (#1346) by @rabis7575 in #1397
  • fix(geom): measurement parser rejects overflow to infinity during unit conversion (#1359) by @krinry in #1398
  • xtask assets: fail when git ls-files fails, read raw NUL-separated paths (#1364) by @rabis7575 in #1401
  • Mouse wheel keeps scrolling while a text selection is being dragged (#1388) by @MarekSpodBiedry in #1402
  • Save preferences through a temporary file and log write failures (#1361) by @MarekSpodBiedry in #1404
  • RTF import decodes Unicode escapes in font names (#1360) by @MarekSpodBiedry in #1406
  • MCP type_text reports a refused paragraph break instead of typing the next line (#1356) by @MarekSpodBiedry in #1407
  • Print to PDF and PNG export replace the file only after it is fully written (#1355) by @MarekSpodBiedry in #1408
  • Restart Numbering keeps the list's own level definitions (#1351) by @MarekSpodBiedry in #1409
  • Document::delete_range checks both ends before editing, so an error leaves the document unchanged (#1350) by @MarekSpodBiedry in #1410
  • Styles gallery shows Word's quick styles for DOCX files that mark none, e.g. from LibreOffice (#1238) by @dkhlapov in #1394
  • Outline Promote, Demote, Move Up and Move Down add one undo step instead of two (#1363) by @MarekSpodBiedry in #1403
  • DOCX: cap the depth of header/footer parts that reference further headers/footers (#1322) by @MarekSpodBiedry in #1415
  • Convert Text to Table refuses to drop fields or a table in the selection (#1318) by @MarekSpodBiedry in #1416
  • Layout: formats past 65,536 in one paragraph keep their own style (#1340) by @rabis7575 in #1421
  • #967: keep with next, keep lines together, page break before and widow control list their {"value"?: bool} by @Nael-Nathanael in #1427
  • wordcraft --control checks its port (#1426) by @Nael-Nathanael in #1436
  • #1376: a word too wide for the strip beside a floating picture moves on whole by @Nael-Nathanael in #1439
  • DOCX: draw VML preset shapes such as Word's right arrow (#1377) by @Nael-Nathanael in #1442
  • Picture Format › Crop: crop handles on the canvas by @dkhlapov in #1447
  • Canvas: a redrawn page goes to egui as rendered, without a round trip through straight alpha by @spiritbearlabs in #1450
  • Markdown import: brackets no longer turn later links in the paragraph into plain text (#1452) by @rabis7575 in #1453
  • JSON open repairs hostile run lengths (#1337) by @justinjohn0306 in #1412
  • Free part, list and comment ids after a file's largest ones (#1338) by @rabis7575 in #1428
  • Page Setup: Justified vertical alignment (#1320) by @dkhlapov in #1435
  • insert.picture and insert.icon leave the caret after the picture (#965) by @Nael-Nathanael in #1437
  • macOS: Word for Mac's keys for Save As, Insert Endnote, New Comment, Replace and the ribbon (gap #24) by @spiritbearlabs in #1438
  • Proofing: status bar flags a language whose dictionary isn't installed (#1167) by @vangel76 in #1441
  • A file name that isn't valid Unicode no longer crashes wordcraft-cli or the app (#1440) by @Nael-Nathanael in #1444
  • fix(engine): handle multi-byte UTF-8 characters before em-dash in dash_autoformat by @divyanshu2074 in #1570
  • fix(engine): trim arguments when parsing sample text formulas by @divyanshu2074 in #1571
  • .doc import: notes, headers and text boxes read their text once (#1319) by @rabis7575 in #1572
  • Layout: widow control moves a three-line paragraph whole by @przemek-arch in #1575
  • Lists: Russian letter numbering draws а) б) в) instead of digits by @alik654zx in #1577
  • Flat OPC: reading bounded everywhere in the file, CDATA base64 read (#1353) by @rabis7575 in #1580
  • Text boxes in tables nested deeper than 16 survive edits (#1339) by @rabis7575 in #1591
  • Layout: a table's percentage width past 100% is kept by @finwarman in #1598
  • Layout: page numbers can restart at 0 by @finwarman in #1601
  • Save Changes prompt takes the keyboard from the page (#1597) by @alik654zx in #1602
  • Comments: deleting a comment leaves no dangling anchors or replies (#1345) by @squaredcow in #1565
  • All Caps draws ß as SS, as Word does (#1581) by @dkhlapov in #1583
  • Italian proofing: po', qual è, È and un/un' grammar rules; more elisions in spelling by @lupant in #1585
  • Respect the image byte limit during DOC DIB conversion by @haranishi in #1590
  • Shapes: a right triangle keeps its right angle by @finwarman in #1599
  • Equations: a multi-letter subscript stays whole after build-up by @marcoarnulfo in #1623
  • Tabs left of the margin stay on a default stop they already sit on (Word) by @Morzilla in #1631
  • CI: VML shape type 6 is a right triangle in the preset-mapping test by @echelon in #1900
  • CI: the rtTriangle VML fixture draws a right triangle by @echelon in #1909
  • Layout: a page break followed by another page start makes one page by @finwarman in #1611
  • Layout: a bookmark after a page break takes no line by @finwarman in #1615
  • Layout: a numbered paragraph opening with a page break takes its number along by @finwarman in #1616
  • Tables: text running past an exact-height row is cut off by @finwarman in #1617
  • Tables: a row with less room than its minimum height moves on whole by @finwarman in #1618
  • Layout: an empty section mark stays on a full page by @finwarman in #1614
  • Layout: an inherited footer sizes its percentage tables by its own section by @finwarman in #1620
  • Layout: paragraph spacing adds up when HTML auto spacing is off by @finwarman in #1612
  • Fonts: a missing roman font is drawn in Cambria, as in Word by @finwarman in #1613
  • Fonts: a Bidi theme slot names the theme's complex-script font by @finwarman in #1619
  • Escape selects a text box or WordArt, so Delete removes it (#1538) by @Yasas-Sri in #1604
  • i18n(it): the interface audit checks Italian; Privacy Settings wording; envelope label test by @D13GOOOO in #1627
  • A floating object anchored after a page break stays on the page its paragraph starts on by @Morzilla in #1632
  • View Gridlines outlines header and footer tables (#1628) by @benandez in #1633
  • DOCX: keep a bare w:pgNumType when saving by @lhymes in #1634
  • DOCX: keep an explicit horizontal w:textDirection when saving by @lhymes in #1635
  • Draw arrowheads on open freeform paths by @finwarman in #1645
  • DOCX: keep w:formProt when saving by @lhymes in #1636
  • DOCX: keep row-level w:tblPrEx when saving by @lhymes in #1637
  • M12: preserve document properties when importing legacy DOC and DOT by @LabDennis in #1640
  • Shapes: draw flowchart OR spokes by @finwarman in #1644
  • ODT import: text after a drawing shape stays in its paragraph (#1654) by @benandez in #1657
  • Layout: empty line breaks do not move floating tables by @finwarman in #1658
  • RTF import: Mac OS Roman and DOS code pages (\mac, \pc, \pca) (#1653) by @D13GOOOO in #1661
  • Dropping several images inserts all of them (#1592) by @MarekSpodBiedry in #1664
  • Copy puts the formatted text on the system clipboard as HTML, not only copies with equations (#1523) by @MarekSpodBiedry in #1667
  • CLI PDF export: Arabic and Persian fall back to the craft-fonts Arabic face (#1652) by @benandez in #1668
  • TOC page numbers reach the right margin of the TOC's section, and no blank line above imported entries by @dfgodvan in #1686
  • engine: store replacement images under their true format extension by @midasmatterhorn in #1691
  • Open on the Home tab every launch, as in Word (#1699) by @matstrange in #1700
  • Tables: repeated header rows move to the next page with the first row (#1704) by @dfgodvan in #1705
  • Text typed after a footnote or endnote number is no longer superscript (#1593) by @MarekSpodBiedry in #1663
  • Layout: field instructions do not add blank paragraphs by @finwarman in #1665
  • Layout: hide labels on page-break-only list paragraphs by @finwarman in #1673
  • Shift+Delete cuts the selection on macOS and Linux too (#1669) by @D13GOOOO in #1676
  • M15.1: print-area strings translated in every interface catalog by @leoncral in #1702
  • A click on the ribbon's chrome keeps typing in the document (#1093 follow-up) by @matstrange in #1703
  • Tables: honor consistent preferred cell widths by @finwarman in #1709
  • Docs: merge table rows that conflict resolutions left duplicated by @echelon in #1936
  • Legacy VML freeforms (header rule lines) are drawn and kept on save by @mmazzieri in #1659
  • CI: both recovery scan-error tests retry a scan a lock race skipped by @echelon in #1939
  • Fix blurred text in Web and Draft Layout on long documents by @ripdog in #1152
  • Shortcuts: more of Word's default keys (Insert-key clipboard, F2 file keys, field and outline keys) (gap #24) by @rp6186030 in #1166
  • feat(print): add orientation support and pass landscape options to spooler by @emre-clk91 in #1389
  • perf: lowercase HTML tag names during collection to avoid double String allocation by @ahutsunshin in #1261
  • Proofing: Vietnamese text under the default English language gets no marks by @haisondb35-blip in #1553
  • fix(formats): preserve leading whitespace in markdown escape_line_start by @divyanshu2074 in #1568
  • Web: add option to load system installed fonts in dropdown by @GhostMitra in #1390
  • Table Layout › Sort opens a Sort dialog: column, order and header row by @marcoarnulfo in #1205
  • Table Layout › Formula opens a Formula dialog with Word's suggested formula by @marcoarnulfo in #1210
  • i18n: add Korean UI catalog and font fallback (from #1216) by @echelon in #1955
  • CI: recovery tests retry a load a lock race refused by @echelon in #1957
  • i18n: add Swedish (sv) interface translation by @holmbom in #1219
  • i18n: add Croatian (hr) interface translation by @andrejskvorc in #1271
  • Ita Translate: Italian Reading Mode column widths (from #1040) by @echelon in #1959
  • Margins and page sizes: follow the measurement unit and keep translated names by @andrejskvorc in #1274
  • Tables: Backspace after a nested table stays in its cell by @rbr48 in #906
  • get_text and CLI text omit tracked deletions (#866) by @ImpotStite in #944
  • M1: fields keep w:dirty through saves; computing a result clears it (#877) by @edurbs in #946
  • Docs: drop a stray merge marker from the ROADMAP progress log by @echelon in #1962
  • fix(references): clear imported TOC field result on update (#878) by @Totopo27 in #953
  • Tables: one selected cell's border drags in its row only by @rabis7575 in #970
  • Tab stops: edit on the ruler (corner selector, click, drag, drag off) and an inline-edit table in the Tabs dialog by @iot-root in #976
  • proof: Czech (cs-CZ) spelling from the installed Hunspell dictionary by @Losminek in #1048
  • CI: rustfmt the proofing language list by @echelon in #1970
  • layout.pageSetup validates its section values (#1582) by @dkhlapov in #1584
  • Tables: preserve row table border exceptions by @finwarman in #1708
  • Fields: refresh unlocked DATE and TIME when a document is opened by @Hamza0101 in #1679
  • Table style editor formats every table style part (#714) by @dkhlapov in #887
  • CI: drop a duplicate contributor entry in people.toml by @echelon in #1977
  • Recovery: a record lock held for a moment is waited out, not skipped by @echelon in #1979
  • Table style review follow-ups: No Border on inherited parts, cell Top beats the style (#1288) by @dkhlapov in #1296
  • Tables: formulas with cell references, functions, number formats and F9 by @rbr48 in #907
  • fix(ui): draw Arabic and other non-Latin comment text in balloons by @ms-youssef in #950
  • #954: macOS ⌘←/⌘→ go to the line's start and end by @justinjohn0306 in #972
  • Use the shared PDF writer while preserving WordCraft export behavior by @skylartaylor in #1558
  • ci: add nix check workflow by @dylanmtaylor in #2307
  • Shorten Russian "Accessibility" label so it fits the options sidebar by @Silvertree2010 in #2672
  • #2717: keep inherited proofing choices in Language dialog by @OPUZZLES in #2736

New Contributors

  • @raythurman2386 made their first contribution in #1179
  • @Nghiathan13 made their first contribution in #1458
  • @dfgodvan made their first contribution in #1461
  • @cyril265 made their first contribution in #1474
  • @saadkhantareen made their first contribution in #1490
  • @ImpotStite made their first contribution in #1478
  • @benandez made their first contribution in #1487
  • @MMexicann made their first contribution in #1488
  • @shlok2721-web made their first contribution in #1501
  • @mjohnson7cd made their first contribution in #1525
  • @HyakoV3 made their first contribution in #1536
  • @kkilchrist made their first contribution in #1559
  • @y2w8 made their first contribution in #1006
  • @Losminek made their first contribution in #973
  • @neupaneprashant made their first contribution in #1016
  • @albayazid made their first contribution in #1049
  • @tarpescu made their first contribution in #1050
  • @lasse-tech made their first contribution in #1041
  • @guruswarupa made their first contribution in #1046
  • @H0ruu1 made their first contribution in #1052
  • @Toddpe made their first contribution in #1069
  • @marc-antoine-girard made their first contribution in #1193
  • @tlomts-dev made their first contribution in #1194
  • @dotCooCoo made their first contribution in #1250
  • @ahutsunshin made their first contribution in #1257
  • @neronek22 made their first contribution in #1298
  • @Zaxaerith made their first contribution in #1301
  • @andrejskvorc made their first contribution in #1272
  • @mute-09 made their first contribution in #1313
  • @mmazzieri made their first contribution in #1328
  • @krinry made their first contribution in #1398
  • @spiritbearlabs made their first contribution in #1450
  • @divyanshu2074 made their first contribution in #1570
  • @alik654zx made their first contribution in #1577
  • @finwarman made their first contribution in #1598
  • @squaredcow made their first contribution in #1565
  • @lupant made their first contribution in #1585
  • @haranishi made their first contribution in #1590
  • @Morzilla made their first contribution in #1631
  • @D13GOOOO made their first contribution in #1627
  • @lhymes made their first contribution in #1634
  • @LabDennis made their first contribution in #1640
  • @midasmatterhorn made their first contribution in #1691
  • @matstrange made their first contribution in #1700
  • @leoncral made their first contribution in #1702
  • @emre-clk91 made their first contribution in #1389
  • @haisondb35-blip made their first contribution in #1553
  • @holmbom made their first contribution in #1219
  • @rbr48 made their first contribution in #906
  • @Totopo27 made their first contribution in #953
  • @iot-root made their first contribution in #976
  • @Hamza0101 made their first contribution in #1679
  • @ms-youssef made their first contribution in #950
Full Changelog: v0.7.0...v0.8.0

Performance and Compatibility

WordCraft is written in Rust and uses a modular architecture for document editing, typography, pagination, rendering, and file conversion. Its interface uses the native GPU-oriented egui framework rather than Electron or Tauri.

The project emphasizes responsive editing through cached paragraph layout and on-demand page rendering. Its developers report that typing in a 188-page document triggers layout recalculation in approximately 1.4 milliseconds. This is a project-reported benchmark rather than an independent performance test.

WordCraft supports macOS, Windows, Linux, BSD, and browsers through WebAssembly. It can read and write DOCX files and supports several additional document formats.

The main limitation is compatibility maturity. The project's roadmap identifies real-world DOCX testing, native printing, and signed application builds as remaining work. Charts, SmartArt, the equation editor, and the Draw tab are also listed as future development areas.

Consequently, WordCraft should not yet be assumed to offer complete feature parity with Microsoft Word, particularly for complex business documents and specialized workflows.

System Requirements

  • Operating systems: Windows, macOS, Linux, and BSD.

  • Browser support: WebAssembly build for compatible browsers.

  • Document formats: DOCX, ODT, RTF, HTML, Markdown, and plain text.

  • Export: PDF and page images, in addition to supported document formats.

  • Build requirements: Rust and the project's documented dependencies.

The project does not provide a comprehensive minimum hardware specification in the information reviewed. Actual performance will depend on document complexity, fonts, embedded images, and system resources.

Pros and Cons

Pros

  • Free and open-source under the MIT or Apache 2.0 license.

  • Familiar ribbon-style interface inspired by Microsoft Word.

  • DOCX reading and writing support.

  • Extensive formatting, styles, tables, and page-layout tools.

  • References, citations, footnotes, indexes, and tables of contents.

  • Comments, Track Changes, and proofreading tools.

  • Mail merge with CSV data sources.

  • PDF export with selectable text, links, and bookmarks.

  • Native desktop applications and a browser-based version.

  • CLI and MCP support for document automation.

  • Offline spelling and grammar features without requiring cloud processing.

Cons

  • Still approaching maturity for everyday writing and production use.

  • Complex DOCX compatibility needs more real-world validation.

  • Native printing and signed application builds remain development priorities.

  • Charts, SmartArt, and the equation editor are not yet complete features.

  • Does not provide full Microsoft Word feature parity.

  • Professional workflows may require additional testing and workarounds.

How to Install

The simplest option is to download a package from the project's GitHub Releases page, if a suitable build is available for your operating system.

To build and run WordCraft from source, install Rust and the required development dependencies, then execute:

git clone https://github.com/storytold/wordcraft
cd wordcraft
cargo run --release -p wordcraft -- --sample

To open an existing document:

cargo run --release -p wordcraft -- report.docx

For browser-based use, navigate to the web application directory and start the development server:

cd apps/wordcraft-web
trunk serve

The development server will provide a local address for opening WordCraft in a browser. Refer to the official repository for detailed build dependencies, release packages, and platform-specific instructions.

Final Verdict

WordCraft is an ambitious open-source word processor that combines familiar document editing with advanced formatting, references, review tools, mail merge, and automation. Its support for DOCX and PDF, together with additional formats and offline functionality, makes it a promising alternative for users who want more control over their document workflow.

Its command-line interface and MCP integration are especially interesting for developers and organizations that generate or process documents programmatically. The extensive feature set also makes it worth exploring for students, writers, and office users.

The biggest concern is maturity. WordCraft covers many of Microsoft Word's ribbon features, but feature coverage is not the same as complete behavioral compatibility. Users who depend on complex documents, advanced diagrams, equations, or established printing workflows should test their files carefully before switching.

For everyday writing and experimentation with open-source office software, WordCraft is worth trying. For mission-critical document production, it is better treated as a developing alternative until its compatibility and printing workflows have been validated against real-world requirements.

WordCraft v0.8.0
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux / BSD
Date Added:
2026-10-18T09:07:18.752Z