AnisurgeAnisurge / extensions

Add Extension Repository — Install Guide

Step-by-step guide to add the official Anisurge extensions repository, install .asx packs, and configure streaming sources for anime playback in the Anisurge app.

Add Repository & Install Extensions

This guide covers how to register the official Anisurge Extensions repository in the app, install individual .asx packs, and verify they work for streaming anime episodes.

One-Tap Install (Android)

If you are on Android, the quickest way is to tap the button below. It opens the Anisurge app directly (build ≥ 140 required) and triggers the Add Repository confirmation dialog.

Open in Anisurge

Deep link format: anisurgex://extensions/install?type=repo&engine=ANISURGE&url=<index_url>&name=<repo_name>

Manual Setup (All Platforms)

If the deep link doesn't open (Desktop or Android without the app installed), follow these steps:

  1. Open the Anisurge app
  2. Navigate to Settings → Extensions
  3. Read and accept the extensions warning if prompted (shown once)
  4. Tap Add repository
  5. Set the engine to Anisurge (auto-detect also works)
  6. Enter or paste the index URL:
https://raw.githubusercontent.com/Anisurge/extensions/main/index.json
  1. Tap Save or Add — the app fetches the index and displays available packs
  2. Browse the list and tap Install on any pack (e.g., Anokoto, Scraper Anitaku)
  3. The app downloads the .asx file, validates the schema, and stores it

Installing Individual Packs

You can also install a single extension pack directly (without adding the full repository) using the pack-specific deep link:

anisurgex://extensions/install?type=source&engine=ANISURGE&url=<asx_download_url>&name=<pack_name>&version=<version>

This is useful for:

  • Testing a pack you are developing
  • Installing a community pack not in the official index
  • Sharing a specific extension with others
ParameterRequiredDescriptionExample
typeYesEither source (single pack) or repo (repository)source
engineNoEngine identifier; defaults to ANISURGEANISURGE
urlYesHTTPS URL to the .asx file or index JSONhttps://raw.githubusercontent.com/.../anokoto.asx
nameYesDisplay name for the packAnokoto
versionNoVersion string for the install dialog1.0.1
iconUrlNoURL to a 48×48 PNG icon for the dialog
repoUrlNoAssociated repository URL for update tracking

App Internal Handling Flow

When the deep link is received:

  1. Android Intent Filter matches anisurgex:// scheme (AndroidManifest.xml lines 143-149)
  2. MainActivity.onNewIntent() passes the URI to NotificationIntentParser.parse() (line 92-104)
  3. resolveDeepLinkUrl() detects the extensions/install path and returns ResolvedDeepLink.ExtensionInstall (DeepLinks.kt lines 154-163)
  4. installExtensionFromDeeplink() in App.kt (lines 428-443) parses query parameters into a ChatExtensionShare model
  5. AppComponent.triggerExtensionInstallFromShare() sets a pending install state (AppComponent.kt lines 185-193)
  6. ExtensionsSettings observes the pending state and shows a confirmation dialog (ExtensionsSettings.kt lines 447-495)
  7. On confirmation, ExtensionManager.install() detects it's an .asx pack and calls installAsxPack() (ExtensionManager.kt lines 179-240)
  8. The pack is downloaded, parsed by AsxPackParser.parsePack() (AsxPackParser.kt lines 19-71), and written to disk via AsxPackStore.writePack() (AsxPackStore.kt lines 30-41)

Verifying Installation

After installation:

  1. Go to Settings → Extensions — the pack should appear in the installed list
  2. Open any anime title that supports the provider
  3. On the Watch screen, the server selector should show the extension provider (e.g., "Anokoto", "Scraper Anitaku")
  4. Select Sub or Dub if the pack supports both
  5. Tap play — the pipeline runs and a video stream loads

Requirements Checklist

  • Anisurge app build ≥ 140 (check in Settings → About)
  • Extensions warning accepted (shown once in Settings → Extensions)
  • Network access to raw.githubusercontent.com (for downloading .asx files)
  • Pack versionCode ≥ installed version (for updates)

Updating Extensions

The app periodically checks the repository index. When a pack's versionCode in the index is higher than the installed version, an Update badge appears next to the pack name:

  1. Open Settings → Extensions
  2. Tap Refresh (pull down or button)
  3. Tap Update on any pack with available update
  4. The app re-downloads the .asx and replaces the existing version

Note: versionCode is a monotonic integer. Packs use semantic versioning for display (1.2.0) but the integer code drives update detection.

Troubleshooting

IssuePossible CauseSolution
Deep link doesn't openApp not installed or build < 140Update Anisurge or use manual URL entry
"Failed to install"Corrupted .asx or network errorCheck internet, try again, verify .asx is valid JSON
Pack not appearing in watch screenIncorrect AniList ID mappingTry a different title known to work with the provider
"No streams found"Provider blocked or region-restrictedTry a different server or VPN
Update badge not showingIndex not refreshedPull to refresh in Extensions list