Frequently Asked Questions

Every item below is a question we have actually been asked, and each answer is the thing to do. If we cannot answer something we would rather say so — those cases belong on the support page.

Getting started, and API keys

A key is configured but nothing happens / it says no key is set.

Go to Settings → Model and enter the key (on the desktop, press Ctrl+T or type /settings; on mobile use the Settings tab). On the desktop you can also store it from the command line: /model key <provider> <key> or /provider apikey set <provider> <key>. Once it is in, the UI shows the configured model and state.

If it still fails, check whether the key expired or the account is out of credit — those errors come from your provider, and Dolaima only relays them.

What should I know about local models (Ollama / LM Studio)?

Point the BaseUrl at the local port (no /v1 needed — the app appends it) and use any placeholder string as the key, since local servers do not validate it. For a local model with a small context window, turn on economy mode with --economy on, or the full prompt may exceed the model's window and get rejected outright.

Do I have to re-enter my key after reinstalling?

Yes. The key is stored on the device only (on the desktop, ~/.waycoder/api_keys.json; on mobile, in the app's private directory) and does not follow your account. After reinstalling or moving to a new machine, just enter it again. This has nothing to do with billing — usage was always settled directly between you and your model provider.

How do I use the outline and the AI in the editor?

The editor's bottom panel has five pages: Problems, Output, Find, Outline and AI. Outline lists the functions and types in the current file — with their parameter lists and return types — and tapping one jumps to that line, in the same syntax colours as the code.

The AI page is a conversation about the whole file: Ask only answers (it does not edit), while Edit returns a complete rewritten file and shows a diff for you to confirm line by line — nothing is written until you tap Apply, and one step undoes it. Each file keeps its own conversation, and Stop is available whenever it runs.

Speed and cost

The AI is slow, or requests time out.

Dolaima does not proxy requests: content goes straight from your machine to the model provider you configured, so speed is whatever that provider gives you at that moment. Switching to a faster model (Ctrl+M or /model) is usually the fix. On a timeout the app retries automatically, with the timeout growing on each attempt.

How much does a task cost? Can I cap it?

/tokens shows token usage and the cost estimate for the current session, and /stats shows session statistics. To cap spending, use --max-budget-usd <amount> (-B) — the run stops automatically once it is exceeded. To spend less in general, turn on economy mode (--economy, or cycle it with Ctrl+E).

Free Edition and Full Edition

What does the free version include? What about Full?

Free: the editor, plus compiling and running C and VML assembly (no optimizer). The Full Edition is a one-time in-app purchase (not a subscription) that unlocks the compilers and the optimizer for all 27 languages. Buy or restore it under Settings → Full Edition.

I changed phones — how do I restore my purchase?

Settings → Full Edition → Restore purchase, using the same account; you are not charged twice. Reinstalling the app goes through the same step.

Data and privacy

Where is my code and data, and how do I delete it?

On the desktop: ~/.waycoder/ (configuration, keys, model catalogue, knowledge base) plus a .waycoder/ directory inside each project (memory, sessions, checkpoints). On mobile: everything is in the app's private on-device storage, workspace files included.

Delete those directories, or delete the app, and all local data is gone. We do not collect or upload it. The only data that ever leaves your device is what you actively send in a chat — which goes directly to the model provider you configured — plus update and sync requests you explicitly trigger.

One clarification on the two .waycoder/ directories: ~/.waycoder/config.json is the single authoritative source, while a project's .waycoder/ holds per-project data only (memory, sessions, hooks). On the very first launch, if config.json does not exist yet, the app reads environment variables and a .env file once as a bootstrap; from then on config.json is the source of truth.

Compatibility and troubleshooting

Why does the same model appear twice in the list?

Models are keyed by (id, gateway address): a different address means a different provider, so the same id under two gateways is kept twice on purpose. Whichever one you pick is the gateway your requests go to.

I keep getting permission prompts — how do I cut down on them?

Ctrl+P cycles the permission mode (Ask / Auto / SmartAuto / Yolo), or /permit yolo allows everything; one-shot runs can use waycoder -y. Note that skipping confirmation only affects the confirmation axis and does not change the sandbox boundary — to restrict what can be written or reached over the network, use /perm as well.

CJK text I type in the TUI comes out garbled.

That was an encoding problem with the terminal's input bytes, and it is fixed in current versions (the app decodes typed input according to the console's code page). Upgrade to the latest version: /update to check, /update now to upgrade in place, or waycoder --update from the command line. If you can still reproduce it after upgrading, report it on the support page and mention your terminal program and OS version.

Chinese output on the Windows command line is garbled.

On a Chinese Windows install, cmd encodes piped output using the system OEM code page (GBK) while native programs emit UTF-8, so the app decodes according to what it launched. Later versions closed the places where that was missed. Upgrade to the latest version first; if it still reproduces, include the exact command you ran and a screenshot when you report it.

The mobile app will not install (unknown sources / a Xiaomi USB-install prompt).

The APK is distributed directly, so the system has to allow installing from unknown sources. Some brands (Xiaomi among them) add an extra confirmation when installing over USB — allow it as prompted, and if it is blocked, tap install again.

Do not uninstall the old version just to install a new package — that takes your API keys, sessions and workspace with it. A normal overwrite install keeps your data.

How do I report a compile error?

Compile from the Shell tab or the editor, then paste the full error (language, file name, line number, error text) into the support page or an issue. Complete reports save a round trip.

Can you add language X / feature Y?

Yes, just ask. Describe the use case on the support page — saying "what I am trying to do, and why the current options are not enough" is far more useful than naming a language.

The name, and upgrading

Has this product changed names? How do CoreCoder, WayCoder and Dolaima relate?

They are the same software, renamed twice because of trademark conflicts: in v0.16.3 CoreCoder became WayCoder, and in v0.96.569 it became Dolaima (to avoid a trademark conflict with Waycoder co., ltd. of Korea ahead of the worldwide release).

Only the brand name you see changed; technical names in the code are untouched. The executable is still waycoder, the repository directory is still WayCoder/, the environment variable prefix is still WAYCODER_*, and the configuration directory is still ~/.waycoder/. So the keys, sessions and memories you already have are still there, and the waycoder commands in the docs still work.

How do I upgrade?

Desktop: /update checks for a new version, /update now downloads and self-replaces. From a script or CI, use waycoder --update (it exits immediately if you are already current). On Windows the replacement and restart happen after the process exits; on macOS and Linux the running binary is overwritten atomically.

Mobile: grab the new APK from the download page and install it over the old one (your data is kept). The App Store build updates through the usual channel.

My environment has no internet access / is on an intranet. Can I still use it?

Yes. Point the BaseUrl at your intranet OpenAI-compatible gateway or a local model server, and provide a key if that side requires one. Auto-update can be switched off: set the UpdateEnabled config key to false (/config UpdateEnabled false).


Not answered here? See the contact details on the support page, or read the user guide first.