AirStrings

by symbionix-sl

Not rated
GitHub

About

Manage AirStrings localization strings and publish signed, over-the-air string bundles from your workspace, with on-device signature verification.

Details

Author
symbionix-sl
Categories
Developer Tools

Setup

Install AirStrings in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/symbionix-sl/airstrings-cli

Follow the installation instructions in the repository README, then restart your MCP client.

Command-line interface forAirStrings— manage strings, locales, bundles, and publishing from the terminal.

npm install -g @airstrings/cli airstrings <command>

Requires Node 18+. Installsairstringsandairstrings-mcp.

brew install symbionix-sl/airstrings/airstrings
go install github.com/symbionix-sl/airstrings-cli/cmd/airstrings@latest
git clone git@github.com:symbionix-sl/airstrings-cli.git cd airstrings-cli go build -o airstrings ./cmd/airstrings

Initialize a workspace in your project directory:

cd my-project airstrings init ask_live_xxxxxxxxxxxx

This validates the key, auto-detects your project and environments, and stores everything in.airstrings/config.json. Each project has its own workspace — no shared global config.

airstrings env # list environments (✓ = active) airstrings env use staging # switch to staging airstrings env add <api-key> # add credentials for another environment airstrings env rm staging # remove environment credentials airstrings -e -u staging # shorthand for env use airstrings status # show current project, env, and key
airstrings project # Show project info airstrings env # List environments airstrings env use staging # Switch active environment airstrings env create staging # Create a new environment airstrings locales # List locales with string counts

strings setandstrings rmare local-first: they edit the workspace CSVs and never call the API unless--pushis given.

airstrings strings list # List all strings (remote) airstrings strings list --locale en --limit 50 # Filter by locale airstrings strings ls --local # List local workspace strings (offline, no credentials) airstrings strings ls --local --section onboarding # List one section, offline airstrings strings get welcome.title # Get a single string (remote) airstrings strings set welcome.title en="Hello" es="Hola" --format text # Write to local CSVs airstrings strings set app.name en="My App" --format text --push # Also upsert to the API airstrings strings rm old.unused.key # Remove from local CSVs airstrings strings rm old.unused.key --push # Also delete from the API airstrings strings rm welcome.title --locale es --push # Remove one locale, locally and remotely
airstrings sections list airstrings sections create onboarding --description "Onboarding flow strings" airstrings sections delete sec_xxxxx
airstrings bundles # List published bundles airstrings publish # Publish all locales airstrings publish en es # Publish specific locales

Ship published bundles inside your app so SDKs can serve strings with no network — cold offline starts, SSG/SSR builds, CI:

This downloads the published, signed bundles for the active environment intoairstrings/bundles/at the workspace root (plus amanifest.jsonprovenance record), verifying every Ed25519 signature before writing. Commit the folder:

git add airstrings/bundles git commit -m "chore: update bundled fallback strings"

SDKs detect the folder automatically and seed from it on startup, re-verifying every bundle before use. Run the pull in CI or as a pre-release step to keep the committed snapshot fresh.

airstrings bundles pull dist/seed # custom output dir (persisted to workspace config) airstrings bundles pull --locale en-US # restrict to one locale

Not the same asairstrings pull:pullfetchesdraftworkspace strings as editable CSVs for the editing workflow, whilebundles pullfetchespublished, signedbundles — immutable delivery artifacts for shipping. The two never share an output location.

airstrings import csv strings.csv # Import strings from CSV airstrings import status imp_xxxxx # Check import progress

The workspace workflow lets you manage strings locally and sync with the API. This is the recommended workflow for AI-assisted string management.

# Initialize workspace airstrings init ask_live_xxxxxxxxxxxx # Add strings locally (no API calls) airstrings strings set onboarding.welcome en="Welcome!" it="Benvenuto!" --format text --section onboarding airstrings strings set onboarding.welcome de="Willkommen!" es="¡Bienvenido!" fr="Bienvenue!" --format text --section onboarding airstrings strings set app.tagline en="The best app" it="La migliore app" --format text # List local strings (offline, no credentials) airstrings strings ls --local airstrings strings ls --local --section onboarding # Edit and remove airstrings strings set onboarding.welcome en="Welcome to the app!" --format text --section onboarding airstrings strings rm old.key --section onboarding # Sync a single key immediately while editing airstrings strings set app.tagline en="The best app" --format text --push # Push everything to AirStrings airstrings push airstrings push --section onboarding # push single section # Pull remote strings to local airstrings pull

Theairstrings initcommand creates a.airstrings/folder in your project root:

.airstrings/ config.json # workspace config (credentials, project, active env) strings.csv # unsectioned strings onboarding/onboarding.csv # section strings settings/settings.csv

Each section gets its own subdirectory with a CSV file. Unsectioned strings live in the rootstrings.csv. All files are plain CSV and can be committed to version control.

AirStrings provides an MCP server so AI assistants like Claude can manage strings directly through structured tool calls.

airstrings mcp install # for Claude Code airstrings mcp install --claude-desktop # for Claude Desktop airstrings mcp status # check installation

That's it. Restart Claude and the tools are available.

You: "Translate my app's onboarding screen into Italian, German, Spanish, and French" Claude uses airstrings_strings_set: key: "onboarding.welcome" values: {"it": "Benvenuto!", "de": "Willkommen!", "es": "¡Bienvenido!", "fr": "Bienvenue!"} section: "onboarding" Claude uses airstrings_strings_set: key: "onboarding.subtitle" values: {"it": "Inizia il tuo viaggio", "de": "Beginne deine Reise", "es": "Comienza tu viaje", "fr": "Commencez votre voyage"} section: "onboarding" Claude uses airstrings_push: section: "onboarding" -> Pushed 2 strings (0 errors) Sections: onboarding

Instead of generating CSV files, the AI calls structured MCP tools -- one call per string. This saves tokens and eliminates CSV formatting errors.

Add--jsonto any command for machine-readable output:

airstrings strings list --json airstrings project --json | jq '.name'

Config is stored per-project in.airstrings/config.json(like.git/config). No global config — each workspace is self-contained with its own credentials and active environment.

airstrings init <api-key> [--url <base-url>] # create workspace and authenticate airstrings env add <api-key> [--url <base-url>] # add environment credentials airstrings env rm <name> # remove environment credentials airstrings env use <name> # switch environment airstrings status # show active context

The workspace is found by walking up the directory tree, so commands work from any subdirectory.

- Go 1.26.1+
- An AirStrings account with an API key

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.