Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,13 @@
"docs/getting-started/about",
"docs/getting-started/auth",
"docs/getting-started/regional-endpoints",
"docs/getting-started/client-libraries",
{
"group": "Developer Tools",
"pages": [
"docs/getting-started/client-libraries",
"docs/getting-started/deepl-cli"
]
},
"docs/getting-started/managing-api-keys",
"docs/getting-started/your-first-api-request",
"docs/getting-started/test-your-api-requests-with-postman",
Expand Down Expand Up @@ -393,6 +399,10 @@
"source": "/api-reference/client-libraries",
"destination": "/docs/getting-started/client-libraries"
},
{
"source": "/docs/cli",
"destination": "/docs/getting-started/deepl-cli"
},
{
"source": "/docs/resources/release-notes/rss.xml",
"destination": "/docs/resources/roadmap-and-release-notes/rss.xml"
Expand Down
4 changes: 4 additions & 0 deletions docs/getting-started/client-libraries.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ Features include:

All officially supported client libraries are open-source under the MIT License. We welcome feedback in the form of issues and pull requests!

## Command-line interface

For terminal-based workflows, scripting, and CI/CD pipelines, see the [DeepL CLI](/docs/getting-started/deepl-cli).

## Community-created client libraries

The DeepL community [maintains client libraries](https://github.com/DeepLcom/awesome-deepl?tab=readme-ov-file#community-libraries--sdks) for other languages, including [Dart](https://github.com/komape/deepl_dart), [Go](https://github.com/candy12t/go-deepl), [Rust](https://github.com/Avimitin/deepl-rs), and [Kotlin](https://github.com/SimplyMika/DeeplKt).
Expand Down
131 changes: 131 additions & 0 deletions docs/getting-started/deepl-cli.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
---
title: "DeepL CLI"
description: "Install and use the DeepL CLI to translate text, documents, and more from your terminal."
public: true
---

**This page shows you:**
- How to install the DeepL CLI from source
- How to authenticate and run your first translation
- What commands are available for translation, writing, voice, and more

The [DeepL CLI](https://github.com/DeepLcom/deepl-cli) is an open-source (MIT license) command-line tool for interacting with the DeepL API. It covers text translation, document translation, writing enhancement, voice translation, glossary management, and admin operations — all from your terminal.

## Installation

<Note>
The CLI requires [Node.js](https://nodejs.org/) (v18+) and build tools for native compilation:
- **macOS**: Xcode Command Line Tools (`xcode-select --install`)
- **Linux**: `python3`, `make`, `gcc` (`apt install python3 make gcc g++`)
- **Windows**: Visual Studio Build Tools
</Note>

```bash
git clone https://github.com/DeepLcom/deepl-cli.git
cd deepl-cli
npm install
npm run build
npm link

deepl --version
```

## Quick start

### 1. Set up authentication

Use the interactive setup wizard:

```bash
deepl init
```

Or set your API key directly:

```bash
deepl auth set-key YOUR_API_KEY
```

Or use an environment variable:

```bash
export DEEPL_API_KEY=YOUR_API_KEY
```

### 2. Translate text

```bash
deepl translate "Hello, world!" --to es
# ¡Hola, mundo!
```

### 3. Enhance your writing

```bash
deepl write "Their going to the stor tommorow" --lang en-us
# They're going to the store tomorrow.
```

## Key capabilities

| Command | Description |
|---------|-------------|
| `deepl translate` | Translate text with support for formality, context, and custom instructions |
| `deepl translate --file` | Translate text files while preserving code blocks and formatting |
| `deepl document` | Translate documents (PDF, DOCX, PPTX, XLSX) with format preservation |
| `deepl write` | Enhance grammar and style via DeepL Write |
| `deepl voice` | Stream real-time speech translation via WebSocket |
| `deepl watch` | Monitor files and auto-translate on change |
| `deepl glossary` | Create, list, and manage glossaries |
| `deepl admin` | Manage API keys, usage limits, and team access |
| `deepl usage` | Check API usage and character quotas |
| `deepl config` | Configure defaults (target language, formality, model) |

## Usage examples

### Translate with context and formality

```bash
deepl translate "Thank you for your patience" --to de --formality more \
--context "Customer support email to a long-standing client"
```

### Translate a document

```bash
deepl document translate report.pdf --to fr --output report-fr.pdf
```

### Batch translate a directory

```bash
deepl translate --file src/locales/en/ --to de,fr,es --output src/locales/
```

### Watch mode for development

```bash
deepl watch ./content/en --to de,fr --output ./content/
```

### Git hooks integration

Automatically translate changed files before each commit:

```bash
deepl hooks install --pre-commit --languages de,fr
```

## Developer workflow features

- Local SQLite cache with LRU eviction avoids redundant API calls
- Monitor billed characters for budget planning with `deepl usage`
- Use `--quiet` and `--no-input` flags for CI/CD pipelines
- Generate shell completions for bash, zsh, fish, and PowerShell

## Further reading

- [DeepL CLI on GitHub](https://github.com/DeepLcom/deepl-cli) — full documentation, changelog, and source code
- [DeepL API authentication](/docs/getting-started/auth) — set up your API key
- [Your first API request](/docs/getting-started/your-first-api-request) — understand how the API works
- [Client libraries](/docs/getting-started/client-libraries) — official SDKs for six languages