A native CAD application for 2D drafting and DWG/DXF drawings, part of the Nodalia suite.
Screenshots · What it does · Build · Agents · Status · Suite · License
Apartment plan (examples/apartment.dxf): hatched walls, room labels, a table, a multileader and dimensions, all drawn with Forja's own commands.
Forja is the CAD application of Nodalia. You draft the way decades of
habit expect: type L, click two points, type @5<45, press Enter. It opens and saves DXF and DWG,
lays drawings out on paper, and plots them to PDF. It is written in Rust, with no Electron and no web
view, and it wears Nodalia Design: rounded islands, bold icons and the suite's own window controls on
Linux.
Important
Forja is at an early stage. The first release, 0.1.0, targets Linux. Expect rough edges, and keep a copy of drawings that matter.
![]() |
![]() |
| Layouts: paper space with viewports, page setups and plotting to PDF. | Light theme: a two-view part drawing with centre lines, a section hatch and a title block. |
- The command line you know. Prompts with clickable keywords, AutoComplete, aliases, relative
and polar input (
@dx,dy,@d<a), direct distance entry, object snaps, polar tracking, ortho, window and crossing selection, grips, and Enter or right-click to repeat. - Drafting and editing. Lines, polylines, circles, arcs, rectangles, polygons, ellipses, splines, text and multiline text; move, copy, rotate, scale, mirror, stretch, offset, trim, extend, fillet, chamfer, arrays and more.
- Annotation. Dimensions with full dimension styles that follow the geometry, multileaders, tables, hatches and gradients, blocks with attributes, TrueType fonts and a single-stroke drafting font of its own.
- Layers and properties. A layers palette and manager, layer tools, and a properties palette that edits any selection.
- Open files. DXF read and write, DWG open and save, PDF plotting, SVG and PNG export.
- Layouts and plotting. Paper-space layouts, scaled and locked viewports, page setups.
- Parametric drawing. Geometric and dimensional constraints that re-solve after every edit.
- Many languages. English, Spanish and seventeen more interface languages, switched live (details).
The full, honest list of what works and what does not yet is in ROADMAP.md and docs/gaps.md.
You need Rust 1.95 or later.
git clone https://github.com/danielmigueltejedor/forja.git
cd forja
cargo run --release -p forja -- --sample # opens the sample drawingThen type at the command line:
line 0,0 @10,0 @0,5 c a closed triangle
circle 5,2 1 a circle
zoom e zoom to the drawing
Forja keeps its settings and its log in ~/.config/forja/ on Linux.
Every menu item, tool and prompt is a command, so scripts and agents can do anything a person can:
forja-cli mcp # MCP server on stdio
forja-cli info drawing.dxf # what is in a drawing
forja-cli convert drawing.dwg drawing.svg # convert or export
forja-cli run --sample --script 'CIRCLE 22,3 1\n' --save out.dxf --export out.pngThe desktop app also takes a JSON control channel (--control PORT). See docs/cli.md,
docs/mcp.md and docs/control-protocol.md.
| Area | State |
|---|---|
| Drafting, editing, annotation | Working; see ROADMAP.md |
| DXF and DWG | Open and save; some entities are not kept yet (file-format-parity.md) |
| Nodalia Design interface | Done: islands, NDL icons and dialogs, Linux window controls |
| Native window controls | macOS and Windows keep the system's own |
| Installable packages | 0.1.0 for Linux, about to be published |
Nodalia app icons are black-and-white portraits of historical figures over the app colour.
Forja's is Leonardo da Vinci, engineer and master of technical drawing. Provenance and licence are
in assets/app-icon/.
Forja is one of the applications of Nodalia, an independent software project developed in public by Daniel Miguel Tejedor.
MIT OR Apache-2.0. See LICENSE-MIT, LICENSE-APACHE and
NOTICE. Every asset and its source is listed in ATTRIBUTION.md.

