Termforge

Termforge / Support

A little help
getting connected.

Start with your server, its fingerprint, and the credentials you already use. Find help with setup, purchases, connections, and remote files below.

Contact: Email [email protected] for support, feature requests, or private security reports.

Termforge is available on the App Store for iPhone.

Getting started

  1. Choose app access. Download Termforge for free, then start the free 7-day Trial, buy lifetime access immediately, or restore a purchase through Apple. The website cannot start a trial or take payment.
  2. Check access. Use an iPhone with iOS 17 or later and an SSH server you are authorized to access. Confirm the host, SSH port, username, and a supported credential with the server administrator.
  3. Prepare a key if needed. In Keys, generate or import an Ed25519 key. Install its public key on your server using the server's usual authorized-key process. Keep your original private-key backup separately; Termforge does not export private keys.
  4. Add a server. Save the hostname, port, username, and password/key method. Select an imported or generated key for key authentication. Do not place secrets in profile labels, startup commands, or snippets.
  5. Inspect its identity. Independently obtain the server's SHA-256 host fingerprint from its administrator or a trusted console. Compare it with Termforge's inspection before approving trust and connecting.
  6. Open a terminal. Authenticate through the native prompt. Run a harmless remote command, then assign the server to a workspace and split panes if useful.
  7. Open files. Browse SFTP using the connected session. Try a small harmless text file before transferring or editing important content.

A server-side tool such as tmux can preserve remote processes between connections. Termforge itself closes sessions on background or idle lock.

Trial & purchases

Termforge is free to download, with an explicitly started seven-day full-feature trial and a €14.99 one-time lifetime unlock. No subscription or automatic charge. €14.99 is the euro price; Apple's localized pricing applies elsewhere. The Apple purchase sheet shows your applicable price before you confirm.

Start, buy or restore

Open Welcome, Access or Settings. Start 7-day Trial acquires Apple's free non-consumable product; only a verified completion starts the original 168-hour period. Settings shows the precise expiration date/time in the device's time zone. Buy Lifetime is available immediately; the app shows StoreKit's localized price and the Apple purchase sheet supplies the applicable price. Missing product information shows unavailable rather than a guessed price.

Use Restore Purchases explicitly with the original App Store account. Apple may request authentication. Restoring on the same account, reinstalling or using a new device recovers the original trial or lifetime purchase; it does not reset seven days. Cross-account recovery and Family Sharing are not promised. If nothing restores, check the account used for the original acquisition.

Canceled, pending or unavailable

A canceled purchase does not start a trial or change existing access. Pending Apple approval also leaves existing access intact; a later verified transaction updates access automatically while the app is running. For missing products, store/network errors or failed verification, connect to the internet, retry and then restore if needed. Avoid assuming payment completed based only on a spinner or approval request.

Expiration and interrupted work

At trial expiry all active and new remote work stops: SSH/reconnects, command-running snippets, SFTP operations/transfers, forwarding and jump-host routes. A short warning appears before the boundary. Transfers may be partial; inspect remote files before deliberately retrying. Closing SSH does not guarantee remote processes stop. Saved hosts, keys, settings and local drafts remain, with safe local recovery, copy/export, deletion, support and purchase/restore available under the same authentication policy.

Offline access and device time

Locally available verified lifetime ownership works offline; product-price loading failure alone does not remove it. A verified trial still expires offline. With no verifiable state after a fresh install, connect and restore rather than expecting a new trial. For a backward-clock warning, enable automatic date and time in iOS Settings, correct the clock, then retry. If the warning persists, Restore Purchases while online to recheck Apple transaction state and recover clock state. This proportionate safeguard is not perfect protection against device tampering.

Refunded or revoked purchases

Apple refunds or revocations remove lifetime access when StoreKit reports them; a separately valid trial can still apply. Use the original account and restore online to reconcile ownership. Apple handles applicable refunds under its terms and consumer rights; this guide makes no refund guarantee or perpetual OS-support promise.

For purchase help, provide only the app/build, iPhone/iOS version, redacted error code, whether the action was start/buy/restore, and reproduction steps. Never send Apple credentials, payment information, receipts containing personal data, passwords or private keys. Send purchase questions to [email protected].

Connection failures

Check spelling, port, username, and network reachability. A timeout can mean a firewall, private network, or unavailable host; “connection refused” can mean nothing is listening on that port. Ask the server administrator to confirm SSH is enabled and that your account may connect.

Test from a trusted client on a comparable network if possible. A private host may require its usual VPN or bastion access. Termforge's bastion route supports one password-authenticated hop; chained and key-authenticated bastions are unavailable.

After network loss, inspect the connection state before retrying. Authentication and host-trust failures require your action. Do not repeatedly change security settings just to make a connection succeed.

Passwords & SSH keys

Confirm the username and that the selected public key is authorized on the server. Only password and Ed25519 authentication are currently supported. Keyboard-interactive/MFA, RSA/ECDSA private keys, and remembered passphrases are unavailable.

Use the native Files picker to import a supported OpenSSH Ed25519 private key, then provide its passphrase when prompted. Imports accept a single key in a bounded file; malformed, unsupported, or oversized keys are rejected. Never paste a private key into a report or terminal snippet.

Stored credentials require an iPhone passcode. If device authentication is canceled or a key is unavailable, retry only after checking the intended key and protection settings. A removed passcode, changed biometric enrollment under a strict policy, new device, or reinstallation can make a credential unavailable. Use explicit reassociation or re-import; the app does not silently use a different credential.

Older encrypted imports may need re-importing to preserve their original encrypted envelope. Generated keys use Keychain protection and cannot be exported privately or assigned generated-key passphrase encryption.

Host-key warnings

Stop and independently verify an unexpected change. Contact the host's administrator through a trusted channel or inspect its fingerprint through a trusted server console. A changed key can be a legitimate rebuild or a sign of interception.

Termforge blocks a changed known host key. Do not blindly accept a replacement, remove trust merely to suppress the warning, or disable verification. Only after confirming the new fingerprint should you deliberately remove the old record in Known Hosts, inspect again, and approve the verified identity. For a bastion route, verify both the bastion and destination.

Disconnects & workspaces

Backgrounding and idle lock intentionally close SSH connections, transfers, and forwards. Unlock when you return and reconnect. A temporary system prompt is different from sending the app to the background; check the connection state when you return.

A restored workspace contains layout and assignments, not a live connection or saved transcript. Check each pane's state. Reconnect creates a new shell; unsent input, snippets, startup commands, and editor writes are not automatically replayed. Do not assume a canceled or interrupted remote command was undone.

For composed characters that do not enter correctly through the terminal keyboard, use the Unicode text composer. Include the input path and a harmless example in a bug report.

Files, transfers & editing

Confirm that SFTP is enabled and your remote account can read or write the directory. Check remote ownership, permissions, available space, and whether the destination already exists. Do not grant broader permissions blindly.

Use the Files picker for local uploads and Save to Files for downloads. Provider access or an expired selection may require selecting the file again. Transfers are limited to 256 MiB; canceled or interrupted work is incomplete and requires an explicit retry. Check the completed file before relying on it.

The editor accepts UTF-8 text up to 2 MiB. Binary or larger content is rejected. Back up important files on the server first. If another process changes a file, reload or deliberately resolve the conflict before saving. Termforge's checks do not guarantee atomic changes on every server.

Bug & feature reports

Support email: [email protected]

For a bug, describe:

  • App version/build and whether it came from TestFlight or a public release.
  • iPhone model and iOS version; find these in Settings → General → About.
  • Expected behavior, actual behavior, and short reproduction steps.
  • Whether it happens on Wi-Fi/cellular, after backgrounding, or with one particular server; omit identifying addresses.
  • Redacted screenshots or allowlisted error text, if useful.

Find the installed app version under iOS Settings → General → iPhone Storage → Termforge; for a beta, TestFlight also shows version/build details. Feature requests should describe the task you want to accomplish and what currently gets in the way.

Do not send passwords, private keys, passphrases, unredacted terminal output, full configuration exports, or personal files. Review snippets, usernames, hostnames, file paths, and screenshots before sharing.

Sensitive security reports

Private security contact: [email protected]

Keep security vulnerabilities and credential exposures out of a public issue tracker. Send a minimal redacted description and harmless reproduction steps to the email above. Do not include working credentials or exploit someone else's system. No guaranteed response time is offered.

For data-handling details, read the privacy policy.