Skip to content

Quickstart

Get Lingo running and add your first term in under five minutes.

1. Start the server

git clone https://github.com/schinnam/lingo
cd lingo
docker compose up

Wait for the log line Application startup complete. The server is now at http://localhost:8000.

Dev mode

The Docker Compose file sets LINGO_DEV_MODE=true. This disables Slack authentication so you can explore without configuring a Slack app. To log in to the web UI, visit http://localhost:8000/auth/dev/login?email=you@example.com. Never enable dev mode in production.


2. Open the web UI

Navigate to http://localhost:8000 in your browser. You'll see the term browser — initially empty.


3. Add your first term

Click Add term and fill in:

Field Example
Name API
Definition Application Programming Interface — a contract between software components
Full name (optional) Application Programming Interface
Category (optional) tech

Click Add. Your term is created with status pending.


4. Vote it up

Find your term in the list and click Vote. Once enough team members vote, the status advances automatically:

pending  →  community  →  official
           (3 votes)    (editor action + 10 votes)

Terms discovered by the auto-scan job start at suggested and must be promoted to pending (via the detail panel) before voting applies.


5. Try the CLI

Install the CLI and look up the term you just added:

uv pip install -e .
export LINGO_APP_URL=http://localhost:8000

# Authenticate in dev mode
uv run lingo login you@example.com

uv run lingo define API
uv run lingo list

Getting lingo on your PATH

uv pip install -e . installs into the project virtualenv, so lingo won't be available as a bare command in your shell. Use uv run lingo from the repo directory, or run uv tool install . once to make lingo available globally.

Empty export?

lingo export defaults to official terms only. Since no terms are official yet, it will return an empty glossary. Use uv run lingo export --status pending to see your newly added term.


6. Try MCP with Claude

If you use Claude Desktop, add Lingo as an MCP server. Edit claude_desktop_config.json:

{
  "mcpServers": {
    "lingo": {
      "url": "http://localhost:8000/mcp",
      "headers": {
        "Authorization": "Bearer your-mcp-token"
      }
    }
  }
}

Set LINGO_MCP_BEARER_TOKEN=your-mcp-token in your environment and restart the server. Claude can now call get_term, search_terms, and list_terms against your glossary.


What's next