README.md

July 17, 2026 · View on GitHub

LineSolv

LineSolv

A cross-platform desktop natural-language calculator

MIT License Version Platform Go Wails

LineSolv is a natural-language calculator that understands phrases like $20 in euro - 5% discount or what is the 5 plus pi times five. It combines a powerful Go-based arithmetic engine with a clean, distraction-free desktop UI.

Built with Wails v2 (Go + WebView), Vite, TypeScript, and CSS custom properties for theming.

Screenshot

LineSolv home screen

More screenshots: View all screenshots

Key Features

  • Natural Language Math — Type phrases like what is 20 plus 5% or $20 in euro - 10% discount and get instant results
  • Full-Window Transparency — Adjustable opacity (30%–100%, default 95%) with true window translucency on all platforms
  • Real-Time Settings — Every setting (theme, font, opacity, line numbers, autocomplete) applies instantly with no Save button
  • Line Number Toggle — Show or hide line numbers in the calculator editor
  • Autocomplete Popup — Type-aware keyword suggestions that can be toggled on/off
  • 27 Color Themes — Dark, Light, Neon, Red, Obsidian, Plasma, Blood, Midnight, Aurora, Mono, Frost, Prism, Lavender, Sage, Warm Light, Blue Trust Dark/Light, Orange Energy Dark/Light, Green Growth Dark/Light, Yellow Optimism Dark/Light, Purple Innovation Dark/Light, Red Passion Dark/Light with instant switching
  • 5 UI Styles — Default, Liquid Glass, Material 3, Alivated, Neon — all rewritten to match their real-world design systems with authentic colors, typography, shadows, and component styling
  • 17 Font Options — Sans-Serif, Serif, and Monospace fonts including JetBrains Mono, Fira Code, and more
  • 40+ Unit Conversions — Length, mass, volume, temperature, time, and 30+ live currencies
  • Function Graphing — Auto-detect plot expressions and render live charts
  • Plugin System — 12 built-in plugins with expression-based custom functions, themes, and variables
  • Notes & History — Multi-note notebooks with searchable history, PDF export, and undo/redo
  • Cross-Platform — Native builds for Linux, macOS (Intel & Apple Silicon), and Windows

Features

Core Calculator

FeatureDescriptionExample
Natural LanguageType conversational math phraseswhat is twenty five plus three
Basic ArithmeticFull PEMDAS with +, -, *, /, %, ^2 + 3 * 4
Number Wordsspelled-out numbers up to billionstwenty five times pi
Fraction InputMixed numbers and fraction words2 1/2 + 1.5, three quarters
Scale Wordsdouble, triple, half, quarterdouble 5, half of 20
Power Wordssquared, cubed, square root of5 squared, cube root of 27
Comparisonwhich is bigger, more than, less than5 more than 10
Division Phrasesover, out of, divided by, into10 over 2, 3 into 15
Multiplication Phrasestimes, product of, lots ofproduct of 4 and 3
Collective Nounsa dozen, a score, a couplehalf a dozen
Possessive Plurals3 tens, 5 thousands3 tens from 5 hundreds
SI Notationk, M, B suffixes2B / 5k
Ordinal Suffixes1st, 2nd, 3rd, 4th1st + 2
Conversational Prefixeshello, hey, ok, well, etc.hey there calculate 6 times 7
Time Durations2h30m, 2h + 1h15m2h30m in minutes
"How many times"Division as counthow many times does 5 go into 20
"Split / Shared"Division by sharing10 split among 2
Combined PhrasesMix multiple patterns5 choose 2 + 3!

Percentages

FeatureExample
Percentage of10% of 200
Add percentage100 + 15%
Subtract percentage200 - 10%
"of what"50% of what is 25
"what percent"10 is what percent of 50
Tax and discount100 with 8% tax, 200 after 10% discount
Tip calculation40 plus 15% tip
Natural languagehow much is one hundred plus fifty percent

Unit Conversion

CategoryUnitsExample
Lengthmm, cm, m, km, in, ft, yd, mi10 inches in cm
Massg, kg, lb, oz1 kg in lb
Volumeml, l, gal, qt, cup1 gal in l
Temperature°C, °F100 c to f
Times, min, h, day2h30m in minutes
Currency30+ currencies (live rates)$20 in euro - 5% discount

Currency Support

USD, EUR, GBP, JPY, CNY, INR, CAD, AUD, CHF, KRW, RUB, ILS, VND, PHP, UAH, KZT, PYG, GHS, TRY, AZN, GEL, BTC, THB, HKD, SGD, MXN, ZAR, NZD, SEK, NOK, PLN, BRL, BDT, PKR, LKR, NPR, MYR, IDR, TWD, SAR, AED, KWD, EGP, NGN, COP, CLP, ARS, PEN, MAD, XAU (gold), XAG (silver).

Math Functions

CategoryFunctions
Trigonometrysin, cos, tan, asin, acos, atan, atan2
Hyperbolicsinh, cosh, tanh
Logarithmiclog, log2, log10, ln, exp
Roots & Powersqrt, cbrt, pow
Roundinground, ceil, floor, trunc, sign
Absoluteabs
Statisticsavg, median, mode, stdev, variance, range
Aggregationsum, min, max
Combinatoricsfact/factorial, gcd, lcm, ncr/choose
Randomrand, random
Geometryhypot/pythag/hypotenuse
Utilityfract, deg, rad
Number Theoryisprime/is_prime

Constants

pi (π), e, speed_of_light, gravity, planck, boltzmann, gas_constant, avogadro, stefan_boltzmann, electron_mass, proton_mass, neutron_mass, electron_charge, bohr_radius, rydberg.

Variables & Context

FeatureExample
Assign variablesx = 42
Reference variablesx * pi
Chain assignmentsy = x + 8
Context referencesof that * 2, then + 10, result / 2
Previous resultlast, previous, prior, last answer

Purchase Math

FeatureExample
Item pricing5 items at \$20 each
With discount5 items at \$20 each with a 15% discount
With tax5 items at \$20 each with a 15% discount and 8% sales tax
Natural languageI bought 8 items at \$5 each with a 10% discount and 6% sales tax
Freelance earningsI got 25 hours of freelance work at \$37 per hour
Sale priceThat \$200 jacket is 25% off. What's the sale price?

Date & Time Math

FeatureExample
Relative datestoday + 14 days, today - 7 days
Named dateslast month, next week, 2 weeks from now
Specific datesMarch 1 + 30 days
Age calculationborn in 2007, i am 25 years old
Trailing noiseI completing a book at today + 14 days some story

Function Graphing

Auto-detect plot/graph expressions and render live charts:

FeatureExample
Basic plotplot x^2
Range specifiersplot x^2 from -5 to 5
Trigonometricgraph sin(x) from 0 to 6.2832
Linear equationsy = 2*x + 3
Polynomialsplot x^3 from -2 to 2

Interface

FeatureDescription
27 Color ThemesDark, Light, Neon, Red, Obsidian, Plasma, Blood, Midnight, Aurora, Mono, Frost, Prism, Lavender, Sage, Warm Light, Blue Trust D/L, Orange Energy D/L, Green Growth D/L, Yellow Optimism D/L, Purple Innovation D/L, Red Passion D/L
Multiple NotesCreate, rename, delete, export, import calculation notebooks
Notes SidebarDrag-and-drop reorder, search, PDF export
History PanelSearchable calculation history with timestamps
Variable ExplorerView and manage all assigned variables
Steps PanelStep-by-step evaluation with intermediate results
Documentation ViewerBuilt-in docs with offline caching
Plugin MarketplaceBrowse, install, enable/disable plugins
SettingsGeneral, Theme, UI Style (5 styles with authentic design system styling), Keyboard Shortcuts, About tabs — all real-time, no Save button
Configurable Font17 font options (Sans-Serif, Serif, Monospace) with live preview
Window OpacityAdjustable opacity slider (30%–100%, default 95%) for full-window transparency
Line Numbers ToggleShow or hide line number gutter in the calculator editor
Result Panel ToggleShow or hide the results column on the right side
Line Wrap ToggleToggle word wrapping in the editor (horizontal scroll when off)
Customizable ShortcutsRebind any keyboard shortcut
PDF ExportExport notes as formatted A4 PDFs
PrintPrint with A4 formatting, watermark, and date
Undo/Redo200-entry custom stack
Splash Loading ScreenAnimated logo and loading bar during startup
Toast NotificationsNon-modal feedback for actions (toggleable)
Dirty-State IndicatorAccent dot shows unsaved changes
Delete ConfirmationOptional "Don't ask again" preference
Window DraggingDrag title bar to move window
Double-Click FullscreenDouble-click title bar to toggle maximize
Text SelectionSelect and copy text in docs and plugin details
Frameless WindowClean, modern window chrome

Plugin System

FeatureDescription
Custom FunctionsExpression-based or builtin-backed functions
Custom Themes14 CSS color variables per theme
Custom VariablesNamed constants available in all calculations
12 Built-in PluginsFinance, Statistics, Geometry, Physics, Date/Time, Health, Arrays, Hex, Color, Base-N, Matrix, Random
Plugin MarketplaceBrowse and install from GitHub repository
Enable/DisableToggle plugins on/off without restarting
No Code ExecutionSafe expression-only evaluation

See the LineSolv Plugins repository for available community plugins.

Keyboard Shortcuts

ActionShortcut
Force evaluateShift + Enter
Toggle notes sidebarCtrl/Cmd + B
Toggle variables panelCtrl/Cmd + I
Toggle history panelCtrl/Cmd + H
Toggle steps panelCtrl/Cmd + S
Toggle documentationCtrl/Cmd + J
Open settingsCtrl/Cmd + , or `Ctrl/Cmd + ``
Create new noteCtrl/Cmd + N
Search notesCtrl/Cmd + F
Print current noteCtrl/Cmd + P
Show shortcuts reference? or Cmd + /
History navigationCtrl/Cmd + ↑ / Ctrl/Cmd + ↓
Undo / RedoCtrl/Cmd + Z / Ctrl/Cmd + Shift + Z
Duplicate lineCtrl/Cmd + D
Select current lineCtrl/Cmd + L
Delete current lineCtrl/Cmd + Shift + K
Toggle caseAlt + Shift
Move line up/downAlt + ↑ / Alt + ↓
Close panel / clearEscape
Clear allCtrl/Cmd + K
Fullscreen toggleDouble-click title bar

Quick Start

Download

Grab the latest release for your platform from the releases page.

PlatformPackage
Linux.deb (Debian/Ubuntu) or standalone binary
macOS.dmg (Intel & Apple Silicon)
Windows.exe (NSIS installer)

Install

Linux (Debian/Ubuntu)

sudo dpkg -i linesolv-*.deb
linesolv

Or run the standalone binary:

chmod +x LineSolv
./LineSolv

macOS

Mount the .dmg and drag LineSolv into Applications. You may need to right-click -> Open to bypass Gatekeeper on first launch.

Windows

Run the NSIS installer. LineSolv will be available from the Start menu.

Uninstall

Linux (deb)

sudo dpkg -r linesolv

To also remove user data:

rm -rf ~/.config/neostore/linesolv

macOS

rm -rf /Applications/LineSolv.app
rm -rf ~/.config/neostore/linesolv

Windows

Uninstall via Settings > Apps, then delete %APPDATA%/neostore/linesolv to remove user data.

Requirements

  • Linux: WebKit2GTK 4.1+ (Ubuntu 24.10+, Fedora 40+, Arch)
  • macOS: macOS 12+
  • Windows: Windows 10+

Usage

Type calculations naturally. Results appear as you type — no equals button needed.

Basic Math

InputOutput
4242
2 + 3 * 414
(2 + 3) * 420
2^101024
5!120

Natural Language

InputOutput
twenty five plus 328
what is the square root of 14412
calculate 15% of 20030
how much is one hundred plus fifty percent150

Variables

InputOutput
x = 10x = 10
x * pi31.4159
y = x + 8y = 18
of that * 236

Unit Conversion

InputOutput
10 inches in cm25.4 cm
1 kg in lb2.205 lb
100 c to f212.0 °F
2h30m in minutes150 minutes

Currency

InputOutput
$100 + €20$122.80
$20 in euro - 5% discount€18.26
£20 in usd$26.60

Percentages

InputOutput
10% of 20020
100 + 15%115
200 after 10% discount180
10 is what percent of 5020%

Purchase Math

InputOutput
5 items at \$20 each$100.00
5 items at \$20 each with a 15% discount$85.00
I bought 8 items at \$5 each with a 10% discount and 6% sales tax$40.76

Math Functions

InputOutput
sin(pi/4) + cos(pi/4)1.4142
log2(8)3
gcd(12, 8)4
5 choose 310
avg(1, 2, 3, 4, 5)3
stdev(10, 20, 30, 40, 50)14.142

Graphing

InputOutput
plot x^2Parabola chart
graph sin(x) from 0 to 6.2832Sine wave chart
y = 2*x + 3Linear chart

Architecture

LineSolv/
├── app/
│   ├── calculator/         # Arithmetic engine
│   │   ├── engine.go       # Core eval pipeline
│   │   ├── units.go        # Unit conversion database (100+ units)
│   │   ├── functions.go    # 40+ built-in math functions
│   │   ├── variables.go    # Variable storage
│   │   ├── steps.go        # Step-by-step evaluation
│   │   └── graph.go        # Function graphing (Chart.js)
│   ├── plugin/             # Plugin system
│   │   ├── types.go        # Manifest, Plugin, FunctionDef types
│   │   ├── loader.go       # Plugin scanning and loading
│   │   ├── builtins.go     # 20+ builtin plugin functions
│   │   ├── expr.go         # Expression evaluator for plugins
│   │   ├── state.go        # Plugin state persistence
│   │   └── state_test.go   # Plugin state tests
│   ├── service/            # Wails-bound Go methods
│   │   └── app.go          # 42+ service methods
│   └── storage/            # Persistence layer
│       ├── db.go           # SQLite database
│       ├── config.go       # TOML configuration
│       ├── exporter.go     # PDF/PNG export
│       └── fancyname.go    # Readable note names
├── frontend/
│   └── src/
│       ├── components/     # UI components
│       │   ├── TitleBar.ts           # Frameless window header
│       │   ├── CalculatorInput.ts    # Main input textarea
│       │   ├── ResultDisplay.ts      # Results column
│       │   ├── NotesPanel.ts         # Note management sidebar
│       │   ├── HistoryPanel.ts       # Searchable history
│       │   ├── VariableExplorer.ts   # Variable viewer
│       │   ├── StepsPanel.ts         # Step-by-step view
│       │   ├── GraphPanel.ts         # Chart.js graphing
│       │   ├── DocsViewer.ts         # Built-in documentation
│       │   ├── PluginPanel.ts        # Plugin marketplace
│       │   ├── SettingsModal.ts      # Settings (5 tabs)
│       │   ├── ShortcutModal.ts      # Keyboard shortcuts
│       │   ├── ConfirmDialog.ts      # Confirmation dialogs
│       │   ├── AutocompletePopup.ts  # Autocomplete dropdown
│       │   └── ContextMenu.ts        # Right-click menu
│       ├── stores/         # Reactive state
│       │   ├── calculator.ts         # Calculator state store
│       │   ├── notes.ts             # Notes state store
│       │   └── settings.ts          # Settings state store
│       ├── utils/          # Utilities
│       │   ├── shortcuts.ts          # Keyboard shortcut handler
│       │   ├── shortcutDefs.ts       # Shortcut definitions
│       │   ├── format.ts            # Number formatting
│       │   ├── html.ts              # HTML escaping
│       │   ├── fonts.ts             # Font loading
│       │   └── toast.ts             # Toast notifications
│       ├── App.ts          # Main orchestrator
│       └── style.css       # CSS custom properties + theming
├── docs/                   # Documentation
├── main.go                 # Entrypoint
├── wails.json              # Wails configuration
├── go.mod                  # Go module definition
├── .version                # Current version (0.17.0)
├── logo.svg                # Project logo
├── docs/examples.txt       # Input examples
├── CHANGELOG.md            # Version history
├── CONTRIBUTING.md         # Contribution guidelines
├── CODE_OF_CONDUCT.md      # Community standards
├── ACCESSIBILITY.md        # Accessibility statement and WCAG compliance
├── SECURITY.md             # Security policy
├── Dockerfile              # Containerized build environment
└── LICENSE                 # MIT License

Documentation

GuideDescription
User GuideBeginner-friendly guide to using LineSolv
Expression ReferenceComplete expression syntax reference
Interface DetailsDocumentation viewer, plugin marketplace, settings, design tokens
ScreenshotsAll screenshots of the LineSolv interface
Getting StartedQuick start for new users
ConfigurationSettings, config file options, and data storage
FAQ & TroubleshootingFrequently asked questions and common issues
ArchitectureHigh-level architecture and component overview
FrontendFrontend component structure and styling guide
Plugin DevelopmentHow to create and install plugins
ThemesTheme customization guide
DevelopmentDevelopment setup, build, and code standards
API ReferenceWails-bound Go method reference
Calculator EngineHow the natural-language calculation engine works
From Words to NumbersEnd-to-end pipeline walkthrough
AccessibilityWCAG 2.1 AA compliance and assistive technology support
Future FeaturesPlanned features: AI integration, self-updater, image/voice, mobile

Building from Source

Prerequisites

Steps

git clone https://github.com/rkriad585/LineSolv.git
cd LineSolv
npm install --prefix frontend
wails build -tags "webkit2_41"
./build/bin/LineSolv

Development (HMR)

wails dev -tags "webkit2_41"

Tests

# Backend tests
go test ./app/... -v

# Frontend tests
cd frontend && npx vitest run

# Type checking
cd frontend && npx tsc --noEmit

Docker

docker build -t linesolv .
docker run linesolv

License

MIT — LineSolv (c) 2026 rkriad585.

Security

See SECURITY.md for reporting vulnerabilities.

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines, CODE_OF_CONDUCT.md for community standards, and ACCESSIBILITY.md for accessibility information.