Features

Customize Your Project Icon

RepoGo automatically looks for an icon in each project you open. When it finds one, the icon appears anywhere RepoGo identifies that project, including the project drawer, chat picker, and chat surfaces.

The recommended way to choose the icon yourself is to add this file:

text
.repogo/icon.png

Keep the file at 1 MB or smaller. RepoGo gives .repogo/icon.png the highest priority, so it overrides favicons, web app manifests, and other logo files without changing your existing app configuration.

How RepoGo chooses an icon#

RepoGo checks candidates in this order and uses the first match:

  1. .repogo/icon.png
  2. repogo-icon.png at the project root
  3. apple-touch-icon-precomposed.png or apple-touch-icon.png
  4. An icon referenced by manifest.json, manifest.webmanifest, or site.webmanifest
  5. A common standalone icon or logo:
    • icon.png
    • logo.png
    • icon-512.png
    • android-chrome-512x512.png
    • android-icon-foreground.png
    • icon-192.png
    • android-chrome-192x192.png
  6. favicon.ico

For a web app manifest, RepoGo prefers the candidate with the largest pixel area declared in its sizes field. For example, an entry declared as 512x512 wins over one declared as 192x192.

Apart from the two explicit RepoGo overrides, if the same filename exists in more than one checked folder, the shortest path wins. A file at the project root therefore takes precedence over the same file in public/.

Folders RepoGo checks#

Icon detection is intentionally shallow and fast. RepoGo checks the project root plus these conventional folders instead of searching every file in the repository:

text
.repogo/                  public/                 static/
assets/                   app/                    src/
www/                      web/                    site/
resources/                images/                 img/
icons/                    media/                  public/icons/
public/images/            public/assets/          public/img/
public/img/icons/         assets/icons/           assets/images/
img/icons/                src/assets/             src/images/
src/icons/                src/app/                app/assets/
app/icons/                app/images/

This keeps detection quick even in large repositories and prevents an icon from a nested dependency or unrelated app from becoming the icon for the whole project.

For a monorepo, put icon.png inside a root-level .repogo/ folder if you want a predictable top-level project icon.

Supported files#

RepoGo accepts:

  • PNG (.png)
  • WebP (.webp)
  • ICO (.ico)
  • Files no larger than 1 MB

Candidate filenames are matched exactly as written above and are case-sensitive, so .repogo/icon.png and every standalone candidate must be a PNG — icon.webp is not a substitute for icon.png. WebP is used only when a web app manifest points at it, and ICO only as favicon.ico.

SVG, JPEG, GIF, and remote manifest URLs are not used. SVG entries in a web app manifest are also skipped.

When the icon updates#

RepoGo checks a new project when you start working in it. The selected image is cached so every RepoGo client can display it without repeatedly reading your filesystem.

After a successful check—or a check that found no icon—RepoGo waits up to 48 hours before checking that project again. On the first agent turn after that window expires, RepoGo checks again in the background. The chat turn does not wait for icon detection.

If you add or replace an icon:

  1. Confirm the file uses a supported name, location, format, and size.
  2. Keep RepoGo Host connected if the project is on your Mac.
  3. Start an agent turn after the refresh window has expired.

If no supported icon is found, RepoGo continues to show its normal fallback project symbol.

Repositories stored on your iPhone#

The order above is the same everywhere — a project on your Mac, in a cloud environment, or opened directly on your iPhone all pick the same winner from the same list.

One detail differs for repositories RepoGo keeps on your iPhone. There is no folder on disk to look through, so RepoGo picks the icon while it downloads the repository, and it considers every file in the repository rather than only the folders listed above. It also means the icon changes when the repository next syncs from GitHub — adding an icon by editing on your phone updates it after the next pull, and Refresh icon returns the icon chosen at the last sync.

Troubleshooting#

RepoGo chose the wrong image.
Add .repogo/icon.png. It always wins over other detected candidates.

My manifest icon is ignored.
Make sure the manifest is named manifest.json, manifest.webmanifest, or site.webmanifest; its icons entry uses a local path; and the referenced PNG, WebP, or ICO file is inside one of the checked folders.

I replaced the file, but the old icon still appears.
Icon checks are cached for up to 48 hours. To pick up the change now, right-click the project's icon anywhere in the dashboard — the sidebar, the workspace switcher, or the chat composer — and choose Refresh icon. RepoGo checks that project immediately, ignoring the cache. Otherwise it detects the new file on the first agent turn after the refresh window expires.

Refreshing needs the project's host connected, since RepoGo reads the file from your machine, and the project needs at least one chat — a project you have never worked in gets its icon on its first agent turn anyway. If no icon is found, RepoGo tells you so — add a repogo-icon.png at the project root and refresh again.

My icon is inside a nested package.
RepoGo does not recursively search a monorepo. Add .repogo/icon.png at the monorepo root for the top-level project.