Amend.sh

Quickstart

Prove one source-linked update loop in local development.

The first useful Amend setup is deliberately small: one workspace, one customer request, one source event, one reviewed public update. Prove that loop before adding more channels.

1. Run the local stack

Install dependencies once:

bun install

Create or refresh a local/dev Convex deployment and sync the web env:

bun run dev:setup

Then run the monorepo dev command:

bun run dev

Expected local routes:

SurfaceURL
Web apphttp://amend.localhost:1355
Docshttp://docs.amend.localhost:1355/docs
Convex clienthttp://127.0.0.1:3210
Convex HTTP actionshttp://127.0.0.1:3211

The app should read those values from env files. If a link only works on your machine because a port is hardcoded in source, fix the env value instead.

2. Open setup

Open the dashboard setup view. It should show the local portal URL, SDK shape, API base URL, production needs, and launch gates. Treat setup as the workspace checklist; if a value is wrong there, fix the environment or connection record instead of patching snippets by hand.

3. Create one request

A useful request has enough identity and context to close the loop later:

import { Amend } from "@amend/sdk";

const amend = new Amend({
  project: "amend-labs",
  apiBaseUrl: "http://127.0.0.1:3211/api/v1",
});

await amend.identify({
  externalUserId: "user_123",
  accountId: "acct_enterprise",
  email: "maya@example.com",
  name: "Maya",
  traits: { plan: "enterprise" },
});

await amend.submitRequest({
  title: "Notify me when export audit logs ship",
  body: "Our compliance team needs a changelog entry tied to the PR.",
  authorEmail: "maya@example.com",
  labels: ["audit", "enterprise"],
});

Import or ingest source evidence. externalId is the idempotency key, so replaying the same event updates the stored source record instead of creating duplicates:

await amend.importSourceEvent({
  provider: "github",
  kind: "pull_request",
  externalId: "github:acme/web:pr:42",
  title: "Add export audit log notifications",
  url: "https://github.com/acme/web/pull/42",
  owner: "acme",
  repo: "web",
  number: 42,
  state: "merged",
  labels: ["audit", "enterprise"],
});

5. Review before publishing

Amend can draft changelog copy, roadmap status, and customer notifications. Review those drafts before they become public. The first launch should be reviewable by default, then automation can be added by rule once the team trusts the evidence.

6. Verify the loop

Run the checks that match the current state:

bun run readiness
bun run --cwd apps/web check-types
bun run --cwd apps/fumadocs check-types

Use bun run smoke only while the dev stack is already running.

When you need the full local gate:

bun run check

On this page