All notable changes to the standalone Maxima language tools are documented here.
This changelog covers releases tagged tools-v*. For the Aximar desktop app,
see the v* releases on GitHub.
0.4.1 — 2026-04-22
- Fixed missing output fields:
image_pngandplot_datafields are now included inevaluate_expressionand cell suggestion tool responses.
0.4.0 — 2026-04-22
- Save/load cell outputs: Notebook files now persist text, LaTeX, plot, and image outputs so they render when reopened without re-running cells.
- Plot persistence: Plotly JSON (
application/x-maxima-plotly) and SVG (image/svg+xml) outputs are saved/loaded via nbformatdisplay_dataentries. - Image output support: Base64-encoded
image/pngandimage/jpegoutputs are saved and rendered in notebooks. - Notebook-level trust: Dangerous function approval is now per-notebook instead of per-cell, unblocking run-all-cells workflows.
- Trailing comment stripping: Block comments after the last statement
terminator (e.g.
x:1; /* note */) are stripped before sending to Maxima, preventing parse errors. - Comment-only cell handling: Cells containing only comments are detected as empty after stripping and skipped gracefully.
- Assumption question detection: Maxima assumption prompts (e.g. "Is x positive?") are now detected and returned as errors instead of hanging.
- SBCL compiler warning filtering: Spurious SBCL compiler notes in Maxima output are now stripped from results.
- CLI batch runner:
aximar-mcp run <path> [-o output] [--allow-dangerous]executes all cells in a notebook and saves with outputs, enabling scripted notebook execution for CI and batch processing. - Clap CLI: Replaced manual argument parsing with clap derive macros.
Adds
--help,--version, and subcommand help. - Inherits all aximar-core changes above.
0.3.1 — 2026-04-17
- Fixed doc-index loading: When both a full and slim doc-index exist for
the same package (e.g.
maxima-core-docs), the full version is now preferred. Previously, non-deterministic directory iteration order could cause the slim variant to overwrite the full docs.
0.3.0 — 2026-04-17
- Doc-index support: Load
doc-index.jsonfrom installed packages (~/.maxima/*/doc/) for hover docs, completions, and signature help. - Auto-reload: File watcher detects when packages are installed or removed and reloads doc-index data automatically.
- Fixed polar plot JSON:
simplode([], ",")returnsfalsein Maxima; emptypolar_partsnow correctly produces"polar":{}. - Added
save_plotly_jsonsuggestion: Plotly plot outputs now offer a "Save JSON" suggestion chip.
- Inherits aximar-core fixes above.
0.2.2 — 2026-04-14
- 3D parametric curves:
parametric(x(t), y(t), z(t), t, t0, t1)inax_draw3drenders 3D space curves (helices, knots, etc.) asscatter3dtraces. - 3D parametric surfaces:
parametric_surface(x(u,v), y(u,v), z(u,v), u, u0, u1, v, v0, v1)inax_draw3drenders surfaces like spheres, tori, and Möbius strips. - 3D implicit surfaces:
implicit(eqn, x, x0, x1, y, y0, y1, z, z0, z1)inax_draw3drenders isosurfaces using Plotly'sisosurfacetrace. - 3D surface contours:
ax_contour3d(expr, x, x0, x1, y, y0, y1)renders a surface with contour lines projected below. - 3D vector fields:
ax_vector_field3d(Fx, Fy, Fz, x, x0, x1, y, y0, y1, z, z0, z1)renders 3D vector fields as cone plots. - Box plots:
ax_box(data)orax_box(data, category)— box-and-whisker plots withboxpointsandboxmeanoptions. - Violin plots:
ax_violin(data)orax_violin(data, category)— kernel density visualization with embedded box plot and mean line. - Pie/donut charts:
ax_pie(values, labels)withholeoption for donut charts. - Error bars:
ax_error_bar(xs, ys, y_errors)orax_error_bar(xs, ys, y_errors, x_errors)— scatter plots with error bars. - New template notebooks: "3D Plotting" and "Statistics" templates with worked examples for all new chart types.
- Fixed
parametric_surfaceargument count: Was incorrectly requiring 10 arguments instead of 9. - Fixed implicit 3D and vector field 3D performance: Replaced O(n²)
endconslist-building in triple-nested loops with pre-allocated arrays and indexed assignment. Reduced default implicit grid from 30³ to 20³.
- Float gotcha in AI instructions: Added guidance about wrapping expressions
containing symbolic constants (
%pi,%e) infloat()to force numeric evaluation — prevents severe performance issues with large symbolic lists.
0.2.1 — 2026-04-13
- Runtime errors surfaced in debug GUI: When Maxima hits a runtime error
(e.g.
ev: improper argument), the stopped event now reportsreason: "exception"with the error message, instead of a generic breakpoint stop with no context. - Synthetic stack frame for top-level errors: When the backtrace is empty (error outside any user-defined function), a synthetic frame is generated from the canonical location so the call stack panel isn't blank.
- Fixed canonical location parsing: The regex now handles the
\x1a\x1aEmacs/GDB annotation prefix that Maxima emits, which was silently preventing all canonical location matching. - Fixed breakpoint deletion: Use
:delete(the correct Maxima command) instead of:delbreak(nonexistent).
- Comma/ev gotcha in instructions: Added warning that the comma operator
in Maxima is
ev(), not a statement separator.
0.2.0 — 2026-04-13
- Improved breakpoint resolution: Breakpoint locations are now captured
directly from execution output (e.g.
batchload,:resume,:step) instead of querying:info :bkptafter each stop. This gives exact full-path file matching and eliminates a round-trip to the Maxima process on every debug stop.
0.1.0 — 2026-04-13
Initial standalone release of the Maxima language tools.
- Syntax-aware completions for 2500+ built-in Maxima functions
- Hover documentation from the Maxima reference manual
- Go-to-definition and references for user-defined functions
- Real-time diagnostics (syntax errors, unmatched parens)
- Document and workspace symbols
- Step-through debugging with breakpoints, variable inspection, and call stacks
- Enhanced Maxima debugger support (file:line breakpoints with deferred resolution)
- Legacy mode fallback for stock Maxima (function+offset breakpoints)
- Output filtering to suppress debugger noise
- Canonical file path handling for reliable source mapping
- Configurable evaluation timeouts
- HTTP transport with bearer token authentication
- Multi-notebook session management (create, close, restart)
- Cell evaluation with LaTeX, SVG, and Plotly output
- Documentation catalog with full-text search
- Dangerous function safety gates
- Structured JSON startup output for VS Code integration