PolymathPlus Local Setup

The solver stays on the user's computer and is opened through a local web address.

Choose the supported foreground setup or the optional service setup for your desktop operating system.

Run now from a terminal

Launch the PolymathPlus executable whenever you need the solver. Keep the terminal open while you work.
This is the standard, supported way to run PolymathPlus locally.

  1. Download the package for your operating system and extract it to a folder you control.
  2. Open a terminal in that folder and run the executable locally:
    Command Prompt / PowerShell (Windows)
    .\polymathplus.exe
  3. Leave that terminal running, and open the local Solver workbench:

Closing the terminal stops the solver.
If the browser cannot connect, confirm that the terminal still shows a running process and no startup error.

See the troubleshooting and FAQ section for more help.

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:

1. Service accountChoose an account that can run unattended and is easy to maintain, without relying on a personal or frequently changing password.
2. Executable locationInstall in a stable location—not Downloads, Desktop, a temporary folder, or a network share.
3. Log location and retentionConfirm where logs will be written, how many will be retained, and that the selected service account can write to that location.

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 accountLocalSystem — built in; no password required
ExecutableC:\Program Files\PolymathPlus\polymathplus.exe
Application logsC:\Program Files\PolymathPlus\log
Log retention36 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.

  1. Create a stable program directory and copy the executable into it.
  2. Register PolymathPlus as an automatically started LocalSystem service.
  3. Start the service and display its current status.
Elevated PowerShell
$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.

Elevated PowerShell
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 accountCurrent 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 only the checksum command matching your Mac’s processor:

Apple silicon Mac
shasum -a 256 ./polymathplus-osx-arm64.zip
Intel Mac
shasum -a 256 ./polymathplus-osx-x64.zip
Inspect quarantine · Shell (zsh / bash)
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.

Plain-text file · com.polymathplus.engine.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:

Shell (zsh / bash)
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.

Shell (zsh / bash)
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 accountCurrent 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:

Plain-text file · polymathplus.service
[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:

Bash
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.

Bash
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.

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.

Extract package Expand-Archive -LiteralPath '.\polymathplus-win-x64.zip' -DestinationPath 'C:\PolymathPlus'
Verify SHA-256 Get-FileHash .\polymathplus-win-x64.zip -Algorithm SHA256
Run in foreground C:\PolymathPlus\polymathplus.exe
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-osx-arm64.zip -d "$HOME/PolymathPlus"
Extract package (x64) mkdir -p "$HOME/PolymathPlus" && unzip -q ./polymathplus-osx-x64.zip -d "$HOME/PolymathPlus"
Verify SHA-256 shasum -a 256 ./polymathplus-osx-arm64.zip
Verify SHA-256 (x64) shasum -a 256 ./polymathplus-osx-x64.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"
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-linux-x64.tar.gz -C "$HOME/PolymathPlus"
Verify SHA-256 sha256sum ./polymathplus-linux-x64.tar.gz
Grant execute permission chmod +x "$HOME/PolymathPlus/polymathplus"
Run in foreground "$HOME/PolymathPlus/polymathplus"
Query Service Status systemctl --user status polymathplus
Start Service systemctl --user start polymathplus
Stop Service systemctl --user stop polymathplus

Frequently Asked Questions

Below you can find troubleshooting tips and answers to common questions. For any additional queries, concerns, or recommendations, Contact us.

1. What should I do if port 20208 is already in use or I get a port conflict error?

By default, PolymathPlus listens on port 20208. If startup fails due to a port conflict:

  • Check if another instance of polymathplus is 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 the PP_SRVR_PORT=20209 environment variable. Then open your browser at http://127.0.0.1:20209/.
2. How do I resolve the macOS Gatekeeper security warning on initial launch?

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. When using the local desktop engine does it require an internet connection to run?

No. 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. Does the local solver write log files, and if so, where are they located?

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. How are saved workbench programs isolated between users and browsers, and where are they stored?

Saved user programs and workbench states are stored locally in your browser's IndexedDB and are completely isolated per user and browser profile.

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.