Suggestions that learn
Words and likely next words while you type, in GTK and Qt apps, Firefox, Chromium and terminals. It learns your words, on this computer only. Pick with Alt+1 … 5.
Word suggestions, grammar fixes, translation and a local AI wherever you type on Linux. Offline, private and light enough for an old laptop.
curl -fsSL https://kyryllko.tech/install.sh | sh Linux x86_64 with an X11 desktop (tested on Xubuntu). Then log out and back in once.
dacty — from Greek δάκτυλος (dáktylos), finger.
No new window to switch to, no copy and paste. A small list appears next to the cursor; Alt + a number picks an entry.
Words and likely next words while you type, in GTK and Qt apps, Firefox, Chromium and terminals. It learns your words, on this computer only. Pick with Alt+1 … 5.
After each word, a mistake near the cursor is offered as a fix, first in the list. English, checked offline by Harper.
End a line with :pl or :en and a space. Mozilla’s offline Firefox Translations models, no account, no cloud. Polish comes with the install.
:formal :casual :friendly :short rewrite a line with Qwen3 0.6B running in llama.cpp on your computer. It sleeps after a quiet minute.
Like a text expander: type the command at the end of a line, see the result in the list, press Alt+1 to replace the line. Escape cancels.
Theme, accent colour, text size, list position, picking key, every feature on or off: one command each, applied within 2 seconds.
Type the command at the end of a line, then a space. The result appears in the list: Alt+1 replaces the line, Esc keeps it. These are real answers from the test machine.
| You type | Alt+1 gives | What it does |
|---|---|---|
| Good morning :pl | Dzień dobry | translate to Polish (any installed language code) |
| Dzień dobry :en | Good morning | translate to English |
| I would like to recieve an letter :fix | I would like to receive a letter | fix spelling and grammar |
| hey can u send me the file :formal | Could you please send me the file? | formal and polite |
| hey can u send me the file :casual | can you send me the file? | relaxed, like a chat |
| hey can u send me the file :friendly | Hi! Could you send me the file when you have a moment? Thanks! | warm and friendly |
| :short | shorten a long line or paragraph |
More languages: dacty models add de, then :de. Translation and :fix work without the AI.
One command per change, applied within 2 seconds. Settings live in a plain text file you
can also edit by hand: dacty config path shows where.
dacty config list prints every setting with its value, dacty config reset goes back to the defaults.
# what is running, set up and learned (counts only) dacty status # a light list below the cursor, picked with Ctrl dacty config set theme light dacty config set position below dacty config set pick ctrl # your colour, bigger text, three entries dacty config set accent '#3b82f6' dacty config set font_size 18 dacty config set items 3 # pause, resume, forget what was learned dacty off dacty on dacty forget
| Setting | Default | Values | Meaning |
|---|---|---|---|
| suggestions | on | on | off | word list while typing |
| next_words | on | on | off | likely next words after a space |
| learning | on | on | off | learn words you type (kept only on this computer) |
| grammar | on | on | off | offer fixes for spelling and grammar (English) |
| commands | on | on | off | inline commands such as :pl :en :fix |
| terminals | on | on | off | suggestions in terminals (never at password prompts) |
| items | 5 | 1-5 | how many words the list shows |
| pick | alt | alt | ctrl | super | modifier for picking with 1-5 |
| theme | dark | dark | light | colours of the list |
| accent | #f5b700 | #rrggbb | colour of the list’s highlight |
| font_size | 15 | 10-32 | text size in the list |
| position | above | above | below | where the list goes relative to the caret |
| ai | on | on | off | AI commands with the local model |
| ai_url | http://127.0.0.1:8095 | URL | address of the local AI server (llama-server) |
Suggestions, grammar, translation and AI all run locally. There is no account, no telemetry and no cloud service. The AI server listens on 127.0.0.1 only and needs a key that only you can read.
The internet is used only to install: the program, the language models and the AI model,
each checked with SHA-256. Learned words stay in a file in your home folder; dacty forget deletes them, password fields are never learned.
About 140 MB while running. The grammar checker starts when needed and stops after 10 quiet minutes; the AI takes about 800 MB while answering and sleeps after a quiet minute. Under 3 GB of memory the installer skips the AI.
1. Open a terminal and run
curl -fsSL https://kyryllko.tech/install.sh | sh 2. Type your password when asked
Only to install the input modules for GTK and Qt apps (and llama.cpp, where your distribution has it) with your package manager. Everything else goes to your home folder.
3. Log out and back in
dacty starts with your desktop from now on. Type in any app; the list appears next to the cursor.
curl -fsSL https://kyryllko.tech/install.sh | sh -s -- --no-ai curl -fsSL https://kyryllko.tech/install.sh | sh -s -- --lang='pl de' curl -fsSL https://kyryllko.tech/install.sh | sh -s -- --uninstall --purge also deletes settings, learned words and models.
dacty program in ~/.local/bin (checked with SHA-256)Read it first if you like: install.sh. Running it again updates dacty.
dacty status shows whether it runs and which app modules
are installed. No list after installing? Log out and back in once. dacty help lists every command.