Core Commands¶
lango serve¶
Start the gateway server. This boots the full application stack including all enabled channels, tools, embedding, graph, cron, and workflow engines.
lango serve
The server reads configuration from the active encrypted profile and starts:
- HTTP API on the configured port (default
18789) - WebSocket endpoint (if enabled)
- All configured channel adapters (Telegram, Discord, Slack)
- Background systems (cron scheduler, workflow engine) if enabled
Graceful shutdown is handled via SIGINT or SIGTERM with a 10-second timeout.
Example:
$ lango serve
INFO starting lango {"version": "0.5.0", "profile": "default"}
INFO server listening {"address": ":18789"}
lango version¶
Print the binary version and build timestamp.
lango version
Example:
$ lango version
lango 0.5.0 (built 2026-02-20T12:00:00Z)
lango health¶
Check whether the gateway server is running and healthy. Sends an HTTP GET to the /health endpoint.
lango health [--port N]
| Flag | Type | Default | Description |
|---|---|---|---|
--port | int | 18789 | Gateway port to check |
Examples:
# Check default port
$ lango health
ok
# Check custom port
$ lango health --port 9090
ok
Info
This command is designed to work as a Docker HEALTHCHECK. It exits with code 0 on success and non-zero on failure.
lango onboard¶
Launch the guided 5-step setup wizard using an interactive TUI. This is the recommended way to configure Lango for the first time.
lango onboard [--profile <name>]
| Flag | Type | Default | Description |
|---|---|---|---|
--profile | string | default | Profile name to create or edit |
The wizard walks through five steps:
- Provider Setup -- Choose an AI provider (Anthropic, OpenAI, Gemini, Ollama, GitHub) and enter API credentials
- Agent Config -- Select model (auto-fetched from provider), max tokens, and temperature
- Channel Setup -- Configure Telegram, Discord, or Slack (or skip)
- Security & Auth -- Privacy interceptor, PII redaction, approval policy
- Test Config -- Validate your configuration
All settings are saved to an encrypted profile in ~/.lango/lango.db.
Example:
# Run with default profile
$ lango onboard
# Create a separate "staging" profile
$ lango onboard --profile staging
Tip
For full control over every configuration option, use lango settings instead.
lango settings¶
Open the full interactive configuration editor. Provides access to all configuration options organized by category, including advanced features like embedding, graph, payment, and automation settings.
lango settings [--profile <name>]
| Flag | Type | Default | Description |
|---|---|---|---|
--profile | string | default | Profile name to edit |
The settings editor uses a TUI menu interface where you can navigate through categories and edit individual values. Categories are organized into groups:
- Core: Providers, Agent, Server, Session
- Communication: Channels, Tools, Multi-Agent, A2A Protocol
- AI & Knowledge: Knowledge, Skill, Observational Memory, Embedding & RAG, Graph Store, Librarian
- Infrastructure: Payment, Cron Scheduler, Background Tasks, Workflow Engine
- P2P Network: P2P Network, P2P ZKP, P2P Pricing, P2P Owner Protection, P2P Sandbox
- Security: Security, Auth, Security DB Encryption, Security KMS
Press / to search across all categories by keyword.
Changes are saved to the active encrypted profile.
Note
This command requires an interactive terminal. For scripted configuration, use lango config import with a JSON file.
lango doctor¶
Run diagnostics to check your Lango configuration and environment for common issues. Optionally attempt to fix problems automatically.
lango doctor [--fix] [--json]
| Flag | Type | Default | Description |
|---|---|---|---|
--fix | bool | false | Attempt to automatically fix issues |
--json | bool | false | Output results as JSON |
Checks performed (20 total):
- Configuration profile validity
- AI provider configuration and API keys
- API key security (env-var best practices)
- Channel token validation (Telegram, Discord, Slack)
- Session database accessibility
- Server port availability / network configuration
- Security configuration (signer, interceptor, encryption)
- Companion connectivity (WebSocket gateway status)
- Observational memory configuration
- Output scanning and interceptor settings
- Embedding / RAG provider and model setup
- Graph store configuration
- Multi-agent orchestration settings
- A2A protocol connectivity
- Tool hooks configuration
- Agent registry health
- Librarian status
- Approval system status
- Economy layer configuration
- Contract configuration
- Observability configuration
Examples:
# Run diagnostics
$ lango doctor
# Attempt auto-fix for known issues
$ lango doctor --fix
# Machine-readable output
$ lango doctor --json
Tip
Run lango doctor after lango onboard to verify your setup is correct. If issues are found, the --fix flag can resolve common problems automatically.
lango config¶
Configuration profile management. Manage multiple configuration profiles for different environments or setups.
lango config <subcommand>
lango config list¶
List all configuration profiles.
lango config list
Output columns:
| Column | Description |
|---|---|
| NAME | Profile name |
| ACTIVE | * if currently active |
| VERSION | Profile version number |
| CREATED | Creation timestamp |
| UPDATED | Last updated timestamp |
Example:
$ lango config list
NAME ACTIVE VERSION CREATED UPDATED
default * 3 2026-02-10 08:00:00 2026-02-20 14:30:00
staging 1 2026-02-15 10:00:00 2026-02-15 10:00:00
lango config create¶
Create a new profile with default configuration.
lango config create <name>
| Argument | Required | Description |
|---|---|---|
name | Yes | Name for the new profile |
Example:
$ lango config create staging
Profile "staging" created with default configuration.
lango config use¶
Switch to a different configuration profile.
lango config use <name>
| Argument | Required | Description |
|---|---|---|
name | Yes | Profile name to activate |
Example:
$ lango config use staging
Switched to profile "staging".
lango config delete¶
Delete a configuration profile. Prompts for confirmation unless --force is used.
lango config delete <name> [--force]
| Argument | Required | Description |
|---|---|---|
name | Yes | Profile name to delete |
| Flag | Type | Default | Description |
|---|---|---|---|
--force, -f | bool | false | Skip confirmation prompt |
Example:
$ lango config delete staging
Delete profile "staging"? This cannot be undone. [y/N]: y
Profile "staging" deleted.
$ lango config delete staging --force
Profile "staging" deleted.
lango config import¶
Import and encrypt a JSON configuration file. The source file is deleted after import for security.
lango config import <file> [--profile <name>]
| Argument | Required | Description |
|---|---|---|
file | Yes | Path to the JSON configuration file |
| Flag | Type | Default | Description |
|---|---|---|---|
--profile | string | default | Name for the imported profile |
Example:
$ lango config import ./config.json --profile production
Imported "./config.json" as profile "production" (now active).
Source file deleted for security.
lango config export¶
Export a profile as plaintext JSON. Requires passphrase verification via bootstrap.
lango config export <name>
| Argument | Required | Description |
|---|---|---|
name | Yes | Profile name to export |
Example:
$ lango config export default
WARNING: exported configuration contains sensitive values in plaintext.
{
"agent": {
"provider": "anthropic",
...
}
}
Warning
The exported JSON contains sensitive values (API keys, tokens) in plaintext. Handle with care.
lango config validate¶
Validate the active configuration profile.
lango config validate
Example:
$ lango config validate
Profile "default" configuration is valid.