Click any screenshot to view a larger version with detailed explanation.
Search for word
Word lookup by language
History View
Save Note
Notes
Settings
UI Language Change
Download More Dictionary
dictcli)An offline SQLite dictionary CLI with two optional runtime modes: REST API server (rest) and MCP stdio server (mcp).
--term and meaning search --query1.25+/path/to/dictionary_fts5.db/path/to/dictsdictcli --db /absolute/path/to/dictionary-data/dictionary_fts5.db groups
dictcli --db /absolute/path/to/dictionary-data/dicts --term 사전
dictcli --db /absolute/path/to/dictionary-data/dicts --term 'dict*'
dictcli --db /absolute/path/to/dictionary-data/dicts --term 'com*uter'
dictcli --db /absolute/path/to/dictionary-data/dicts --query dictionaryWildcard patterns:
* : any sequence (example: '*ter', 'com*uter')
? : any single character (example: c?mputer)Release dictionary list/download:
dictcli download --list
dictcli download-list
dictcli download --name lingoes-naver-english-korean --out /absolute/path/to/dictionary-data/dicts
dictcli download --name cc-kedict.zip --out ./downloads --extract=falseOutput modes:
dictcli --db /absolute/path/to/dictionary-data/dicts --term 옥편 --output rich
dictcli --db /absolute/path/to/dictionary-data/dicts --term 옥편 --output plain
dictcli --db /absolute/path/to/dictionary-data/dicts --term 옥편 --output md
dictcli --db /absolute/path/to/dictionary-data/dicts --term 옥편 --output json
dictcli --db /absolute/path/to/dictionary-data/dicts --term 옥편 --output xmlThe config file is optional (see config.example.ini).
DB path resolution priority:
--db <path>DICTCLI_DB_PATH[database] path in config.iniConfig file path priority:
--config <path>DICTCLI_CONFIG./config.ini in current directoryStart server:
dictcli \
--db /absolute/path/to/dictionary-data/dicts \
--limit 20 \
--timeout 60 \
rest --host 127.0.0.1 --port 8080Endpoints:
GET /healthzGET /groupsGET /searchCommon query params: limit, timeout, source_prefix.
/search params:
term or queryterm: headword search (wildcards *, ?)query: meaning/full-text FTS searchranking=true|false (default false, applies to query search)curl -s "http://127.0.0.1:8080/healthz"
curl -s "http://127.0.0.1:8080/groups"
curl -s --get --data-urlencode "term=가게" --data-urlencode "limit=3" "http://127.0.0.1:8080/search"
curl -s --get --data-urlencode "term=*ter" --data-urlencode "limit=5" "http://127.0.0.1:8080/search"
curl -s --get --data-urlencode "query=dictionary" --data-urlencode "limit=5" --data-urlencode "ranking=false" "http://127.0.0.1:8080/search"Start MCP server:
dictcli \
--db /absolute/path/to/dictionary-data/dicts \
--limit 20 \
--timeout 60 \
mcp --name dictcliExposed MCP tools:
groups (no args, response { "groups": [...] })search (one of term or query, response { "results": [...] })deploy/systemd/dictcli-api.servicescripts/run_dictcli_api.shsudo mkdir -p /opt/dictcli/bin /opt/dictcli/scripts
sudo cp dictcli /opt/dictcli/bin/dictcli
sudo cp ./scripts/run_dictcli_api.sh /opt/dictcli/scripts/run_dictcli_api.sh
sudo chmod +x /opt/dictcli/scripts/run_dictcli_api.sh
sudo useradd --system --no-create-home --shell /usr/sbin/nologin dictcli || true
sudo chown -R dictcli:dictcli /opt/dictcli
# /etc/default/dictcli
DICTCLI_BIN=/opt/dictcli/bin/dictcli
DICTCLI_DB_PATH=/absolute/path/to/dictionary-data/dicts
DICTCLI_HOST=127.0.0.1
DICTCLI_PORT=8080
DICTCLI_GROUP=ko-en
DICTCLI_LIMIT=20
DICTCLI_TIMEOUT=60
sudo cp ./deploy/systemd/dictcli-api.service /etc/systemd/system/dictcli-api.service
sudo systemctl daemon-reload
sudo systemctl enable --now dictcli-api
sudo systemctl status dictcli-api