Quick setup steps
Launch the PolymathPlus solver executable from the terminal and keep the terminal window open while you work. The solver user-interface is accessed via a web-browser local URL.
- Download and extract the package to a folder of your choice, then open a terminal there.
First time only — unblock the file:PowerShell
Unblock-File -Path .\polymathplus.exe
- Launch the solver executable:
PowerShell
./polymathplus.exe
Tip: Pass--uito auto-launch the browser UI and skip step 3. - Leave that terminal running and open the web UI (or press W in the terminal):
That's it - you're all set. Closing the terminal will stop the solver.
Tips, Troubleshooting, and Frequently Asked Questions
Below you can find troubleshooting tips and answers to common questions.
1. What should I do if PolymathPlus fails to start because port 20208 is already in use?
By default, PolymathPlus listens on port 20208. If startup fails due to a port conflict:
- Check if another instance of
polymathplusis already running on your computer and close it. - If another application occupies port
20208, pass a custom port as a command-line argument (e.g..\polymathplus.exe 20209) or set thePP_SRVR_PORT=20209environment variable. Then open your browser athttp://127.0.0.1:20209/.
2. Why does macOS block PolymathPlus on first launch, and how do I allow it?
When executing the macOS binary for the first time, Apple Gatekeeper may show an "untrusted developer" warning because the binary was downloaded from the web:
- Open Terminal in the extracted folder and clear the quarantine flag:
xattr -d com.apple.quarantine ./polymathplus - Alternatively, go to System Settings → Privacy &
Security, scroll to the Security section, and click "Allow Anyway" next to
polymathplus.
3. Can I use PolymathPlus completely offline without an internet connection?
Yes. PolymathPlus runs completely offline on your local computer. It does not require an internet connection to operate, and it does not send any data to external servers.
4. Where can I find the solver log files if I need to troubleshoot or check activity?
By default, PolymathPlus writes log files to a log directory beside the executable, and the
newest 36 rotated log files are retained. You may override these defaults by changing the
PP_SRVR_LOG_DIR and PP_RETAIN_LOG_COUNT environment variables.
5. Where are my saved math programs stored, and are they kept private to my browser?
Saved user programs and workbench states are stored locally in your browser's IndexedDB and are completely isolated per user and browser profile.
6. Can I launch PolymathPlus from any terminal folder without typing the full file path?
Yes! You can define a short command or alias in your shell startup profile so you can type
polymathplus from any folder:
-
Windows (PowerShell): Append a function shortcut to your PowerShell profile:
Add-Content $PROFILE 'function polymathplus { C:\PolymathPlus\polymathplus.exe }' -
macOS / Linux (zsh / bash): Add an alias to your shell configuration file
(
~/.zshrcor~/.bashrc):alias polymathplus="$HOME/PolymathPlus/polymathplus"
7. Can I run the solver UI in its own window just like a desktop app?
Yes! The solver workbench (http://127.0.0.1:20208/) can be installed as a Progressive Web App
(PWA) with its own dedicated window, taskbar icon, and app switcher presence:
-
Chrome, Microsoft Edge, or Brave: Open
http://127.0.0.1:20208/and click the Install icon in the address bar (or choose Browser Menu → Install PolymathPlus). -
Safari (macOS): Open
http://127.0.0.1:20208/and choose File → Add to Dock. - Firefox: Desktop Firefox does not natively support PWA installation; use Chrome, Edge, or Safari if you want a standalone window.
Note: The desktop app shortcut launches the UI workbench window, which connects to the local solver engine. Ensure the executable is running in a terminal or configured as a background service before opening the shortcut.
For any additional queries or inputs, registered online users may contact us from the PolymathPlus website.
Terminal command reference
Select your operating system for common commands used to extract the package, verify its checksum, run PolymathPlus, and inspect an optional service installation.
| Unblock file (1st run) | Unblock-File -Path .\polymathplus.exe |
|---|---|
| Extract package | Expand-Archive -Path '.\polymathplus*.zip' -DestinationPath 'C:\PolymathPlus'
|
| Verify SHA-256 | Get-FileHash .\polymathplus*.zip -Algorithm SHA256 |
| Run in foreground | C:\PolymathPlus\polymathplus.exe |
| Run & launch browser | C:\PolymathPlus\polymathplus.exe --ui |
| Command help & flags | C:\PolymathPlus\polymathplus.exe --help |
| Query Service Status | sc.exe query PolymathPlusEngine |
| Start Service | sc.exe start PolymathPlusEngine |
| Stop Service | sc.exe stop PolymathPlusEngine |
| Extract package |
mkdir -p "$HOME/PolymathPlus" && unzip -q ./polymathplus*.zip -d "$HOME/PolymathPlus"
|
|---|---|
| Verify SHA-256 |
shasum -a 256 ./polymathplus*.zip
|
| Grant execute permission | chmod +x "$HOME/PolymathPlus/polymathplus" |
| If Gatekeeper blocks it | xattr -d com.apple.quarantine "$HOME/PolymathPlus/polymathplus"
|
| Run in foreground | "$HOME/PolymathPlus/polymathplus" |
| Run & launch browser | "$HOME/PolymathPlus/polymathplus" --ui |
| Command help & flags | "$HOME/PolymathPlus/polymathplus" --help |
| Query Service Status | launchctl print "gui/$(id -u)/com.polymathplus.engine" |
| Start Service | launchctl bootstrap "gui/$(id -u)" "$HOME/Library/LaunchAgents/com.polymathplus.engine.plist"
|
| Stop Service | launchctl bootout "gui/$(id -u)" "$HOME/Library/LaunchAgents/com.polymathplus.engine.plist"
|
| Extract package | mkdir -p "$HOME/PolymathPlus" && tar -xzf ./polymathplus*.tar.gz -C "$HOME/PolymathPlus"
|
|---|---|
| Verify SHA-256 | sha256sum ./polymathplus*.tar.gz |
| Grant execute permission | chmod +x "$HOME/PolymathPlus/polymathplus" |
| Run in foreground | "$HOME/PolymathPlus/polymathplus" |
| Run & launch browser | "$HOME/PolymathPlus/polymathplus" --ui |
| Command help & flags | "$HOME/PolymathPlus/polymathplus" --help |
| Query Service Status | systemctl --user status polymathplus |
| Start Service | systemctl --user start polymathplus |
| Stop Service | systemctl --user stop polymathplus |
Optional: run as an OS service
PolymathPlus can run as an OS service, allowing it to start automatically and continue in the background. Service registration and administration remain the responsibility of the user or IT administrator.
Before configuring a service, review these three settings:
Service setup examples
First confirm that foreground mode works on 127.0.0.1:20208. Then select your operating system
below. Read the complete panel before running commands, preserve any existing configuration, and use the
recommended local-only address. These examples deliberately stop rather than overwrite an existing service
definition. If a recipe does not match your computer or fails, return to foreground mode rather than weakening
system security.
This simple personal-computer example uses the built-in LocalSystem account and the
standard PolymathPlus log defaults. LocalSystem requires no username or password, but it has extensive
privileges on the computer. Use this example only on a trusted computer and keep PolymathPlus bound to
127.0.0.1.
| Service account | LocalSystem — built in; no password required |
|---|---|
| Executable | C:\Program Files\PolymathPlus\polymathplus.exe |
| Application logs | C:\Program Files\PolymathPlus\log |
| Log retention | 36 rotated log files by default |
Personal computer: simple Windows service example
Open PowerShell as Administrator from the folder containing
polymathplus.exe. The commands copy the executable into Program Files, register it under the
built-in LocalSystem account, and start it automatically.
No username or password is required. The example stops if PolymathPlusEngine
already exists, preventing an existing service configuration from being overwritten.
- Create a stable program directory and copy the executable into it.
- Register PolymathPlus as an automatically started LocalSystem service.
- Start the service and display its current status.
$ErrorActionPreference = 'Stop'
$service = 'PolymathPlusEngine'
$folder = Join-Path $env:ProgramFiles 'PolymathPlus'
$exe = Join-Path $folder 'polymathplus.exe'
if (Get-Service $service -ErrorAction SilentlyContinue) {
throw "$service is already installed."
}
New-Item -ItemType Directory -Force -Path $folder | Out-Null
Copy-Item -LiteralPath '.\polymathplus.exe' -Destination $exe -Force
$binPath = "`"$exe`""
sc.exe create $service binPath= $binPath start= auto obj= LocalSystem DisplayName= "PolymathPlus Engine"
if ($LASTEXITCODE -ne 0) {
throw 'Windows service registration failed.'
}
Start-Service $service
Get-Service $service
Verify the service
If the Solver workbench opens, the service is accepting requests.
Permanently uninstall the service
Permanently remove the service registration. This stops the service and removes its automatic-start registration.
sc.exe stop PolymathPlusEngine sc.exe delete PolymathPlusEngine
Removing the service registration does not delete
C:\Program Files\PolymathPlus, including the executable and its log folder.
You can still run the executable manually, or delete the directory separately when it is no longer
needed.
For a personal Mac, a per-user LaunchAgent is the simplest service model. These paths keep the executable and application logs inside the current user’s Library.
| Service account | Current signed-in user |
|---|---|
| Executable | ~/Library/Application Support/PolymathPlus/bin/polymathplus |
| Application logs | ~/Library/Logs/PolymathPlus |
Gatekeeper and downloaded files
macOS may quarantine an unsigned executable downloaded from the internet. First verify that the package came from the official source and compare its SHA-256 checksum with the published value. Try Control-click → Open in Finder, or use System Settings → Privacy & Security → Open Anyway when macOS offers it. Run the checksum command to verify your downloaded archive:
shasum -a 256 ./polymathplus*.zip
xattr -p com.apple.quarantine ./polymathplus
Only after verifying the file: if Gatekeeper still blocks this specific
executable, remove quarantine from that file only with
xattr -d com.apple.quarantine ./polymathplus. Do not disable Gatekeeper globally or clear
quarantine recursively from unrelated folders.
Personal computer: per-user LaunchAgent example
This setup starts PolymathPlus when you sign in and runs it as your user. It does not require a machine-wide daemon or dedicated account.
Step 1 — Create the configuration file. In a plain-text editor, create a file named
com.polymathplus.engine.plist in the same folder as polymathplus. If you use
TextEdit, select Format → Make Plain Text before saving. Replace every
YOUR_HOME_DIRECTORY below with your absolute home directory (usually
/Users/yourname; run echo "$HOME" if unsure). Do not use ~ or
$HOME inside the plist.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>com.polymathplus.engine</string>
<key>ProgramArguments</key>
<array>
<string>YOUR_HOME_DIRECTORY/Library/Application Support/PolymathPlus/bin/polymathplus</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>PP_SRVR_LOG_DIR</key><string>YOUR_HOME_DIRECTORY/Library/Logs/PolymathPlus</string>
<key>PP_RETAIN_LOG_COUNT</key><string>36</string>
</dict>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key>
<dict><key>SuccessfulExit</key><false/></dict>
<key>StandardOutPath</key><string>YOUR_HOME_DIRECTORY/Library/Logs/PolymathPlus/stdout.log</string>
<key>StandardErrorPath</key><string>YOUR_HOME_DIRECTORY/Library/Logs/PolymathPlus/stderr.log</string>
</dict>
</plist>
Step 2 — Install and start the LaunchAgent. Save the plist beside
polymathplus, open Terminal in that folder, and run:
set -e APP_DIR="$HOME/Library/Application Support/PolymathPlus" LOG_DIR="$HOME/Library/Logs/PolymathPlus" PLIST="$HOME/Library/LaunchAgents/com.polymathplus.engine.plist" SOURCE_PLIST="./com.polymathplus.engine.plist" if [ -e "$PLIST" ]; then echo "Stop: $PLIST already exists. Review or back it up first." >&2 exit 1 fi if [ ! -f "$SOURCE_PLIST" ]; then echo "Stop: $SOURCE_PLIST was not found in this folder." >&2 exit 1 fi if grep -q 'YOUR_HOME_DIRECTORY' "$SOURCE_PLIST"; then echo "Stop: replace every YOUR_HOME_DIRECTORY placeholder first." >&2 exit 1 fi plutil -lint "$SOURCE_PLIST" mkdir -p "$APP_DIR/bin" "$LOG_DIR" "$HOME/Library/LaunchAgents" cp ./polymathplus "$APP_DIR/bin/polymathplus" chmod 755 "$APP_DIR/bin/polymathplus" install -m 600 "$SOURCE_PLIST" "$PLIST" launchctl bootstrap "gui/$(id -u)" "$PLIST" launchctl kickstart -k "gui/$(id -u)/com.polymathplus.engine"
Verify the service
If the Solver workbench opens, the LaunchAgent is accepting requests.
Permanently uninstall the service
Permanently remove the service registration. This unloads the LaunchAgent and removes its automatic-start plist.
launchctl bootout "gui/$(id -u)" "$HOME/Library/LaunchAgents/com.polymathplus.engine.plist" 2>/dev/null || true rm "$HOME/Library/LaunchAgents/com.polymathplus.engine.plist"
Removing the registration does not delete the PolymathPlus executable or its logs. You can still run it manually, or delete those files separately when they are no longer needed.
A shared Mac or a process that must run before login normally requires an administrator-managed LaunchDaemon. That deployment belongs to the organization’s IT workflow.
For a personal systemd-based Linux computer, a user service avoids a root-owned installation. These locations follow common per-user program and state conventions.
| Service account | Current user |
|---|---|
| Executable | ~/.local/lib/polymathplus/polymathplus |
| Application logs | ~/.local/state/polymathplus/logs |
Personal computer: per-user systemd service
This example is for a Linux distribution using systemd. It needs no root-owned executable or
dedicated system account and normally starts with your user session.
Step 1 — Create the configuration file. In a plain-text editor, create a file named
polymathplus.service in the same folder as polymathplus, with the following
contents:
[Unit] Description=PolymathPlus Local Engine [Service] Type=simple ExecStart=%h/.local/lib/polymathplus/polymathplus Environment=PP_SRVR_LOG_DIR=%h/.local/state/polymathplus/logs Environment=PP_RETAIN_LOG_COUNT=36 Restart=on-failure RestartSec=5 NoNewPrivileges=yes [Install] WantedBy=default.target
Step 2 — Install and start the user service. Save the unit file beside
polymathplus, open Terminal in that folder, and run:
set -e APP_DIR="$HOME/.local/lib/polymathplus" LOG_DIR="$HOME/.local/state/polymathplus/logs" UNIT="$HOME/.config/systemd/user/polymathplus.service" SOURCE_UNIT="./polymathplus.service" if [ -e "$UNIT" ]; then echo "Stop: $UNIT already exists. Review or back it up first." >&2 exit 1 fi if [ ! -f "$SOURCE_UNIT" ]; then echo "Stop: $SOURCE_UNIT was not found in this folder." >&2 exit 1 fi mkdir -p "$APP_DIR" "$LOG_DIR" "$HOME/.config/systemd/user" install -m 755 ./polymathplus "$APP_DIR/polymathplus" systemd-analyze --user verify "$SOURCE_UNIT" install -m 600 "$SOURCE_UNIT" "$UNIT" systemctl --user daemon-reload systemctl --user enable --now polymathplus
Verify the service
If the Solver workbench opens, the user service is accepting requests.
Permanently uninstall the service
Permanently remove the service registration. This stops the service, disables automatic startup, and removes the installed unit file.
systemctl --user disable --now polymathplus rm "$HOME/.config/systemd/user/polymathplus.service" systemctl --user daemon-reload
Removing the registration does not delete the PolymathPlus executable or its logs. You can still run it manually, or delete those files separately when they are no longer needed.
To keep a user service running after logout or start its user manager at boot, an
administrator may enable lingering with sudo loginctl enable-linger "$USER". For shared
machines, use a reviewed system service, dedicated or dynamic identity, and organization-approved
hardening.
Software Disclaimer & Terms of Use
PolymathPlus is proprietary freeware licensed under the PolymathPlus Freeware Binary License in the EULA.txt included with the official download. It is provided “as is” and “as available”. No guarantees are made regarding performance, accuracy, reliability, availability, or suitability for any purpose. Operation may be interrupted, contain defects, or fail to meet a particular requirement. Use of PolymathPlus and its results is at your own risk. Users are responsible for independently checking calculations and for all decisions or actions based on generated output. To the extent permitted by law, PolymathPlus, its developers, distributors, and partners are not liable for direct, indirect, incidental, consequential, or other damages arising from use of—or inability to use—the software, including loss of data, savings, profits, or business continuity.
The service configurations and command blocks in this guide are informational, copy-and-adapt examples—not tested installers or a managed deployment product. They may require changes for the operating-system version, security policy, account configuration, package location, or other conditions on a particular computer, and successful execution is not guaranteed. The computer owner or IT administrator assumes responsibility for reviewing, testing, adapting, executing, troubleshooting, and maintaining the configuration, including accounts, paths, permissions, security controls, logging, startup behavior, upgrades, rollback, and removal.