Account, language and settings
The odds and ends that still get asked about: how to sign in, how to switch between Chinese and English, where dark mode is, and what those lines in the account menu mean.
At a glance
| Ways to sign in | A Google account or WeChat, picked on the unified sign-in page |
|---|---|
| Interface language | Chinese or English |
| Chat language | Not tied to the interface language. It answers in whatever language you write in (it tells apart Chinese / English / Japanese / Korean) |
| Theme | Light or dark |
| Credits and usage | Currently shown as "Coming soon"; not live yet |
| Do the docs need a sign-in | No. The docs you are reading open without one |
Signing in
Clicking sign-in takes you to the unified sign-in page, where you authorize with a Google account or with WeChat. Your first sign-in creates the account for you; there is no separate registration. The product itself does require a sign-in — your projects, source and firmware are your personal data.
中文 link at the bottom switches this page to Chinese.What you can do without signing in: read these docs, and look at other people's publicly released projects, firmware download included. Creating a project or cloning one requires a sign-in.
Interface language and chat language are not the same thing
This is the easiest thing here to confuse, but the rule is short:
| Interface language | The buttons, labels and menus — the text the product itself ships. The "中 / EN" button drives it, and it has only those two. That button sits in two different places: at the bottom of the left rail on the project list page, and at the right of the header once you are inside a project |
|---|---|
| Chat language | The language it answers you in. It follows the message you just sent first; only when that message carries no language signal does it fall back to the conversation above it, and then to the interface language |
So: with the interface in English and your question in Chinese, the reply is still Chinese. Ask in Japanese and it answers in Japanese. Chat language is not limited to those two — Chinese, English, Japanese and Korean are the four it tells apart explicitly. Other languages written in the Latin alphabet, French and Spanish among them, are not guaranteed: a sentence carrying common English function words will mostly be read as English, while one without them falls back to the language of the conversation above it, or to the interface language.
One detail: if the message itself carries no language signal (you replied only OK, or a number, or a part number), it looks back at what you said earlier to decide. So an OK inside a Chinese conversation keeps the replies in Chinese. And when there is nothing earlier either — the first message in a brand-new project being exactly that — the current interface language is what it falls back on.
Dark mode
A moon/sun button, click it to switch. It sits next to the language button, in the same two places: at the bottom of the left rail on the project list page, and at the right of the header once you are inside a project. The setting is stored in the browser on this machine.
The account menu
Your avatar opens the account menu, split into Profile and Usage. The avatar sits where the other two controls do: at the bottom of the left rail on the project list page, and at the right of the header once you are inside a project.
| User ID | Your unique identifier. Include it when you report a problem: logs and data are filed under it, and without it the only way in is a reverse lookup by project name |
|---|---|
| Display name | The name shown |
| Status | The state of the account; a healthy one reads ACTIVE. An account that is not ACTIVE is refused by every endpoint |
| Account source | How this account record came to exist. Everything arriving through the unified sign-in page reads USER_SERVICE — it does not distinguish Google from WeChat |
| Platform role | Your role on the platform; an ordinary account reads USER. It is not the account status — that is the row above |
| Credits · Token usage | Coming soon. These two fields carry no real data yet |
"Coming soon" means exactly that. There is no billing today, and no usage cap on display. Once this ships, these fields turn into real numbers.
Project list and search
The left column of the project list page holds all of your projects, with New project at the top and a search box below it that filters by name. Once you have a lot of projects, that beats scrolling the list.
Lower down the home page there are two more tabs: My projects (sorted by recent activity) and Public shares (what other people have released, sorted by release time).
Deleting a project
Deletion cannot be undone, so it asks you to type DELETE (all caps) to confirm.
⚠️ If the project has a publicly released version, deleting it does not take that release down, and once the project is deleted you can never take it down.
To take it down, the order has to be: go back into the project and say "make it private", then come back and delete. The delete dialog tells you this too.
The Realtime indicator
The small Realtime indicator exists only inside a project, at the right of the header next to the Download and Flash buttons; the project list page has no such indicator. What it reports is the page's own data-fetching state — the progress and the results of long-running tasks are pushed to you over the live channel.
Only two labels ever appear on it:
| Realtime | The normal state, green: this project's data has been fetched |
|---|---|
| Sync required | Red, meaning the page is re-fetching this project's data. It returns to Realtime on its own and asks nothing of you; if it sits on Sync required for more than a few seconds, refresh the page |
One more thing you have to know: if the live channel drops, this indicator does not change. After a disconnect the browser reconnects on its own at 1, 2, 5, 10 and 30 second intervals, and none of that shows in the interface. So the indicator is not how you tell whether something is stuck — progress that has not moved for a long time is. When that happens, refresh the page. Refreshing loses nothing; the round in flight keeps running in the background.
If you come from software development
That indicator reads the page's fetch state, not the state of the WebSocket: it flips to Realtime the moment the project snapshot's HTTP request returns, and a socket that drops afterwards only schedules a backoff reconnect without writing anything back to the interface. Losing the socket also affects push only, not execution — the backend task runs to completion and persists as usual, and a refresh fetches the result.
One more thing worth knowing: several tabs open on the same account can sign each other out. Refresh tokens rotate, and two tabs rotating at once is read as a replay, which revokes the whole token family. What you see is both sides asking you to sign in again. Use one tab day to day.
Common questions
Where is my data stored?
Projects, source and uploaded files live on the server. Serial logs are the exception — they stay in your browser and are never uploaded.
Can I move my account to a different sign-in?
Not today.
Is there a limit on how many projects I can have?
There is no hard limit. The home-page chat can see at most your 50 most recent projects at a time — when you have a great many, naming the project directly is more accurate than asking it to list them.
How do I report a problem?
Send these four things together and you save a round trip: your User ID, the project name, the exact words you sent in the chat, and the error text or the screenshot you saw. Do not paraphrase; the original is what helps.