Xtranslate

Security checks across static analysis, malware telemetry, and agentic risk

Overview

Xtranslate mostly matches a document-translation tool, but its API-key storage is weakly protected and its safety claims should be reviewed before use.

Before installing, avoid the saved API-key feature unless it is fixed; use environment variables or an OS keychain instead. Use local translation for confidential files, choose narrow folders for batch mode, and periodically delete translation_monitor.json if paths are sensitive.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

API keys saved through the tool may not be strongly protected and could be reused for paid provider access if local files are exposed.

Why it was flagged

The credential-encryption helper derives its key from a hard-coded password and salt and accepts plaintext values for compatibility. In the context of the documented/GUI API-key save feature, saved provider keys would be reversible by anyone who can access the stored ciphertext and this code.

Skill content
def __init__(self, password="Xtranslate_Secret_Key"): ... salt = b'xtranslate_salt' ... if not encrypted_text or not encrypted_text.startswith("gAAAA"): return encrypted_text
Recommendation

Prefer environment variables or an OS keychain for API keys. If local key storage remains, use a per-user secret, disclose the storage path, and provide clear key deletion and rotation guidance.

What this means

A user may trust the saved-key feature more than they should and store valuable API credentials in a weakly protected local form.

Why it was flagged

This claim overstates the protection shown in the provided implementation, which uses a fixed code-known encryption secret rather than a user- or OS-protected secret.

Skill content
✅ **API加密** - API Key加密存储,确保安全 / **API Encryption** - Encrypt API Key storage to ensure security
Recommendation

Reword the documentation to accurately describe the protection level, or replace the implementation with secure credential storage before encouraging users to save keys.

What this means

Confidential document contents may leave the local machine during cloud translation.

Why it was flagged

The skill supports cloud translation through third-party provider endpoints, and translated document text may be sent to those providers when cloud mode is selected.

Skill content
CLOUD_MODEL_GPT4O_BASE_URL=https://api.openai.com/v1 ... CLOUD_MODEL_CLAUDE_BASE_URL=https://api.anthropic.com/v1 ... CLOUD_MODEL_CUSTOM_ENV_KEY=CUSTOM_API_KEY
Recommendation

Use the local Ollama engine for sensitive documents, or confirm the chosen provider's data-retention and privacy terms before using cloud mode.

What this means

Local history files may reveal which documents were translated and where they are stored.

Why it was flagged

The monitor persists translation history to a local JSON file, including file paths, engine choices, language targets, timings, and errors.

Skill content
"file_path": str(file_path), "engine": engine, "target_lang": target_lang ... self.records.append(record); self.save_records()
Recommendation

Document the log location, offer a cleanup option, and avoid running the skill from shared directories when filenames or paths are sensitive.

What this means

If the user points the tool at a large or sensitive folder, many documents could be read, translated, logged, and potentially sent to a cloud provider.

Why it was flagged

Batch mode recursively collects all supported files under a selected directory. This is purpose-aligned, but a broad directory selection could process more private files than intended.

Skill content
elif os.path.isdir(target_path):
    for root, dirs, filenames in os.walk(target_path): ... files.append(os.path.join(root, filename))
Recommendation

Use narrowly scoped folders, preview the file list before translation, and prefer explicit confirmation for large batch runs.

What this means

The installed dependency set may vary over time, which can affect reliability and supply-chain exposure.

Why it was flagged

Dependencies are listed without version pins or hashes, and the metadata provides no install specification. Manual installation could pull changing package versions from package indexes.

Skill content
python-docx
pdf2docx
openai
jieba
cryptography
customtkinter
ollama
translate
openpyxl
python-pptx
striprtf
Recommendation

Install in a virtual environment, pin dependency versions, and prefer reviewed lockfiles or hashes before production use.