Agent skill

Lokalise Security Basics

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Apply Lokalise security best practices for API tokens and access control.

MITAuto-check: notesBackend & APIs

Install Lokalise Security Basics

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill lokalise-security-basics -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace lokalise-security-basics --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/lokalise-security-basics .claude/skills/lokalise-security-basics && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
lokalise-security-basics
GitHub stars
2.8k
Token cost
~2.4k tokens
SKILL.md length
380 words
Files
1
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Apply Lokalise security best practices for API tokens and access control.

  • Works in 6 steps: Token Scope Management → Validate Translation Content → Webhook Secret Verification → …
  • Securing API tokens
  • SKILL.md covers Overview, Prerequisites, Instructions and Output, plus 4 more sections
  • Calls git; needs LOKALISE_API_TOKEN and LOKALISE_READ_TOKEN

What it does

Lokalise Security Basics is an agent skill from jeremylongshore/tons-of-skills-marketplace. Apply Lokalise security best practices for API tokens and access control. Use when securing API tokens, implementing least privilege access, or auditing Lokalise security configuration. Trigger with phrases like "lokalise security", "lokalise secrets", "secure lokalise", "lokalise API token security".

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code

It sits in Backend & APIs, covering Authorization and RBAC and Translation. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Securing API tokens
  • Implementing least privilege access
  • Auditing Lokalise security configuration
  • With phrases like lokalise security

Example prompts

  • “lokalise security”
  • “lokalise secrets”
  • “secure lokalise”
  • “/lokalise-security-basics”

Requirements

  • A credential in LOKALISE_READ_TOKEN
  • A credential in LOKALISE_WRITE_TOKEN
  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(curl:*), Bash(jq:*), Grep

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Token Scope Management
  2. Validate Translation Content
  3. Webhook Secret Verification
  4. CI/CD Token Security
  5. Scan for Hardcoded Tokens
  6. Audit Translation Changes

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(curl:*)
    • Bash(jq:*)
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.lokalise.com
    • cheatsheetseries.owasp.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • LOKALISE_API_TOKEN
    • LOKALISE_READ_TOKEN
    • WEBHOOK_SECRET
    • LOKALISE_WRITE_TOKEN
    • LOKALISE_ADMIN_TOKEN
    • LOKALISE_WEBHOOK_SECRET

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Lokalise Security Basics loads about 2.4k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 380 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:215
    # Verify .env files are gitignored
  • NoteMentions a .env fileSKILL.md:217
    echo "WARN: .env not in .gitignore — add it immediately"
  • NoteMentions a .env fileSKILL.md:275
    | Token in git history | Committed .env file | Rotate token immediately, use `git filter-repo` to scrub |

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 380 words, ~2,376 tokens.

Download SKILL.mdSave it as .claude/skills/lokalise-security-basics/SKILL.md (or your agent's skills folder).
name
lokalise-security-basics
description
Apply Lokalise security best practices for API tokens and access control. Use when securing API tokens, implementing least privilege access, or auditing Lokalise security configuration. Trigger with phrases like "lokalise security", "lokalise secrets", "secure lokalise", "lokalise API token security".
allowed-tools
Read, Write, Edit, Bash(curl:*), Bash(jq:*), Grep
compatibility
Designed for Claude Code
version
1.14.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, lokalise, api, security, audit

Lokalise Security Basics

Overview

Security practices for Lokalise integrations: API token management with scoped permissions, translation content sanitization, CI/CD secret handling, webhook secret verification, and audit logging. Lokalise handles translation strings that may contain user-facing content, interpolation variables, and occasionally PII embedded in keys or values.

Prerequisites

  • Lokalise API token provisioned (admin token for audit, scoped tokens for operations)
  • Understanding of Lokalise token permission model (read-only vs read-write)
  • Secret management infrastructure (GitHub Secrets, AWS Secrets Manager, GCP Secret Manager, or Vault)

Instructions

Step 1: Token Scope Management

Lokalise API tokens are either read-only or read-write. Create separate tokens per use case to enforce least privilege.

typescript
import { LokaliseApi } from "@lokalise/node-api";

// Token strategy: separate tokens per context
const TOKENS = {
  // CI download pipeline — read-only token
  ciDownload: process.env.LOKALISE_READ_TOKEN,
  // CI upload pipeline — read-write token
  ciUpload: process.env.LOKALISE_WRITE_TOKEN,
  // Admin operations (contributor management, webhooks) — admin token
  admin: process.env.LOKALISE_ADMIN_TOKEN,
} as const;

function getClient(scope: keyof typeof TOKENS): LokaliseApi {
  const token = TOKENS[scope];
  if (!token) {
    throw new Error(
      `LOKALISE_${scope.toUpperCase()}_TOKEN not set. ` +
      `Generate at https://app.lokalise.com/profile#apitokens`
    );
  }
  return new LokaliseApi({ apiKey: token, enableCompression: true });
}

// Download translations — uses read-only token
const readClient = getClient("ciDownload");
const bundle = await readClient.files().download(projectId, {
  format: "json",
  original_filenames: false,
  bundle_structure: "%LANG_ISO%.json",
});
Step 2: Validate Translation Content

Translation strings may contain interpolation variables, HTML, or user-generated content. Validate before rendering.

typescript
interface ValidationIssue {
  key: string;
  severity: "critical" | "warning";
  message: string;
}

function validateTranslation(key: string, value: string): ValidationIssue[] {
  const issues: ValidationIssue[] = [];

  // XSS: Check for script injection in translations
  if (/<script|javascript:|on\w+=/i.test(value)) {
    issues.push({ key, severity: "critical", message: "Potential XSS payload" });
  }

  // Credential leak: Check for secrets in translation values
  if (/(api_key|password|secret|token)\s*[:=]/i.test(value)) {
    issues.push({ key, severity: "critical", message: "Possible credential in value" });
  }

  // Placeholder integrity: Ensure ICU/i18next placeholders are well-formed
  const placeholders = value.match(/\{[^}]+\}|\{\{[^}]+\}\}/g) ?? [];
  for (const p of placeholders) {
    if (/[<>'"]/.test(p)) {
      issues.push({ key, severity: "warning", message: `Suspicious placeholder: ${p}` });
    }
  }

  return issues;
}

// Validate all translations after download
import { readFileSync } from "fs";

function auditTranslationFile(filePath: string): ValidationIssue[] {
  const data: Record<string, string> = JSON.parse(
    readFileSync(filePath, "utf-8")
  );
  return Object.entries(data).flatMap(([key, value]) =>
    validateTranslation(key, value)
  );
}

const issues = auditTranslationFile("./src/locales/de.json");
const critical = issues.filter((i) => i.severity === "critical");
if (critical.length > 0) {
  console.error("CRITICAL security issues found in translations:");
  critical.forEach((i) => console.error(`  ${i.key}: ${i.message}`));
  process.exit(1);
}
Step 3: Webhook Secret Verification

Lokalise sends a random alphanumeric secret in the X-Secret header. Always verify it.

typescript
import express from "express";

const WEBHOOK_SECRET = process.env.LOKALISE_WEBHOOK_SECRET!;

function verifyWebhookSecret(
  req: express.Request,
  res: express.Response,
  next: express.NextFunction
): void {
  const secret = req.headers["x-secret"] as string | undefined;

  if (!secret || secret !== WEBHOOK_SECRET) {
    console.error("Webhook secret verification failed", {
      ip: req.ip,
      path: req.path,
      hasSecret: !!secret,
    });
    res.status(401).json({ error: "Invalid webhook secret" });
    return;
  }
  next();
}
Step 4: CI/CD Token Security
yaml
# GitHub Actions: use repository secrets, never hardcode tokens
name: Sync Translations
on:
  push:
    branches: [main]
    paths: ['src/locales/en.json']

jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Pull translations
        env:
          LOKALISE_API_TOKEN: ${{ secrets.LOKALISE_READ_TOKEN }}
          LOKALISE_PROJECT_ID: ${{ vars.LOKALISE_PROJECT_ID }}
        run: |
          # Token is masked in logs by GitHub Actions
          lokalise2 file download \
            --token "$LOKALISE_API_TOKEN" \
            --project-id "$LOKALISE_PROJECT_ID" \
            --format json \
            --original-filenames=false \
            --bundle-structure "%LANG_ISO%.json" \
            --unzip-to ./src/locales/
Step 5: Scan for Hardcoded Tokens
bash
#!/bin/bash
# scripts/scan-secrets.sh — Run in CI or as pre-commit hook
set -euo pipefail

echo "=== Lokalise Token Security Scan ==="

# Check for hardcoded tokens in source files
HARDCODED=$(grep -rn "X-Api-Token\|apiKey.*['\"][a-f0-9]\{32,\}" \
  --include="*.ts" --include="*.js" --include="*.json" --include="*.yml" \
  src/ .github/ 2>/dev/null \
  | grep -v node_modules \
  | grep -v "process.env\|secrets\.\|vars\.\|\${{" || true)

if [[ -n "$HARDCODED" ]]; then
  echo "FAIL: Potential hardcoded token found:"
  echo "$HARDCODED"
  exit 1
fi

# Verify .env files are gitignored
if ! grep -q "\.env" .gitignore 2>/dev/null; then
  echo "WARN: .env not in .gitignore — add it immediately"
fi

# Check git history for leaked tokens
HISTORY_LEAK=$(git log --all -p --diff-filter=A -- '*.env' '*.env.*' 2>/dev/null \
  | grep -i "LOKALISE_API_TOKEN=" | head -3 || true)

if [[ -n "$HISTORY_LEAK" ]]; then
  echo "CRITICAL: Token found in git history. Rotate immediately."
  echo "  Use 'git filter-repo' to remove, then rotate the token."
  exit 1
fi

echo "PASS: No hardcoded tokens detected"
Step 6: Audit Translation Changes
typescript
interface TranslationAuditEntry {
  timestamp: string;
  projectId: string;
  key: string;
  locale: string;
  userId: string;
  action: "create" | "update" | "delete";
  // Never log actual content — may contain PII
  oldLength: number;
  newLength: number;
}

function logTranslationChange(entry: TranslationAuditEntry): void {
  // Ship to your logging backend (Datadog, CloudWatch, etc.)
  console.log(JSON.stringify({
    level: "info",
    event: "translation_change",
    ...entry,
  }));
}

Output

  • Scoped token configuration with separate read/write/admin tokens
  • Translation content validator catching XSS, credential leaks, and malformed placeholders
  • Webhook secret verification middleware for Express
  • CI/CD workflow using repository secrets with masked output
  • Pre-commit/CI scan script for hardcoded tokens
  • Audit logging for translation changes (PII-safe)
Show full SKILL.md (179 more words)Show less

Error Handling

IssueCauseSolution
Token leaked in CI logsToken in command outputUse env variables; GitHub Actions auto-masks secrets
XSS via translationsUnsanitized translation rendered as HTMLValidate with validateTranslation() before use
Overprivileged accessUsing admin token for read-only operationsCreate scoped tokens per use case
Unauthorized changesNo audit trailRegister webhook for project.translation.updated events
Token in git historyCommitted .env fileRotate token immediately, use git filter-repo to scrub

Examples

Separate CI download access from an administrative repair

Use a read-only token for the CI job that downloads approved translation bundles, and keep the write-capable token out of that workflow. When a translation key needs administrative repair, run the change from a controlled operator session using the admin token, record the project and key identifiers without recording the translated text, then revoke or rotate any token that was exposed. This prevents a build-only credential from gaining contributor or webhook-management authority.

Resources

Next Steps

For enterprise-level access control with SSO and contributor groups, see lokalise-enterprise-rbac.

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/.curated/lokalise-security-basics of jeremylongshore/tons-of-skills-marketplace.

Open the folder on GitHubat commit cfae287

Compare with similar skills

Lokalise Security Basics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Lokalise Security Basics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Lokalise Security Basics this skilljeremylongshore/tons-of-skills-marketplace2.8k—~2.4kAutomated safety check: NotesMIT
Defending Kubernetestrilwu/secskills157—~2.2kAutomated safety check: PassMIT
Implementing Privileged Access Management With Cyberarkmukul975/Anthropic-Cybersecurity-Skills34k—~1.8kAutomated safety check: PassApache-2.0
Cb Security HardeningBlkLeg/CircuitBreaker201—~2.1kAutomated safety check: PassMIT
Supercheck Feature Implementationsupercheck-io/supercheck215—~1.1kAutomated safety check: PassAGPL-3.0
Implementing Device Posture Assessment In Zero Trustmukul975/Anthropic-Cybersecurity-Skills34k—~4.1kAutomated safety check: PassApache-2.0

Similar skills

  • Defending Kubernetes

    trilwu/secskills

    Harden and monitor a Kubernetes cluster against the attacks that actually happen — RBAC least privilege and escalation paths, Pod Security Admission enforcement, network policy default-deny, secrets…

    157 GitHub stars~2.2k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed
  • Implementing Privileged Access Management With Cyberark

    mukul975/Anthropic-Cybersecurity-Skills

    Deploy CyberArk Privileged Access Management to discover, vault, rotate, and monitor privileged credentials across enterprise infrastructure, covering vault architecture, session isolation…

    34k GitHub stars~1.8k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Cb Security Hardening

    BlkLeg/CircuitBreaker

    Enforces Circuit Breaker security hardening conventions across backend, frontend, Docker, and nginx.

    201 GitHub stars~2.1k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Supercheck Feature Implementation

    supercheck-io/supercheck

    Implement a new or changed Supercheck feature end to end across schema, auth/RBAC, services, routes/actions, UI, queues/workers, CLI/recorder, tests, docs, and deployment contracts.

    215 GitHub stars~1.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Implementing Device Posture Assessment In Zero Trust

    mukul975/Anthropic-Cybersecurity-Skills

    Implements device posture assessment as a zero trust access control by integrating endpoint health signals from CrowdStrike ZTA, Microsoft Intune, and Jamf into conditional access policies that…

    34k GitHub stars~4.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Implementing GCP Binary Authorization

    mukul975/Anthropic-Cybersecurity-Skills

    Implements GCP Binary Authorization end to end, including creating KMS-backed attestors, Container Analysis notes, deploy-time policies, and signing image attestations, so that only trusted…

    34k GitHub stars~2k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Lokalise Security Basics

What does Lokalise Security Basics do?

Apply Lokalise security best practices for API tokens and access control. Lokalise Security Basics is an agent skill from jeremylongshore/tons-of-skills-marketplace. Apply Lokalise security best practices for API tokens and access control.

When should I use Lokalise Security Basics?

Lokalise Security Basics fits situations like: securing API tokens; implementing least privilege access; auditing Lokalise security configuration; with phrases like lokalise security.

How do I install Lokalise Security Basics in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill lokalise-security-basics -a claude-code`. Or copy the skill folder (skills/.curated/lokalise-security-basics in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/lokalise-security-basics in your project. Claude Code loads it when a task matches its description.

How do I install Lokalise Security Basics in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill lokalise-security-basics -a codex`. Or copy the skill folder (skills/.curated/lokalise-security-basics in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/lokalise-security-basics in your project. Codex loads it when a task matches its description.

Can I use Lokalise Security Basics in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill lokalise-security-basics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lokalise-security-basics, .gemini/skills/lokalise-security-basics, .github/skills/lokalise-security-basics and .opencode/skills/lokalise-security-basics in your project.

What does Lokalise Security Basics need to run?

Going by SKILL.md and its folder, Lokalise Security Basics needs the command-line tools its instructions call (git) and credentials named LOKALISE_API_TOKEN, LOKALISE_READ_TOKEN, WEBHOOK_SECRET and LOKALISE_WRITE_TOKEN. Our summary lists: A credential in LOKALISE_READ_TOKEN; A credential in LOKALISE_WRITE_TOKEN. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(curl:*), Bash(jq:*), Grep. Compatibility (from SKILL.md): Designed for Claude Code.

Does Lokalise Security Basics access the network?

SKILL.md names 2 domains. As links in the text: developers.lokalise.com and cheatsheetseries.owasp.org. This is read from the text; nothing was executed.

Is Lokalise Security Basics safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Lokalise Security Basics use?

Lokalise Security Basics is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Lokalise Security Basics use?

About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Lokalise Security Basics?

Skills that share tags, products or a category with Lokalise Security Basics: Defending Kubernetes (trilwu/secskills, 157 stars), Implementing Privileged Access Management With Cyberark (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Cb Security Hardening (BlkLeg/CircuitBreaker, 201 stars) and Supercheck Feature Implementation (supercheck-io/supercheck, 215 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Lokalise Security Basics?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.