Skip to main content
ClaudeWave

AirStrings CLI + MCP server: manage app strings and publish signed over-the-air string bundles.

MCP ServersRegistry oficial0 estrellas0 forks● GoMITActualizado today
ClaudeWave Trust Score
95/100
✓ Verified
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Last scanned: 10/7/2026
Install in Claude Code / Claude Desktop
Method: Manual · airstrings-cli
Claude Code CLI
git clone https://github.com/symbionix-sl/airstrings-cli
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "airstrings-cli": {
      "command": "airstrings-cli"
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Install the binary first: go install github.com/symbionix-sl/airstrings-cli@latest (make sure it ends up on your PATH).
Casos de uso

Resumen de MCP Servers

# airstrings

CLI and MCP server for [AirStrings](https://airstrings.com): over-the-air string updates for iOS, Android, web and React Native apps, and Go backends.

Manage strings and locales from the terminal or let an AI agent do it over MCP. `airstrings publish` has AirStrings sign the bundle (Ed25519) and push it to the CDN; the SDKs verify the signature before showing anything.

```bash
npm install -g @airstrings/cli        # or: brew install symbionix-sl/airstrings/airstrings
airstrings mcp install                # register the MCP server with Claude Code
```

Listed in the [MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.symbionix-sl/airstrings-cli`.

## Install

### npm (any platform)

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

Requires Node 18+. Installs `airstrings` and `airstrings-mcp`.

### Homebrew (macOS / Linux)

```bash
brew install symbionix-sl/airstrings/airstrings
```

### From source

```bash
go install github.com/symbionix-sl/airstrings-cli/cmd/airstrings@latest
```

### Build locally

```bash
git clone git@github.com:symbionix-sl/airstrings-cli.git
cd airstrings-cli
go build -o airstrings ./cmd/airstrings
```

## Setup

Initialize a workspace in your project directory:

```bash
cd my-project
airstrings init
```

With no key, `init` opens the browser to log in (an owner of your organization approves), stores an org key in `~/.config/airstrings/credentials.json`, creates a project named after the folder and writes `.airstrings/config.json`. Use `--name <name>` to name it, or `--project <id>` to bind an existing project. Without a terminal it waits up to 90 s for the approval; if it times out (or with `--no-browser`/CI) it exits 9 with the URL — re-run the same command after approving.

Already have a project key (`as_proj_…`, from the dashboard's API keys page)? `airstrings init <project-key>` binds the folder to that project. One project key covers every environment.

Staging is the active environment after `init`. Production is **protected** by default: it rejects direct writes and publishing, and changes reach it only by promotion — a human in the dashboard, or `airstrings promote --to production` with a full-power org key. `airstrings sdk-config --env production` gives an agent everything the SDK needs for production.

### Keys

| Key | Prefix | Covers | Get it |
|---|---|---|---|
| Org key | `as_org_` | every project of the org | `airstrings login` |
| Project key | `as_proj_` | every environment of one project | dashboard → API keys |
| Legacy environment key | 64 hex | one environment | created before 0.18 |

Precedence: `AIRSTRINGS_ORG_API_KEY` > `AIRSTRINGS_API_KEY` > workspace key > stored login. In CI prefer a project key in `AIRSTRINGS_API_KEY`. For CI across several projects use `AIRSTRINGS_ORG_API_KEY` with a gated (non-full-power) org key created in the dashboard.

```bash
airstrings login                    # log in again (revokes the previous org key)
airstrings logout                   # revoke and forget the stored org key
airstrings project ls               # projects of the org (org key)
airstrings --project <id> status    # run against another project (org key)
airstrings apikey ls                # the project's keys
airstrings apikey rotate            # rotate the workspace key
```

### Environments

```bash
airstrings env                      # every environment: protected/open, key in workspace or not
airstrings env use staging          # switch to staging
airstrings env add <api-key>        # add a legacy environment key (deprecated)
airstrings env rm staging           # remove environment credentials
airstrings -e -u staging            # shorthand for env use
airstrings status                   # project, env, key scope, protection + next step
```

### SDK configuration

```bash
airstrings sdk-config                     # production (default) IDs, public key, SDK snippets
airstrings sdk-config --env staging       # another environment
airstrings sdk-config --env production --json
```

Prints the organization, project and environment IDs, the environment's Ed25519 public key(s), and a ready-to-paste initializer for the Web, React Native, iOS, Android and Go SDKs. Every value is public, not a secret — safe to show, commit and embed in app code — so any API key of the project works — a staging key prints production's config.

## Usage

```
airstrings <command> [options]
```

### Project & Environments

```bash
airstrings project                  # Show project info
airstrings env                      # List environments with protection and key state
airstrings env use staging          # Switch active environment
airstrings env create staging       # Create a new environment
airstrings locales                  # List locales with string counts
```

### Strings

`strings set` and `strings rm` are local-first: they edit the workspace CSVs and never call the API unless `--push` is given.

```bash
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
```

### Sections

```bash
airstrings sections list
airstrings sections create onboarding --description "Onboarding flow strings"
airstrings sections delete sec_xxxxx
```

### Bundles & Publishing

```bash
airstrings bundles                  # List published bundles
airstrings publish                  # Publish all locales
airstrings publish en es            # Publish specific locales
airstrings promote preview          # Diff staging → production; prints the dashboard link where a human applies it
```

Publishing to a protected environment exits with code 7 and tells you the next step: publish to staging, then ask a human to promote at the printed link.

### Offline-safe builds

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

```bash
airstrings bundles pull
```

This downloads the published, signed bundles for the active environment into `airstrings/bundles/` at the workspace root (plus a `manifest.json` provenance record), verifying every Ed25519 signature before writing. Commit the folder:

```bash
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.

```bash
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 as `airstrings pull`: `pull` fetches **draft** workspace strings as editable CSVs for the editing workflow, while `bundles pull` fetches **published, signed** bundles — immutable delivery artifacts for shipping. The two never share an output location.

### Import

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

### Workspace

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

```bash
# Initialize workspace with the staging write key from onboarding
airstrings init <staging-write-key>

# 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
```

The `airstrings init` command 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 root `strings.csv`. All files are plain CSV and can be committed to version control.

### MCP Server

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

```bash
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.

#### Example: AI-assisted localization

```
You: "Translate my app's onboarding screen into Italian, German, Spanish, and French"

Cl
ai-agentsclideveloper-toolsed25519gogolangi18nlocalizationmcpmcp-servermodel-context-protocolota-updatesover-the-airremote-strings

Lo que la gente pregunta sobre airstrings-cli

¿Qué es symbionix-sl/airstrings-cli?

+

symbionix-sl/airstrings-cli es mcp servers para el ecosistema de Claude AI. AirStrings CLI + MCP server: manage app strings and publish signed over-the-air string bundles. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-06.

¿Cómo se instala airstrings-cli?

+

Puedes instalar airstrings-cli clonando el repositorio (https://github.com/symbionix-sl/airstrings-cli) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar symbionix-sl/airstrings-cli?

+

Nuestro agente de seguridad ha analizado symbionix-sl/airstrings-cli y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene symbionix-sl/airstrings-cli?

+

symbionix-sl/airstrings-cli es mantenido por symbionix-sl. La última actividad registrada en GitHub es del 2026-10-06, con 1 issues abiertos.

¿Hay alternativas a airstrings-cli?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega airstrings-cli en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: symbionix-sl/airstrings-cli
[![Featured on ClaudeWave](https://claudewave.com/api/badge/symbionix-sl-airstrings-cli)](https://claudewave.com/repo/symbionix-sl-airstrings-cli)
<a href="https://claudewave.com/repo/symbionix-sl-airstrings-cli"><img src="https://claudewave.com/api/badge/symbionix-sl-airstrings-cli" alt="Featured on ClaudeWave: symbionix-sl/airstrings-cli" width="320" height="64" /></a>

Más MCP Servers

Alternativas a airstrings-cli