Arachne docs Home Open app

Get started

Quickstart

Sign in, connect a repository, scan it, run a verified fix and open the pull request: the whole loop on the public demo repository in about ten minutes.

This walkthrough uses the public demo repository aadhi0612/arachne-demo, which pins requests==2.30.0. That version is affected by GHSA-j8r2-6x86-q33q (CVE-2023-32681: requests can leak Proxy-Authorization headers to the destination server on redirect), fixed in 2.31.0. The same steps work for your own public repositories once they are on the allowlist (see Current limits).

What you need

  • An email address you can receive a verification code at.
  • About ten minutes. A fix job usually starts within a minute and runs for a few minutes in CodeBuild.
  • One of your three free monthly uses. It is only consumed if you actually open the PR.

1. Sign in#

  1. Open the appGo to arachne.withaadhi.com/app. You are sent to the sign-in page.
  2. Create an account or sign inSign-in is email and password (Cognito hosted login). New accounts verify their email with a code before the first sign-in; Arachne refuses an unverified email.
  3. Land on the dashboardYou get a personal organisation automatically. The header shows your usage meter, for example 0 of 3 used this month (resets Dec 1, 2026).

2. Connect a repository#

  1. Open the Connect tab and pick your source controlGitHub, GitLab (gitlab.com or an operator-approved self-hosted host), Bitbucket Cloud, Azure DevOps, or Any Git for any other public HTTPS Git server.
  2. Enter the repositoryEither the short form (owner/repo, group/project, workspace/repo, org/project/repo) or paste the repository URL; Arachne normalises both. Any Git takes the https:// clone URL.
  3. Choose accessPublic repository needs no token. Add a token lets Arachne open pull/merge requests; see Connecting repositories for the exact scopes.
  4. Click Connect repositoryArachne checks the address, detects whether the repository is public, and adds it as a project. Connecting never writes to the repository. Hatchling allows 3 connected repos.

Connecting repositories#

ProviderRepositoryToken for pull/merge requestsPR status
GitHubowner/repo or URLFine-grained personal access token limited to this one repository: Contents read and write, Pull requests read and write (Metadata read is added automatically).Live-tested
GitLabgroup/project (subgroups allowed) or URL; optional self-hosted hostProject access token, role Developer or higher, scope api (merge requests need the API; write_repository alone only covers git push).Beta
Bitbucket Cloudworkspace/repo or URLRepository access token with repository:write and pullrequest:write. App passwords are deprecated by Atlassian and not supported.Beta
Azure DevOpsorg/project/repo or https://dev.azure.com/org/project/_git/repoPersonal access token for that organisation with Code (Read & write) (vso.code_write, which covers pushes and creating pull requests). Pull Request Threads is only for comments and is not needed.Beta
Any Githttps:// clone URL on a public host nameNone: there is no pull request API. Verified fixes are exported as a patch.Patch only

Beta means the GitLab, Bitbucket and Azure DevOps pull/merge request code is verified against each vendor's documented API request and response shapes with mocked HTTP, not yet against a live account.

Public and private repositories

Private repositories: connect with a token to open PRs; scanning and automatic fix jobs currently support public repositories only. Fix jobs clone anonymously in an isolated build that never receives your token, so a private repository's scan or fix is refused with a clear message instead of failing later.

No token? Download the patch#

Every verified fix has a Download patch button on its job page, and Open PR offers it whenever a pull request can't be opened (no token, Any Git, or the provider refused). Apply it from the repository root:

git switch -c remediation/<job-id>
git apply --check arachne-<job-id>.patch && git apply arachne-<job-id>.patch
git commit -am "Remediate vulnerable dependencies"
git push -u origin HEAD   # then open the pull/merge request as usual

3. Scan it#

On the dashboard, click Findings next to the project, then Scan now. Arachne clones the repository, detects the ecosystem, reads the declared dependencies and matches each against the advisory database. Scans are free and never count against your allowance.

For the demo you should see a row like:

PackageVersionAdvisoryFixKEVEPSS
requests2.30.0GHSA-j8r2-6x86-q33q2.31.0(a small probability)

Tip

Findings are sorted most urgent first: anything in CISA's Known Exploited Vulnerabilities list, then by EPSS (the probability of exploitation in the next 30 days).

4. Click "Fix this"#

Fix this appears on findings that have a known fixed version. It queues one fix job for the project: the job plans upgrades for every fixable vulnerable dependency it finds, not only the row you clicked.

5. Read the evidence#

When the job is done, the page shows the outcome, a confidence label and three sections:

SectionWhat to check (demo values)
PlanOne row per package: requests 2.30.0 -> 2.31.0 with status fix_found. The resolver picks the lowest version that fixes every known advisory, respects the package-age cooldown and does not jump a major version without asking.
GatesFive rows, each with a status: clean_room_reinstall, build, independent_rescan, test_delta, policy. All pass means the outcome is verified.
DiffThe exact change that would be pushed. For the demo it is a small edit to the dependency manifest (and lockfile, where there is one).

The outcome reads verified with confidence high: deterministic dependency-only change. If you see failed or unverifiable instead, nothing can be opened and your use has already been returned. What each gate checks.

6. Approve, then open the PR#

  1. Approve PRRecords your decision on the job's open_pr approval. (Reject instead and the reserved use goes back.)
  2. Open PRArachne re-checks that the job is verified and approved, pushes a branch named remediation/<job-id-prefix>-<project> with exactly the reviewed files, and opens the pull request. The PR body is the evidence bundle: plan, gate results and confidence.
  3. DoneA "Pull request opened" card links to the PR, and the meter now reads 1 of 3 used. Review and merge it on GitHub as you would any PR.

Warning

Opening the PR is the step that spends a use. Opening the same job's PR again returns the existing PR and does not count twice.

Do the same from your AI assistant#

Everything above except the approval can be driven over MCP: repos_affected scans, fix_submit queues the job, job_status shows the gates, and pr_open opens the PR once you have approved it in the web app. Start with Install & connect.