Sparks

Help

Answers to the questions people ask about Sparks.

How does GitHub sync work?

Enter your GitHub username in Settings. Every public repo becomes a project, with its description, language and live site if the repo has one.

For private repos, or to avoid GitHub's rate limits, add an access token. Create a fine-grained token with read-only Metadata access to all repositories. The token is stored encrypted and is never shown again. You can replace or remove it at any time.

With “Keep in sync automatically” on, new repos appear within a day by themselves, and Sparks also checks every time you open Projects. You can press Sync now whenever you like. Forks are left out by default, and archived repos are included. Both are switches in Settings.

Syncing only reads repo details. It never changes your repos, and your notes and your own edits to a project are never overwritten. If a repo is deleted on GitHub, its project stays, with its notes.

How do I export chats from my messaging apps?

Export the chat where you message yourself, then pick the file on the Import page. You choose which messages to keep, and only those are saved. Menu names change now and then, so the steps below may differ slightly on your device.

WhatsApp

  1. Open the chat with yourself (or any chat).
  2. iPhone: tap the chat name at the top, then Export Chat. Android: tap the three dots, then More, then Export chat.
  3. Choose Without media.
  4. Save the file to Files or Drive. You get a .txt file, or a .zip with one inside.

Telegram

Chat export is only in Telegram Desktop on a computer, not in the phone app.

  1. Open the chat, for example Saved Messages.
  2. Click the three dots at the top right, then Export chat history.
  3. Untick photos, videos and other media.
  4. Set the format to Machine-readable JSON, then click Export. You get a file called result.json.

Messenger

  1. On facebook.com, open your profile menu, then Settings & privacy, then Settings.
  2. Open Accounts Center, then Your information and permissions, then Export your information.
  3. Create an export, choose your Facebook profile, and pick Customize information.
  4. Tick only Messages. Set the date range, set the format to JSON, and start the export.

Meta prepares the file and tells you when it is ready to download. That can take from a few minutes to a few days.

Instagram

  1. In the Instagram app, open your profile, tap the menu, then Accounts Center.
  2. Open Your information and permissions, then Export your information.
  3. Create an export, choose your Instagram profile, and pick Customize information.
  4. Tick only Messages. Set the format to JSON, and start the export.

Instagram emails you when the file is ready.

Recall, your 6x7 chat importer

If you use Recall (recall.6x7.gr), skip the files. Add its address in Settings and Sparks pulls the messages you sent yourself.

What does Sort with AI do?

On the Import page, Sort with AI suggests a project and a short title for each message you selected. To do that it sends only the selected messages and your project names to Anthropic's Claude API.

It runs only when you press the button. You can change every suggestion, and nothing is saved until you import.

For developers: the interop API

Other apps from 6x7.gr can read your projects and send ideas into Sparks. All of them use the same sign-in, so one access token works everywhere. The full spec is the INTEROP.md file in the repo; this is the short version.

Authentication

Send Authorization: Bearer <access token> on every call. The token is the Supabase access token of the signed-in user, from the shared 6x7 project. The app verifies it and runs every query as that user. There are no cookies on these endpoints. Browser calls are allowed from https://*.6x7.gr.

Endpoints

  • GET /api/interop/v1/manifest: public discovery document with the app name, version and endpoints. Open it.
  • GET /api/interop/v1/projects: the user's projects, most recently active first. Optional include_hidden=1 and status=active,idea. Each item has id, name, description, status, url (where the user wants a click to go), live_url, repo_url and note_count.
  • POST /api/interop/v1/notes: send up to 500 ideas or messages. Safe to repeat: items are deduplicated on source_app plus external_id. Each item needs external_id and text, and may add project_id, project_hint, tags, created_at, platform and url. A project_id wins, then project_hint, then a guess from the text. Otherwise the note lands in the Inbox. The answer is { "inserted", "skipped", "rejected" }.

Sparks also reads GET /api/interop/v1/messages from your chats app, with since, self_only, limit and cursor. It returns items with a stable id, text and sent_at, plus next_cursor.

curl https://sparks.6x7.gr/api/interop/v1/projects \
  -H "Authorization: Bearer $ACCESS_TOKEN"

curl -X POST https://sparks.6x7.gr/api/interop/v1/notes \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"source_app":"chats","items":[{"external_id":"wa:3EB0C4","text":"catchy: add speaker colours to the export"}]}'

Servers calling these endpoints should refuse redirects and only call https://<name>.6x7.gr hosts, so the token never leaves the family of apps.

Still stuck? Write to hello@6x7.gr.