Get Started

Installation & Setup

Complete guide to setting up LangCTL for your team, including both the web dashboard and CLI tool.

Prerequisites

Before installing LangCTL, ensure you have:

For Dashboard

  • Modern web browser (Chrome, Firefox, Safari, Edge)
  • Valid email address
  • Internet connection

For CLI

  • Node.js 16 or higher (Download)
  • npm or yarn package manager
  • Terminal/Command line access
  • LangCTL account (for API key)

Verify Node.js Installation

node --version
npm --version
  1. Navigate to app.langctl.com/signup
  2. Fill in registration form:
    • Full Name: Your first and last name
    • Email: Valid email address (you’ll receive confirmation)
    • Password: Minimum 8 characters, include letters and numbers
  3. Click “Sign Up”

[IMAGE: signup-form.png - Registration form with all fields]

ℹ️
Note

Your password must contain at least:

  • 8 characters
  • 1 uppercase letter
  • 1 lowercase letter
  • 1 number

After signing up:

  1. Check your email inbox
  2. Open the verification email from LangCTL
  3. Click the verification link
  4. You’ll be redirected to the app
💡
Tip

Didn’t receive the email? Check your spam folder or click “Resend verification email” on the login page.

After verifying your email and signing in:

  1. You’ll be redirected to the “Create Organization” page
  2. Enter your organization name:
    • Can be your company name, team name, or project name
    • Examples: “Acme Inc”, “My Startup”, “Personal Projects”
  3. Click “Create Organization”

[IMAGE: create-organization.png - Organization creation form]

ℹ️
What is an Organization?

An organization is the top-level container for your projects, team members, and subscription. All your translation projects will belong to this organization.

After creating your organization, you’ll see the main dashboard:

[IMAGE: dashboard-first-view.png - Empty dashboard with tour highlights]

  • Sidebar Navigation: Access projects, team, API keys, settings
  • Quick Actions: Create project, invite team
  • Stats Overview: Projects, team members, keys count
  • Recent Activity: Latest changes and updates
  1. Click on your organization name (top-right)
  2. Select “Organization Settings”
  3. Configure:
    • Organization name
    • Subscription plan
    • Billing information (for paid plans)
npm install -g langctl

The -g flag installs langctl globally, making it available from any directory.

yarn global add langctl

Run without installing:

npx langctl --version
💡
Tip

Use npx langctl if you want to try the CLI without installing it globally, or if you need to use a specific version.

langctl --version
langctl --help

If you see the version number, installation was successful!

If you get command not found: langctl after npm install:

  1. Check npm global bin path:

    npm config get prefix
  2. Add to PATH (macOS/Linux):

    export PATH="$PATH:$(npm config get prefix)/bin"
  3. Reload shell:

    source ~/.zshrc  # or ~/.bashrc

If you get permission errors:

npx langctl

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
npm install -g langctl

On Windows, ensure Node.js bin directory is in PATH:

  1. Open System Properties -> Environment Variables

  2. Edit PATH variable

  3. Add: %APPDATA%\\npm

  4. Restart terminal

  5. Log in to app.langctl.com

  6. Navigate to Organization -> API Keys

  7. Click ”+ Create API Key”

  8. Enter a descriptive name:

    • Examples: “My Laptop”, “CI/CD”, “Development”
  9. Click “Create”

  10. Copy the API key immediately (it’s shown only once!)

[IMAGE: api-key-creation.png - API key creation modal] [IMAGE: api-key-display.png - API key display with copy button]

🚨
Important: Save Your API Key

The API key is displayed only once for security reasons. If you lose it, you’ll need to create a new one. Store it securely (e.g., in a password manager).

langctl init

[IMAGE: cli-init.png - Terminal showing init process]

langctl auth lc_your_api_key_here

For CI/CD or temporary use:

export LANGCTL_API_KEY=lc_your_api_key_here
langctl projects list  # No authentication needed
langctl org info

If you see your organization info, authentication was successful!

The CLI stores configuration in ~/.langctl/config.json:

~/.langctl/config.json
{
"apiKey": "lc_****...****",
"organizationId": "uuid-here",
"organizationName": "My Company",
"defaultLanguage": "en",
"defaultProject": null
}
langctl config
langctl config set defaultLanguage es

langctl config set defaultProject my-app

To switch between organizations or environments:

export LANGCTL_API_KEY=lc_prod_key_here
langctl export my-app

export LANGCTL_API_KEY=lc_dev_key_here
langctl import my-app test.json

DO:

  • Store API keys in environment variables for CI/CD
  • Use separate API keys for different environments
  • Revoke unused API keys
  • Rotate keys periodically (every 90 days)
  • Use descriptive names to track key usage

DON’T:

  • Commit API keys to version control
  • Share API keys via email or chat
  • Use production keys in development
  • Store keys in plain text files in your repository
.langctl/
langctl.config.json
.env

LANGCTL_API_KEY=lc_your_key_here

export LANGCTL_API_KEY=$(cat .env | grep LANGCTL_API_KEY | cut -d '=' -f2)

Use secrets management:

  • GitHub Actions: Use repository secrets
  • GitLab CI: Use CI/CD variables
  • CircleCI: Use environment variables
  • Jenkins: Use credentials plugin
- name: Export translations
env:
  LANGCTL_API_KEY: ${{ secrets.LANGCTL_API_KEY }}
run: |
  langctl export my-app -l en
  1. Navigate to Organization -> Team
  2. Click ”+ Invite Member”
  3. Enter email address
  4. Select role:
    • Owner: Full access (cannot be changed)
    • Admin: Manage team, projects, translations
    • Member: Edit translations
    • Viewer: Read-only access
  5. Click “Send Invitation”

[IMAGE: invite-member.png - Member invitation modal]

langctl team invite [email protected] --role member
langctl team invite [email protected] --role admin
  1. Team member receives invitation email
  2. Clicks invitation link
  3. Creates account (if new) or signs in
  4. Automatically added to organization
  5. Can access projects based on role

Now that you’re set up, continue with:

If you need to uninstall LangCTL:

npm uninstall -g langctl

yarn global remove langctl
rm -rf ~/.langctl

Delete Dashboard Account

  1. Log in to dashboard
  2. Go to Organization Settings
  3. Scroll to “Danger Zone”
  4. Click “Delete Organization”
  5. Confirm deletion
⚠️
Warning

Deleting your organization will permanently delete all projects, translations, and team member access. This action cannot be undone.