Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/bright-ravens-jog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@curl.md/claude': patch
---

Initial release.
7 changes: 5 additions & 2 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,13 @@ curl.md example.com
md example.com

# Add to your agent
opencode plugin @curl.md/opencode
pi install @curl.md/pi
opencode plugin -g @curl.md/opencode
pi install npm:@curl.md/pi
npx @curl.md/amp install

claude plugin marketplace add https://curl.md/claude.json
claude plugin install curl-md@curl-md

# Add skills
npx skills add https://curl.md --yes

Expand Down
1 change: 1 addition & 0 deletions .github/TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
- Remove the temporary TanStack Router pnpm patches in [pnpm-workspace.yaml](file:///Users/tmm/Developer/curl.md/pnpm-workspace.yaml) once [TanStack/router PR #7116](https://github.com/TanStack/router/pull/7116) is merged and released. Re-run `pnpm test:e2e test/e2e/dashboard.test.ts` after dropping them.
- Switch to `cf` CLI for preview workflows https://blog.cloudflare.com/cf-cli-local-explorer/
- Add anchor-aware content narrowing for fetched markdown: narrow by heading slug in `src/md/chunk.ts` using the same slug rules as `src/lib/docs.ts`, apply anchor narrowing before keyword/objective filtering, and add `anchor` to derived-content cache keys once that behavior is enabled.
- Add Claude plugin smoke test (install/bootstrap/startup).
17 changes: 17 additions & 0 deletions .github/actions/setup-playwright/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Setup Playwright
description: Cache and install the Playwright Chromium browser

runs:
using: composite
steps:
- name: Cache Playwright
id: playwright-cache
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}

- name: Install Playwright
if: steps.playwright-cache.outputs.cache-hit != 'true'
shell: bash
run: pnpm exec playwright install --with-deps chromium
2 changes: 1 addition & 1 deletion .github/actions/setup-pnpm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ runs:
shell: bash
run: |
pnpm install --frozen-lockfile --ignore-scripts
node cli/node_modules/bun/install.js
pnpm --dir cli rebuild bun --pending
48 changes: 33 additions & 15 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,12 @@ jobs:
with:
persist-credentials: false

- name: Setup
- name: Setup pnpm
uses: ./.github/actions/setup-pnpm

- name: Setup Playwright
uses: ./.github/actions/setup-playwright

# TODO: Remove `--ignore-registry-errors`
# https://github.com/pnpm/pnpm/issues/11265
- name: Audit dependencies
Expand Down Expand Up @@ -69,6 +72,7 @@ jobs:

- name: Generate code
run: |
pnpm gen:claude
pnpm preconstruct
pnpm gen:types
pnpm db:codegen
Expand All @@ -77,7 +81,7 @@ jobs:
run: pnpm check:types

- name: Test
run: pnpm test --project app --project md --project workers
run: pnpm test --project app --project browser --project md --project workers

- name: Build
run: pnpm build
Expand All @@ -91,7 +95,7 @@ jobs:
with:
persist-credentials: false

- name: Setup
- name: Setup pnpm
uses: ./.github/actions/setup-pnpm

- name: Check dependencies
Expand All @@ -103,9 +107,31 @@ jobs:
- name: Test
run: pnpm test --project cli

- name: Build
run: pnpm --filter curl.md build

plugins:
name: Plugins
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false

- name: Setup pnpm
uses: ./.github/actions/setup-pnpm

- name: Preconstruct
run: |
pnpm preconstruct
pnpm --dir plugins/claude rebuild @anthropic-ai/claude-code --pending

- name: Test
run: pnpm test --project plugins:amp --project plugins:claude --project plugins:opencode --project plugins:pi

- name: Build
run: |
pnpm --filter curl.md build
pnpm --filter @curl.md/amp build

e2e:
Expand All @@ -117,19 +143,11 @@ jobs:
with:
persist-credentials: false

- name: Setup
- name: Setup pnpm
uses: ./.github/actions/setup-pnpm

- name: Cache Playwright
id: playwright-cache
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}

- name: Install Playwright
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: pnpm exec playwright install --with-deps chromium
- name: Setup Playwright
uses: ./.github/actions/setup-playwright

- name: Run E2E tests
run: pnpm test:e2e
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/preview_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,9 @@ jobs:
env:
DB_URL: ${{ steps.ps.outputs.db_url }}

- name: Generate types
- name: Generate code
run: |
pnpm gen:claude
pnpm gen:types
pnpm db:codegen
env:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ jobs:
env:
DB_URL: ${{ secrets.DB_URL }}

- name: Generate types
- name: Generate code
run: |
pnpm gen:claude
pnpm gen:types
pnpm db:codegen
env:
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,9 @@ jobs:
uses: ./.github/actions/setup-pnpm

- name: Build packages
run: |
pnpm --filter curl.md build
pnpm --filter @curl.md/amp build
run: pnpm --filter curl.md --filter @curl.md/amp build

- name: Publish preview
run: |
node --experimental-strip-types scripts/formatPackage.ts
pnpx pkg-pr-new publish --pnpm ./cli ./plugins/amp ./plugins/pi
pnpx pkg-pr-new publish --pnpm ./cli ./plugins/amp ./plugins/claude ./plugins/opencode ./plugins/pi
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/.amp
/.claude
/.opencode
.env*
.vite
Expand Down
2 changes: 1 addition & 1 deletion cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<br>
</p>

### URL to markdown for agents.
### URL to markdown for agents

Turn websites into **optimized, low token output** to **supercharge your context**. Works with **every agent**.

Expand Down
1 change: 1 addition & 0 deletions cli/src/cli.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ test('help', async () => {
Commands:
auth Authenticate with curl.md (login, logout, status)
credits Manage prepaid credits (add, status)
fetch Fetch URL as markdown
org Manage organizations (create, invite, list, member, switch, view)
request Manage requests (list, view)
token Manage API tokens (create, list, delete)
Expand Down
Loading
Loading