Forthwith Docs

Everything your team needs to start translating your app strings with Forthwith.

This guide covers pricing, billing, organization management, invitations, and the CLI workflow. Use the section navigation to move through the docs.

Overview

Getting started

Product

A typical Forthwith rollout has four steps: choose the billing model that fits your translation volume, add a payment method for the organization, invite teammates with the right roles, and run the CLI against your project.

Billing setup

Review your plan, current usage, payment method, recent invoices, and cancellation status.

Organization setup

Invite teammates, assign one or more roles, remove members, and transfer primary ownership when needed.

CLI workflow

The CLI handles login, project configuration, translation execution, status checks, and CI-friendly automation.

Reference

This page is organized for scanning. Jump from the left sidebar to a section, or use the previous and next section cards at the bottom of each section.

Product

Billing

Plans

Forthwith supports pay-as-you-go and subscription billing. The Billing page shows your current plan, usage in the active billing period, a default payment method, recent invoices, and whether cancellation is pending.

Standard

Ongoing

Subscription

$49.00/month

$39.20/month

Founding Beta price

Includes 100,000 words each month, then $0.52/1,000 words for additional usage.

  • 100,000 words included each month
  • $0.52/1,000 words above quota
  • Best for ongoing localization in active products

Launch

Initial full localization

Subscription

$129.00/month

$103.20/month

Founding Beta price

Includes 300,000 words each month, then $0.44/1,000 words for additional usage.

  • 300,000 words included each month
  • $0.44/1,000 words above quota
  • Best for initial full localization and launch periods

Flex

Occasional

Pay as you go

$0.89/1,000 words

$0.71/1,000 words

Founding Beta price

Best for trying Forthwith or running translation work only when you need it.

  • Pay only for the translation usage you run
  • Best for occasional localization work
  • Requires a card on file before translating

Founding Beta Pricing

Founding Beta Pricing is available through June 1, 2026. You keep your beta price while you remain on the same active plan. If you change plans or cancel, you move to current published pricing when you resubscribe. Prices exclude applicable taxes.

How usage is measured

Word usage includes both your source text and the instruction or prompt words sent to the model. The CLI shows the estimated breakdown and asks you to confirm before it submits translations.

Payment method timing

Flex requires a card on file before you translate, but it charges only for actual usage. Standard and Launch start their billing period when you add your payment method.

Usage

Current usage is tracked per billing period. Subscription plans show included words and when overage is active.

Invoices

Recent invoices are listed directly on the Billing page so billing members and owners can reconcile charges quickly.

Cancellation

Flex can be canceled immediately. Standard and Launch stay active until the current billing period ends, and pending cancellation can be undone before then.

Product

Inviting users

Organization

Invitations are managed from the Organization page. Invite a teammate by email, choose one or more roles, and send the invitation. Pending invitations stay visible until they are accepted, expire after 7 days, or are deleted.

Invite flow

  1. 1 Enter the teammate's email address in the invite form.
  2. 2 Choose one or more roles. The developer role is the default.
  3. 3 Send the invitation. Forthwith emails the invite link and shows the pending invitation in the organization settings.

What the page enforces

  • A pending invitation for the same email and organization cannot be created twice.
  • Existing members cannot be invited again.
  • Pending invitations show their assigned roles and expiration date so admins can verify access before acceptance.
  • Owners can delete a pending invitation at any time if the invite was sent to the wrong person or should be reissued.

Product

Organization roles

Access

Forthwith supports three organization roles, and a member can hold more than one at the same time. Roles control billing access, workspace administration, and day-to-day project work.

Owner

Full access to everything

Owners can manage members, billing, settings, API access , and projects. Owners can also transfer primary ownership and close the organization.

Billing

Manage payments and invoices

Billing members can manage payment methods, invoices, subscriptions, and other billing settings without changing workspace ownership.

Developer

Build and deliver projects

Developers handle translation projects and day-to-day delivery work without billing or ownership permissions.

Role combinations

Roles are additive. For example, a teammate can be both Billing and Developer if they need to manage invoices and run localization work, while the primary owner remains responsible for ownership transfer and organization closure.

Product

Ownership and closure

Governance

The primary owner has a small set of responsibilities that ordinary owners do not: transferring primary ownership, closing the organization, and handling situations where the current owner needs to leave the workspace.

Transfer primary ownership

  • Only the current primary owner can transfer primary ownership.
  • You can transfer ownership only to an existing member of the organization.
  • Transfer ownership before removing the current primary owner from the workspace.

Close organization

  • Only the primary owner can close the organization.
  • Closing removes members, pending invitations, and scoped API tokens.
  • Closure is blocked while translations are still processing.
  • If a subscription is still active, the organization can be closed only after the current billing period fully ends.

CLI

Install

Setup

The CLI is the main integration point for repositories. It discovers strings, shows the expected translation work, and writes localized files back into your project.

Select your platform

Install method

brew install Forthwith-LLC/forthwith/forthwith

Choose the installer that matches your machine to get the exact command for your environment.

Supported frameworks currently include Android, iOS, React, React Native, Flutter, Phoenix, and go-i18n.

CLI

Update

Setup

Update the CLI with the same package manager or install path you used during installation.

Select your platform

Install method

brew update
brew upgrade forthwith

Manual download

Download the latest release for your platform from the Releases page , then reinstall it the same way:

  • On macOS, run the newer `.pkg`.

Use the matching update path so package manager metadata and installed binaries stay aligned.

CLI

Uninstall

Setup

If you need to remove the CLI, choose the same platform and package manager or script path you used during installation.

Select your platform

Install method

brew uninstall forthwith
brew untap Forthwith-LLC/forthwith

Use the matching uninstall path so package manager metadata and shell-installed files are removed correctly.

CLI

Quick start

Workflow
forthwith login
forthwith init
forthwith translate
forthwith status
forthwith whoami

That sequence gets you authenticated, creates a project config, runs a translation pass, and lets you confirm coverage and account context.

CLI

Authentication and profiles

Access
  • Use the forthwith login command to authenticate the default profile from the CLI in your browser. To use a specific profile name, add the --profile flag. Recommended
  • To use token-based login, first generate an API token at API access , then use the ( --use-token or --token ) flag to specify the token.
  • FORTHWITH_AUTH_TOKEN overrides stored credentials for commands that need authentication, and should really only be used for CI/CD.
  • List profiles with forthwith profile list , and set the profile you want to use with forthwith profile use .
  • forthwith logout revokes token(s) server-side and removes local credentials.
  • forthwith logout --all revokes all saved profile tokens, then removes all local credentials.

CLI

Project configuration

Config

Create config with forthwith init , then edit it with forthwith config .

version: 1
framework: android
source_language: en
target_languages:
  - es
  - fr
source_paths:
  - app/src/main/res/values/strings.xml
do_not_translate:
  - Forthwith
tone: neutral
politeness: neutral
domain: general
audience: general

Editor selection order for forthwith config is VISUAL , then EDITOR , then the platform fallback ( vim , vi , or notepad.exe on Windows).

CLI

Translation workflow

Translate
  • forthwith translate processes new, changed, and missing target translations by default.
  • --all forces a full re-translation.
  • --target accepts one language or a comma-separated list from target_languages .
  • --file limits the run to one configured source path.
  • --dry-run previews work without writing files.
  • --yes skips confirmation prompts, and --force skips the git safety prompt.
  • Exit codes are 0 for success, 1 for error, and 2 for cancellation.

CLI

Status, account, and automation

Visibility
  • forthwith status summarizes per-language translation coverage and supports --json output.
  • forthwith whoami shows the authenticated email, organization, and plan info, with optional --json output.
  • forthwith completion <shell> generates shell completions for bash , zsh , fish , and powershell

CLI

Environment variables

Runtime

FORTHWITH_AUTH_TOKEN

Overrides the stored auth token.

FORTHWITH_DEBUG

Enables debug output.

VISUAL / EDITOR

Controls which editor opens for `forthwith config`.

XDG_CONFIG_HOME

Influences config and credential directory resolution where the platform supports XDG conventions.

CLI

CI/CD baseline

Automation
export FORTHWITH_AUTH_TOKEN=<token>
forthwith translate --yes --force

A common CI flow is to run translation with a token, then open a pull request only when localized files changed.