Active typing,
across your desktop.

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.

Everything happens where you type

No new window to switch to, no copy and paste. A small list appears next to the cursor; Alt + a number picks an entry.

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.

Spelling and grammar

After each word, a mistake near the cursor is offered as a fix, first in the list. English, checked offline by Harper.

Translation

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.

A local AI

:formal :casual :friendly :short rewrite a line with Qwen3 0.6B running in llama.cpp on your computer. It sleeps after a quiet minute.

Commands, not hotkeys

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.

Yours to shape

Theme, accent colour, text size, list position, picking key, every feature on or off: one command each, applied within 2 seconds.

Inline commands

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 typeAlt+1 givesWhat it does
Good morning :plDzień dobrytranslate to Polish (any installed language code)
Dzień dobry :enGood morningtranslate to English
I would like to recieve an letter :fixI would like to receive a letterfix spelling and grammar
hey can u send me the file :formalCould you please send me the file?formal and polite
hey can u send me the file :casualcan you send me the file?relaxed, like a chat
hey can u send me the file :friendlyHi! Could you send me the file when you have a moment? Thanks!warm and friendly
:shortshorten a long line or paragraph

More languages: dacty models add de, then :de. Translation and :fix work without the AI.

Make it yours

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
SettingDefaultValuesMeaning
suggestionsonon | offword list while typing
next_wordsonon | offlikely next words after a space
learningonon | offlearn words you type (kept only on this computer)
grammaronon | offoffer fixes for spelling and grammar (English)
commandsonon | offinline commands such as :pl :en :fix
terminalsonon | offsuggestions in terminals (never at password prompts)
items51-5how many words the list shows
pickaltalt | ctrl | supermodifier for picking with 1-5
themedarkdark | lightcolours of the list
accent#f5b700#rrggbbcolour of the list’s highlight
font_size1510-32text size in the list
positionaboveabove | belowwhere the list goes relative to the caret
aionon | offAI commands with the local model
ai_urlhttp://127.0.0.1:8095URLaddress of the local AI server (llama-server)

Private, offline, light

Nothing leaves your computer

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.

Works without internet

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.

Gentle on old hardware

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.

Install

  1. 1. Open a terminal and run

    curl -fsSL https://kyryllko.tech/install.sh | sh
  2. 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. 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.

Options

curl -fsSL https://kyryllko.tech/install.sh | sh -s -- --no-ai
curl -fsSL https://kyryllko.tech/install.sh | sh -s -- --lang='pl de'

Uninstall

curl -fsSL https://kyryllko.tech/install.sh | sh -s -- --uninstall

--purge also deletes settings, learned words and models.

What the installer does

  • puts the dacty program in ~/.local/bin (checked with SHA-256)
  • installs the Fcitx5 input modules for GTK 3/4 and Qt 5/6 apps, and llama.cpp (from your distribution, or llama.cpp’s own build when it has none)
  • tells your X11 session to use them (~/.xsessionrc, ~/.xprofile)
  • starts dacty at login (~/.config/autostart)
  • downloads the English ⇄ Polish translation models (70 MB)
  • downloads Qwen3 0.6B (397 MB) and runs it as a user service, dacty-llm

Read it first if you like: install.sh. Running it again updates dacty.

Works with

  • Tested from a fresh install of Xubuntu 26.04 and 24.04 LTS (Xfce, X11).
  • Ubuntu and Debian based distributions from 2022 on (glibc 2.35 or newer). Arch, Fedora and openSUSE: the installer tries their packages, not tested yet.
  • GTK and Qt apps, Firefox and terminals.
  • Snap apps, such as the Firefox and Thunderbird that come with Ubuntu: not yet. Snap’s sandbox blocks this kind of input method. Firefox outside a snap works (tested with Arch Linux’s Firefox package).
  • Chrome, Chromium and Electron apps: suggestions only for now, since they do not tell the input method the text around the cursor.
  • Wayland desktops: not yet. Pick an X11 (Xorg) session at login.

If something is off

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.