From lokalise-pack
Installs Lokalise Node.js SDK/CLI and configures API token auth for translation management. Covers npm install, CLI binary setup, token generation, env vars, and connection tests.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin lokalise-packThis skill is limited to using the following tools:
Set up Lokalise SDK/CLI and configure API token authentication for translation management. Covers the Node.js SDK (`@lokalise/node-api` v12+), the CLI (`lokalise2`), and OAuth2 for Lokalise apps.
Configures Lokalise for dev, staging, prod environments via separate projects or branching, with Node.js SDK, env-specific secrets, and translation promotion workflows.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Set up Lokalise SDK/CLI and configure API token authentication for translation management. Covers the Node.js SDK (@lokalise/node-api v12+), the CLI (lokalise2), and OAuth2 for Lokalise apps.
set -euo pipefail
# SDK v9+ is ESM-only — requires "type": "module" in package.json or .mjs files
npm install @lokalise/node-api
# For CommonJS projects that cannot migrate to ESM, pin to v8
npm install @lokalise/node-api@8
set -euo pipefail
# macOS via Homebrew
brew tap lokalise/cli-2
brew install lokalise2
# Linux — download latest release binary
LATEST_CLI=$(curl -s https://api.github.com/repos/lokalise/lokalise-cli-2-go/releases/latest \
| grep -oP '"tag_name": "\K[^"]+')
curl -sL "https://github.com/lokalise/lokalise-cli-2-go/releases/download/${LATEST_CLI}/lokalise2_linux_x86_64.tar.gz" | tar xz
sudo mv lokalise2 /usr/local/bin/
# Verify installation
lokalise2 --version
# Set environment variable (recommended)
export LOKALISE_API_TOKEN="your-api-token"
# Or create .env file for local development
echo 'LOKALISE_API_TOKEN=your-api-token' >> .env
# CLI configuration — creates ~/.lokalise2/config.yml
lokalise2 --token "$LOKALISE_API_TOKEN" project list
import { LokaliseApi } from "@lokalise/node-api";
const lokaliseApi = new LokaliseApi({
apiKey: process.env.LOKALISE_API_TOKEN!,
enableCompression: true, // Gzip responses for faster transfers
});
// Test connection by listing projects
const projects = await lokaliseApi.projects().list({ limit: 10 });
console.log(`Connected! Found ${projects.items.length} projects.`);
for (const p of projects.items) {
console.log(` ${p.project_id}: ${p.name}`);
}
import { LokaliseApiOAuth } from "@lokalise/node-api";
// Use token obtained via OAuth2 flow
// OAuth scopes: read_projects, write_projects, read_keys, write_keys, etc.
const lokaliseApi = new LokaliseApiOAuth({
apiKey: oauthAccessToken,
});
// All SDK methods work identically with OAuth tokens
const projects = await lokaliseApi.projects().list({ limit: 10 });
OAuth2 is required when building Lokalise marketplace apps that act on behalf of users. Standard API tokens are sufficient for internal integrations.
@lokalise/node-api package (ESM v9+ or CJS v8)lokalise2 CLI installed and verified| Error | Cause | Solution |
|---|---|---|
401 Unauthorized | Invalid or expired token | Generate new token at Profile Settings > API Tokens |
403 Forbidden | Token lacks required scope | Use read-write token, or check OAuth scopes |
ERR_REQUIRE_ESM | Using require() with SDK v9+ | Use ESM import or downgrade to @lokalise/node-api@8 |
ENOTFOUND api.lokalise.com | Network blocked | Check firewall allows outbound HTTPS to api.lokalise.com |
Cannot find module | SDK not installed | Run npm install @lokalise/node-api |
// src/lib/lokalise.ts
import { LokaliseApi } from "@lokalise/node-api";
export function createClient(apiKey?: string): LokaliseApi {
const key = apiKey ?? process.env.LOKALISE_API_TOKEN;
if (!key) throw new Error("Set LOKALISE_API_TOKEN or pass apiKey");
return new LokaliseApi({ apiKey: key, enableCompression: true });
}
# ~/.lokalise2/config.yml
token: "your-api-token"
project_id: "123456789.abcdef"
set -euo pipefail
# Check which projects the token can access
curl -s -H "X-Api-Token: $LOKALISE_API_TOKEN" \
"https://api.lokalise.com/api2/projects?limit=5" \
| jq '.projects[] | {project_id, name}'
After successful auth, proceed to lokalise-hello-world for your first API call.