Repo Onboarding
Adding a repo
Section titled “Adding a repo”Open the Repos screen and paste a repo reference into the input. The app accepts:
owner/name(e.g.vercel/next.js)https://github.com/<owner>/<name>(with or without a trailing.git)git@github.com:<owner>/<name>.gitssh://git@github.com/<owner>/<name>(with or without.git)
Click Add and the app runs gh repo clone for you. You don’t need to clone the repo yourself, and there is no folder picker — the app manages the clone end to end.
Other Git hosts are rejected with a “GitHub repositories only” error.
Where the clone lives
Section titled “Where the clone lives”On macOS, clones are stored under the app’s data directory:
~/Library/Application Support/io.stape.your-last-translation-tool/repos/<owner>/<name>/This is an implementation detail. You don’t normally need to open or edit anything in there — the app drives git for you. It’s documented here so you know where to look if you’re curious or debugging.
Configuring projects
Section titled “Configuring projects”The first time you open a repo, the app runs the config wizard. It saves to local app storage, not to the working tree, so adding a repo never produces stray files in your git status.
The wizard collects, per project:
- Project name — a label for this set of locales (e.g.
web,marketing). - Locales directory — relative to the repo root (e.g.
apps/web/locales). - Source language — the language you translate from (e.g.
en).
Discovery seeds these defaults from the on-disk folder layout, so for a typical monorepo you can usually accept the suggestions and move on. You can add more projects from the wizard before saving.
.translations.json
Section titled “.translations.json”The local store is the source of truth for repo configuration. The app does not write .translations.json into the working tree by default, and /.translations.json is in .gitignore.
The schema still exists — see the .translations.json reference — because the file is used by the optional Export to repo flow described below.
The app never reads a committed .translations.json on its own. Opening a repo that has one still runs the wizard, and switching branches never picks it up.
Export to repo
Section titled “Export to repo”The wizard exposes an opt-in Export to repo as .translations.json action. It writes the file into the working tree as an unstaged change — the app does not commit it. Commit and push it through your normal git flow (typically the same PR as the change that introduced it).
The export is how a team shares its AI prompts: teammates pull the file and click Import prompts from repo in the wizard (see Sharing prompts with your team). That import takes the system prompt and the per-language prompts only. It does not configure projects, so a teammate opening the repo for the first time still goes through the wizard.
Editing the config later
Section titled “Editing the config later”The Repo Overview screen has an Edit project config button that re-opens the wizard with the current values pre-filled. Save again to update the local store. Changes take effect immediately — no restart, no branch switch needed.
Removing a repo
Section titled “Removing a repo”The trash/X button next to a repo opens a Remove clone confirmation that names:
- the
owner/nameof the repo, - the on-disk size of the clone,
- how many drafts you have for it,
- how many viewed-marks you’ve recorded.
Confirming deletes the local clone only. The GitHub repository is untouched — drafts and viewed-marks tied to the local clone are removed along with it. To start over, add the repo again from the picker.
Validation errors
Section titled “Validation errors”If the config saved in local app storage fails to validate, the app shows a list of per-field issues with dotted paths — e.g. projects[0].localesDir is required.
Fix the offending fields and click Recheck. The app re-validates without needing a restart. To start over instead, click Reset to wizard: it deletes the saved config and runs the wizard again.
A wrong path is not a validation error, and the app shows no warning for one:
- If a project’s locales directory doesn’t exist, the editor says This project has no translation keys yet.
- If the source language has no folder under it, the editor still shows the other languages’ keys, with an empty source column.
Either way, re-open the wizard with Edit project config and check the path.