[
  {
    "path": ".agents/skills/cmd-rss-feed-generator/SKILL.md",
    "content": "---\nname: cmd-rss-feed-generator\ndescription: Generate Python RSS feed scrapers from blog websites, integrated with hourly GitHub Actions\ndisable-model-invocation: false\ncontext: fork\nagent: general-purpose\n---\n\n# RSS Feed Generator Command\n\nYou are the **RSS Feed Generator Agent**, specialized in creating Python scripts that convert blog websites without RSS feeds into properly formatted RSS/XML feeds.\n\nThe script will automatically be included in the hourly GitHub Actions workflow once merged. Always reference existing generators in `feed_generators/` as your primary guide.\n\n## Table of Contents <!-- omit in toc -->\n\n- [Project Context](#project-context)\n- [Workflow](#workflow)\n  - [Step 0: Classify the URL](#step-0-classify-the-url)\n  - [Step 1: Review Existing Feed Generators](#step-1-review-existing-feed-generators)\n  - [Step 2: Analyze the Blog Source](#step-2-analyze-the-blog-source)\n  - [Step 3: Create the Feed Generator Script](#step-3-create-the-feed-generator-script)\n  - [Step 4: Update feeds.yaml](#step-4-update-feedsyaml)\n  - [Step 5: Add Makefile Target](#step-5-add-makefile-target)\n  - [Step 6: Update README](#step-6-update-readme)\n  - [Step 7: Test and Verify](#step-7-test-and-verify)\n- [Reference Examples by Type](#reference-examples-by-type)\n- [Common Patterns](#common-patterns)\n- [Troubleshooting](#troubleshooting)\n\n## Project Context\n\nThis project generates RSS feeds for blogs that don't provide them natively. The system uses:\n\n- Python scripts in `feed_generators/` to scrape and convert blog content\n- `feeds.yaml` as the single source of truth for the feed registry\n- GitHub Actions for automated hourly updates\n- Makefile targets for easy testing and execution\n\n## Workflow\n\n### Step 0: Classify the URL\n\n**Before doing anything else**, determine which of the four cases applies. Each has a different exit path.\n\n---\n\n#### Case A: GitHub repo URL (`https://github.com/{owner}/{repo}`)\n\nGitHub provides native Atom feeds — no scraper needed. Ask the user which to track:\n\n> \"This is a GitHub repo. GitHub provides native Atom feeds — no scraper needed. Which would you like to track?\n>\n> 1. **Releases** — `https://github.com/{owner}/{repo}/releases.atom`\n> 2. **Tags** — `https://github.com/{owner}/{repo}/tags.atom`\n> 3. **Commits (specific branch)** — `https://github.com/{owner}/{repo}/commits/{branch}.atom` _(ask which branch)_\n> 4. **Commits (main)** — `https://github.com/{owner}/{repo}/commits/main.atom`\"\n\nOnce the user picks:\n- Construct the final Atom URL.\n- **Go directly to [Step 6: Update README](#step-6-update-readme)** using `[Official RSS]` format.\n- Do **not** create a script, add to `feeds.yaml`, or add a Makefile target.\n\n---\n\n#### Case B: Site has a native RSS/Atom feed\n\nFetch the page and check for a native feed **before writing any code**:\n\n1. Look for `<link rel=\"alternate\" type=\"application/rss+xml\">` or `type=\"application/atom+xml\"` in `<head>`.\n2. Try common feed paths: `/feed`, `/rss.xml`, `/atom.xml`, `/feed.xml`, `/rss`, `/blog/feed`.\n3. If a working feed URL is found:\n   - **Go directly to [Step 6: Update README](#step-6-update-readme)** using `[Official RSS]` format.\n   - Do **not** create a script, add to `feeds.yaml`, or add a Makefile target.\n\n---\n\n#### Case C: Static site (HTML served without JavaScript rendering)\n\nSignals that `requests` + BeautifulSoup will work:\n- Page HTML contains article content when fetched with `curl` or `requests`\n- No heavy JS framework signals in the HTML (no `<div id=\"__next\">`, no `<div id=\"app\">` with empty body)\n- Articles are visible in `view-source:`\n\n**Reference generator:** `feed_generators/ollama_blog.py` (simplest), `feed_generators/blogsurgeai_feed_generator.py` (more complete), `feed_generators/paulgraham_blog.py`\n\nUse `type: requests` in `feeds.yaml`. Proceed to Step 1.\n\n---\n\n#### Case D: Dynamic site (JavaScript-rendered content)\n\nSignals that Selenium is required:\n- `curl`/`requests` returns a near-empty body or a loading spinner\n- HTML contains `<div id=\"__next\">`, `<div id=\"root\">`, or similar SPA shell\n- Content only appears after JS execution\n\n**Reference generators:** `feed_generators/xainews_blog.py` (Selenium + cache), `feed_generators/anthropic_news_blog.py` (Selenium + cache + incremental), `feed_generators/mistral_blog.py`\n\nUse `type: selenium` in `feeds.yaml`. Proceed to Step 1.\n\n---\n\n### Step 1: Review Existing Feed Generators\n\n**Always read the reference generator(s) for your case before writing any code:**\n\n```bash\n# For static sites\ncat feed_generators/ollama_blog.py\ncat feed_generators/blogsurgeai_feed_generator.py\n\n# For dynamic/Selenium sites\ncat feed_generators/xainews_blog.py\ncat feed_generators/anthropic_news_blog.py\n```\n\nStudy these to understand:\n- Import structure and shared `utils` helpers\n- `FEED_NAME` and `BLOG_URL` constants\n- Date parsing patterns and fallback chains\n- Article extraction logic and CSS selectors\n- Cache + incremental update pattern (Selenium generators)\n- Error handling approaches\n\n### Step 2: Analyze the Blog Source\n\n1. **Fetch the page** (use `fetch_page` from utils for static; Selenium for dynamic).\n2. **Examine the HTML structure** to identify:\n   - Article container CSS selectors\n   - Title elements (h2, h3, h4, or custom)\n   - Date formats and locations\n   - Links to full articles\n   - Description/summary text\n3. **Handle access issues**:\n   - If the site blocks automated requests (403/429), work with a local HTML file first\n   - The user can provide HTML via browser's \"Save Page As\"\n   - Support both local file and web fetching modes in the final script\n\n### Step 3: Create the Feed Generator Script\n\nCreate `feed_generators/<name>_blog.py` following the reference for your case.\n\n**Naming conventions:**\n- Script: `feed_generators/{site_name}_blog.py`  (e.g. `acme_blog.py`)\n- Feed output: `feeds/feed_{site_name}.xml`  (e.g. `feed_acme.xml`)\n- `FEED_NAME` constant: `\"{site_name}\"`  (e.g. `\"acme\"`)\n\n**Required for all generators:**\n- `FEED_NAME` and `BLOG_URL` constants at module level\n- `setup_logging()` from utils\n- Robust date parsing with multiple format fallback (see `xainews_blog.py`)\n- Article deduplication (track seen links with a set)\n- Per-article error handling: log warning and continue, never crash the full run\n- Articles sorted newest-first before feed generation\n\n**Additional requirements for Selenium generators:**\n- Use `setup_selenium_driver()` from utils\n- Use `load_cache()` / `save_cache()` / `merge_entries()` from utils for incremental updates\n- Support `--full` flag via `argparse` for full-reset runs (see `anthropic_news_blog.py`)\n- Use `sort_posts_for_feed()` from utils\n\nSee [Reference Examples by Type](#reference-examples-by-type) for full structural details.\n\n### Step 4: Update feeds.yaml\n\nAdd an entry to `feeds.yaml` in alphabetical order by key:\n\n**For static (requests) sites:**\n```yaml\n  site_name:\n    script: site_name_blog.py\n    type: requests\n    blog_url: https://example.com/blog\n```\n\n**For dynamic (Selenium) sites:**\n```yaml\n  site_name:\n    script: site_name_blog.py\n    type: selenium\n    blog_url: https://example.com/blog\n```\n\n### Step 5: Add Makefile Target\n\nAdd targets to `makefiles/feeds.mk` in alphabetical order.\n\n**For static (requests) sites:**\n```makefile\n.PHONY: feeds_site_name\nfeeds_site_name: ## Generate RSS feed for Site Name\n\t$(call check_venv)\n\t$(call print_info,Generating Site Name feed)\n\t$(Q)uv run feed_generators/site_name_blog.py\n\t$(call print_success,Site Name feed generated)\n```\n\n**For dynamic (Selenium) sites — always include both incremental and full-reset targets:**\n```makefile\n.PHONY: feeds_site_name\nfeeds_site_name: ## Generate RSS feed for Site Name (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Site Name feed)\n\t$(Q)uv run feed_generators/site_name_blog.py\n\t$(call print_success,Site Name feed generated)\n\n.PHONY: feeds_site_name_full\nfeeds_site_name_full: ## Generate RSS feed for Site Name (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Site Name feed - FULL RESET)\n\t$(Q)uv run feed_generators/site_name_blog.py --full\n\t$(call print_success,Site Name feed generated - full reset)\n```\n\n### Step 6: Update README\n\nAdd a row to the table in `README.md` in **alphabetical order** by blog name.\n\n**For scraped feeds** (Cases C and D):\n```markdown\n| [Site Name](https://example.com/blog) | [feed_site_name.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_site_name.xml) |\n```\n\n**For native/official feeds** (Cases A and B):\n```markdown\n| [Site Name](https://example.com) | [Official RSS](https://example.com/feed.xml) |\n```\n\nThe raw GitHub URL format must be exactly:\n`https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_{name}.xml`\n\n### Step 7: Test and Verify\n\n**Run the generator:**\n\n```bash\n# Static sites\nuv run feed_generators/site_name_blog.py\n\n# Dynamic sites (incremental)\nuv run feed_generators/site_name_blog.py\n\n# Dynamic sites (full reset)\nuv run feed_generators/site_name_blog.py --full\n```\n\n**Verify output:**\n\n```bash\nls -la feeds/feed_site_name.xml\nhead -50 feeds/feed_site_name.xml\n```\n\n**Validate the feed:**\n\n```bash\nuv run feed_generators/validate_feeds.py\n```\n\n**Run via Makefile:**\n\n```bash\nmake feeds_site_name\n```\n\n**Integration checklist before declaring done:**\n- [ ] Script follows naming pattern: `feed_generators/{name}_blog.py`\n- [ ] Output file follows pattern: `feeds/feed_{name}.xml`\n- [ ] Entry added to `feeds.yaml` with correct `type`\n- [ ] Makefile target(s) added to `makefiles/feeds.mk` (Selenium: both incremental + `_full`)\n- [ ] README row added in alphabetical order with correct raw GitHub URL\n- [ ] `validate_feeds.py` passes with no errors\n- [ ] Articles are sorted newest-first\n- [ ] Duplicate articles are filtered out\n- [ ] Individual article failures are caught and logged (don't crash the run)\n\n## Reference Examples by Type\n\n### Type 1: Static (requests + BeautifulSoup)\n\n**Simplest:** `feed_generators/ollama_blog.py`\n- Minimal imports, straightforward `fetch_page` + BeautifulSoup\n- Good starting point when the HTML structure is clean\n\n**More complete:** `feed_generators/blogsurgeai_feed_generator.py`\n- `fetch_page` + BeautifulSoup + `dateutil.parser`\n- Better date handling, good error patterns\n\n**Complex static with local-file fallback:** `feed_generators/paulgraham_blog.py`\n\n### Type 2: Dynamic (Selenium + cache)\n\n**Selenium + cache, no local-file fallback:** `feed_generators/mistral_blog.py`\n- Minimal Selenium setup\n- Good for simple JS-rendered pages\n\n**Selenium + cache + incremental + argparse:** `feed_generators/xainews_blog.py`\n- Full incremental update pattern with `--full` reset flag\n- Use this as the base template for most Selenium generators\n\n**Selenium + cache + incremental + multiple entry points:** `feed_generators/anthropic_news_blog.py`\n- Same as xainews but handles multiple sections from one site\n- Reference when a single domain has multiple feeds (e.g. `/news`, `/research`, `/engineering`)\n\n### Type 3: Multiple feeds from one site\n\n**Reference:** `feed_generators/anthropic_eng_blog.py`, `feed_generators/anthropic_research_blog.py`\n- Each section gets its own `FEED_NAME` and script\n- Share the Selenium driver setup pattern\n- Add separate `feeds.yaml` entries and Makefile targets per feed\n\n## Common Patterns\n\n### Official RSS Detection (Case B — run before writing any code)\n\n```python\nimport requests\nfrom bs4 import BeautifulSoup\n\ndef check_native_feed(url):\n    resp = requests.get(url, timeout=10)\n    soup = BeautifulSoup(resp.text, \"html.parser\")\n    link = soup.find(\"link\", rel=\"alternate\", type=lambda t: t and \"rss\" in t or \"atom\" in t)\n    if link:\n        return link.get(\"href\")\n    # Try common paths\n    for path in [\"/feed\", \"/rss.xml\", \"/atom.xml\", \"/feed.xml\", \"/rss\"]:\n        probe = requests.head(url.rstrip(\"/\") + path, timeout=5)\n        if probe.status_code == 200:\n            return url.rstrip(\"/\") + path\n    return None\n```\n\n### Incremental Updates (Selenium generators)\n\nSee `feed_generators/anthropic_news_blog.py` for the `get_existing_links_from_feed()` + `load_cache()` + `merge_entries()` pattern that avoids re-fetching already-seen articles.\n\n### Robust Date Parsing\n\n```python\nDATE_FORMATS = [\n    \"%B %d, %Y\",       # January 15, 2024\n    \"%b %d, %Y\",       # Jan 15, 2024\n    \"%Y-%m-%d\",        # 2024-01-15\n    \"%d %B %Y\",        # 15 January 2024\n    \"%B %Y\",           # January 2024\n]\n\ndef parse_date(date_text):\n    for fmt in DATE_FORMATS:\n        with contextlib.suppress(ValueError):\n            return datetime.strptime(date_text.strip(), fmt).replace(tzinfo=pytz.UTC)\n    return stable_fallback_date()  # from utils\n```\n\n### Local File Fallback (for blocked sites)\n\n```python\nimport argparse, sys\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"html_file\", nargs=\"?\", help=\"Local HTML file (optional)\")\n    args = parser.parse_args()\n\n    if args.html_file:\n        with open(args.html_file) as f:\n            html = f.read()\n    else:\n        html = fetch_page(BLOG_URL)\n    ...\n```\n\n## Troubleshooting\n\n### No articles found\n\n- Verify CSS selectors match actual HTML structure\n- Check if content is dynamically loaded → switch to Selenium (Case D)\n- Add debug logging to show what selectors find\n\n### Date parsing failures\n\n- Add the specific format to `DATE_FORMATS` list\n- Use `stable_fallback_date()` from utils as the final fallback\n\n### Blocked requests (403/429 errors)\n\n- Save page locally with browser \"Save Page As\"\n- Use local file mode for development\n- Try different `User-Agent` headers in `fetch_page`\n- If consistently blocked, switch to Selenium (Case D)\n"
  },
  {
    "path": ".agents/skills/rss-feed-review/SKILL.md",
    "content": "---\nname: cmd-rss-feed-review\ndescription: Review RSS feed generators and their XML output for broken selectors, missing error handling, stale cache logic, feed link conventions, empty/malformed feeds, and duplicate entries. Use when asked to \"review feed\", \"check feed quality\", \"audit feeds\", or after creating/modifying a feed generator.\ndisable-model-invocation: true\n---\n\n# RSS Feed Review\n\nReview RSS feed generators and their output XML for correctness, robustness, and adherence to project conventions.\n\n## Instructions\n\n1. **Determine scope** — review all feed generators by default, or a specific one if the user specifies.\n2. **Read the target generator(s)** and their corresponding `feeds/feed_*.xml` output files.\n3. **Read `feed_generators/utils.py`** to understand shared helpers.\n4. **Evaluate against the checklists below.** For every finding, cite `file_path:line_number`.\n5. **If everything looks good**, say so briefly.\n\n## Generator Code Review\n\n### Selectors & Parsing\n\n- Are CSS selectors specific enough to survive minor site redesigns?\n- Are selectors targeting semantic elements (article, h2) over generated class names?\n- Is there fallback logic if a selector returns no results?\n\n### Error Handling\n\n- Does `fetch_*` use `timeout=` on requests?\n- Are HTTP errors handled (`response.raise_for_status()` or status check)?\n- Are Selenium waits using explicit waits (`WebDriverWait`) rather than `time.sleep()`?\n- Is the Selenium driver properly closed in a `finally` block?\n\n### Feed Link Setup\n\n**Critical convention** (from AGENTS.md):\n\n```python\nfrom utils import setup_feed_links\nsetup_feed_links(fg, blog_url=\"https://...\", feed_name=\"...\")\n```\n\n- The main `<link>` must point to the original blog URL, NOT the feed URL\n- `rel=\"self\"` must be set **first**, `rel=\"alternate\"` must be set **last**\n- Generators should use the `setup_feed_links()` helper from `utils.py`\n- Flag any generator that sets links manually instead of using the helper\n\n### Cache Logic (Pagination & Selenium patterns only)\n\n- Is cache loaded before fetching new articles?\n- Are articles deduped by URL before saving?\n- Is the cache sorted by date descending?\n- Does the `--full` flag correctly bypass incremental logic?\n\n### Pattern Compliance\n\n- **Simple Static**: No cache needed, fetches all posts each run\n- **Pagination + Caching**: URL-based pagination with JSON cache in `cache/`\n- **Selenium + Click**: Uses `undetected-chromedriver`, clicks load-more buttons, caches results\n- Is the generator using the right pattern for how the target site loads content?\n\n## Feed XML Output Review\n\n### Structure\n\n- Does the feed have a `<title>`, `<link>`, and `<description>` in `<channel>`?\n- Does every `<item>` have at least `<title>`, `<link>`, and `<pubDate>`?\n- Is there an `<atom:link rel=\"self\">` pointing to the feed URL?\n- Does the main `<link>` point to the blog (not the feed file)?\n\n### Content Quality\n\n- Are there 0 items? (EMPTY — likely broken scraper)\n- Is the newest item older than 60 days? (STALE — selectors may have broken)\n- Are there duplicate `<link>` values across items?\n- Are dates parseable as RFC 2822 (`pubDate` format)?\n- Are titles non-empty and non-duplicated?\n\n### Encoding\n\n- Is the XML declaration present with `encoding=\"utf-8\"`?\n- Are special characters properly escaped in titles and descriptions?\n\n## Output Format\n\nFor each finding:\n\n```\n[SEVERITY] file_path:line_number — description\n```\n\nSeverities: `ERROR` (broken/will fail), `WARN` (fragile/convention violation), `INFO` (suggestion)\n\nEnd with a summary table:\n\n| Feed | Generator | XML Output | Issues |\n|------|-----------|------------|--------|\n| name | OK/WARN/ERROR | OK/WARN/ERROR | brief note |\n"
  },
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.py]\nindent_style = space\nindent_size = 4\n\n[*.{yml,yaml}]\nindent_style = space\nindent_size = 2\n\n[Makefile]\nindent_style = tab\n\n[*.mk]\nindent_style = tab\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".github/CODEOWNERS",
    "content": "* @Olshansk @oborchers\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: olshansk\ngithub: oborchers\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Ko-fi username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\nliberapay: # Replace with a single Liberapay username\nissuehunt: # Replace with a single IssueHunt username\nlfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry\npolar: # Replace with a single Polar username\nbuy_me_a_coffee: olshansky\nthanks_dev: # Replace with a single thanks.dev username\ncustom: grove.city/olshansky\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/request_rss_feed.md",
    "content": "---\nname: Request a new RSS feed\nabout: Request an RSS feed for a new blog\ntitle: \"[RSS Feed Request] Blog Name\"\nlabels: enhancement\nassignees: ''\n\n---\n\n## Blog Information\n\n**Blog Name:**\n<!-- Please provide the name of the blog -->\n\n**Blog URL:**\n<!-- Please provide the URL of the blog -->\n\n## Additional Information\n\n**Description:**\n<!-- Any additional information or description about the blog -->\n\n**Note:**\nPlease ensure that you provide the link to the actual blog.\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE/add_new_feed.md",
    "content": "---\nname: Add a new RSS feed\nabout: Contribute a new RSS feed to the repository\ntitle: \"[New RSS Feed] <Feed Name>\"\nlabels: new-feed\nassignees: ''\n\n---\n\n## Checklist\n\n- [ ] Add the `new-feed` label\n- [ ] Update the `Makefile` with a new target for generating the feed\n- [ ] Ensure the title of the pull request is `[New RSS Feed] <Feed Name>`\n- [ ] Do anything else you deem proper or idiomatic for a good developer experience\n\n## Description\n\nPlease provide a brief description of the new RSS feed and any additional information that might be relevant.\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    groups:\n      actions:\n        patterns: [\"*\"]\n\n  - package-ecosystem: \"uv\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    groups:\n      minor-patch:\n        update-types: [\"minor\", \"patch\"]\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "content": "## Summary\n\n<!-- What does this PR do and why? -->\n\n## Changes\n\n<!-- Key changes, bullet points preferred -->\n\n-\n\n## Test plan\n\n- [ ] Ran affected feed generators locally\n- [ ] Validated feed XML output (`uv run feed_generators/validate_feeds.py`)\n- [ ] No existing feeds broken\n"
  },
  {
    "path": ".github/workflows/cleanup_deprecated_feeds.yml",
    "content": "name: Cleanup Deprecated Feeds\n\n# Stage 2 of the feed retirement lifecycle (Stage 1 is human-driven in\n# deprecate_feed.py + scraper removal). This workflow deletes feed XMLs whose\n# tombstone notice is older than 90 days, then pushes the deletion directly to\n# main. Requires main to accept bot pushes from github-actions[bot]; if branch\n# protection is changed to require PR review, convert this step to open a PR\n# (peter-evans/create-pull-request) instead.\n\non:\n  schedule:\n    # First of every month, noon UTC.\n    - cron: \"0 12 1 * *\"\n  workflow_dispatch:\n\nconcurrency:\n  group: cleanup-deprecated-feeds\n  cancel-in-progress: false\n\npermissions:\n  contents: write\n\njobs:\n  cleanup:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Install uv and Python\n        uses: astral-sh/setup-uv@v8.0.0\n        with:\n          enable-cache: true\n          python-version: \"3.11\"\n\n      - name: Delete expired deprecated feeds\n        run: |\n          set -e\n          uv sync\n          uv run feed_generators/cleanup_deprecated_feeds.py --apply\n\n      - name: Commit and push deletions\n        if: github.ref == 'refs/heads/main'\n        run: |\n          git config --global user.name 'github-actions[bot]'\n          git config --global user.email 'github-actions[bot]@users.noreply.github.com'\n          git add -A feeds/\n          if git diff --staged --quiet; then\n            echo \"No deprecated feeds expired; nothing to commit\"\n          else\n            git commit -m 'Auto-cleanup: remove expired deprecated feeds'\n            git push || { git pull --rebase && git push; }\n          fi\n"
  },
  {
    "path": ".github/workflows/label_new_feed.yml",
    "content": "name: Label New Feed PRs\n\non:\n  pull_request_target:\n    types: [opened, edited, reopened]\n\njobs:\n  add-label:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Check PR title\n        id: check_title\n        run: |\n          if echo '${{ github.event.pull_request.title }}' | grep -q '\\[New RSS Feed\\]'; then\n            echo \"has_tag=true\" >> $GITHUB_OUTPUT\n          else\n            echo \"has_tag=false\" >> $GITHUB_OUTPUT\n          fi\n\n      - name: Add label\n        if: steps.check_title.outputs.has_tag == 'true'\n        uses: actions/github-script@v7\n        with:\n          script: |\n            await github.rest.issues.addLabels({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              issue_number: context.issue.number,\n              labels: ['new-feed']\n            })\n"
  },
  {
    "path": ".github/workflows/lint.yml",
    "content": "name: Lint\n\non:\n  pull_request:\n    paths:\n      - \"**.py\"\n      - \"pyproject.toml\"\n  push:\n    branches: [main]\n    paths:\n      - \"**.py\"\n      - \"pyproject.toml\"\n\njobs:\n  lint:\n    runs-on: ubuntu-latest\n    timeout-minutes: 5\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Set up Python\n        uses: actions/setup-python@v6\n        with:\n          python-version: \"3.11\"\n\n      - name: Install uv\n        uses: astral-sh/setup-uv@v8.0.0\n        with:\n          enable-cache: true\n\n      - name: Lint and format check\n        run: |\n          uv sync --group dev\n          uv run ruff check .\n          uv run ruff format --check .\n"
  },
  {
    "path": ".github/workflows/run_feeds.yml",
    "content": "name: Run Feeds\n\non:\n  schedule:\n    - cron: \"0 * * * *\"\n  workflow_dispatch:\n\nconcurrency:\n  group: request-feeds\n  cancel-in-progress: true\n\njobs:\n  run-feeds:\n    runs-on: ubuntu-latest\n    timeout-minutes: 30\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Set up Python\n        uses: actions/setup-python@v6\n        with:\n          python-version: \"3.11\"\n\n      - name: Install uv\n        uses: astral-sh/setup-uv@v8.0.0\n        with:\n          enable-cache: true\n\n      - name: Install dependencies and run feeds\n        timeout-minutes: 20\n        run: |\n          set -e\n          uv sync\n          uv run feed_generators/run_all_feeds.py --skip-selenium\n\n      - name: Commit and push feeds\n        if: github.ref == 'refs/heads/main'\n        run: |\n          git config --global user.name 'github-actions[bot]'\n          git config --global user.email 'github-actions[bot]@users.noreply.github.com'\n          git add feeds/*.xml\n          git stash\n          git pull --rebase || { echo \"Rebase failed, aborting and retrying with merge\"; git rebase --abort 2>/dev/null; git pull; }\n          git stash pop || true\n          git add feeds/*.xml\n          if git diff --staged --quiet; then\n            echo \"No changes to commit\"\n          else\n            git commit -m 'Update RSS feeds'\n            git push || { git pull --rebase && git push; }\n          fi\n"
  },
  {
    "path": ".github/workflows/run_selenium_feeds.yml",
    "content": "name: Run Selenium Feeds\n\non:\n  schedule:\n    - cron: \"30 * * * *\"\n  workflow_dispatch:\n\nconcurrency:\n  group: selenium-feeds\n  cancel-in-progress: true\n\njobs:\n  run-selenium-feeds:\n    runs-on: ubuntu-latest\n    timeout-minutes: 60\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Set up Python\n        uses: actions/setup-python@v6\n        with:\n          python-version: \"3.11\"\n\n      - name: Install uv\n        uses: astral-sh/setup-uv@v8.0.0\n        with:\n          enable-cache: true\n\n      - name: Install Chrome for Selenium\n        uses: browser-actions/setup-chrome@v2\n        with:\n          chrome-version: stable\n          install-chromedriver: true\n\n      - name: Install dependencies and run Selenium feeds\n        timeout-minutes: 45\n        run: |\n          set -e\n          uv sync\n          uv run feed_generators/run_all_feeds.py --selenium-only\n\n      - name: Commit and push feeds\n        if: github.ref == 'refs/heads/main'\n        run: |\n          git config --global user.name 'github-actions[bot]'\n          git config --global user.email 'github-actions[bot]@users.noreply.github.com'\n          git add feeds/*.xml\n          git stash\n          git pull --rebase || { echo \"Rebase failed, aborting and retrying with merge\"; git rebase --abort 2>/dev/null; git pull; }\n          git stash pop || true\n          git add feeds/*.xml\n          if git diff --staged --quiet; then\n            echo \"No changes to commit\"\n          else\n            git commit -m 'Update RSS feeds (Selenium)'\n            git push || { git pull --rebase && git push; }\n          fi\n"
  },
  {
    "path": ".github/workflows/test_feed.yml",
    "content": "name: Test Feed Generation\n\non:\n  workflow_dispatch:\n\njobs:\n  test-feed:\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Set up Python\n        uses: actions/setup-python@v6\n        with:\n          python-version: \"3.11\"\n\n      - name: Install uv\n        uses: astral-sh/setup-uv@v8.0.0\n        with:\n          enable-cache: true\n\n      - name: Install dependencies and run test feed\n        run: |\n          set -e\n          uv sync\n          uv run feed_generators/ollama_blog.py\n\n      - name: Upload test feed artifact\n        uses: actions/upload-artifact@v7\n        with:\n          name: feed_test\n          path: feeds/feed_ollama.xml\n"
  },
  {
    "path": ".github/workflows/validate_feeds.yml",
    "content": "name: Validate Feeds\n\non:\n  workflow_run:\n    workflows: [\"Run Feeds\", \"Run Selenium Feeds\"]\n    types: [completed]\n  workflow_dispatch:\n\njobs:\n  validate:\n    if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}\n    runs-on: ubuntu-latest\n    timeout-minutes: 10\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n        with:\n          ref: main\n\n      - name: Set up Python\n        uses: actions/setup-python@v6\n        with:\n          python-version: \"3.11\"\n\n      - name: Install uv\n        uses: astral-sh/setup-uv@v8.0.0\n        with:\n          enable-cache: true\n\n      - name: Install dependencies and validate all feeds\n        run: |\n          uv sync\n          uv run feed_generators/validate_feeds.py\n"
  },
  {
    "path": ".gitignore",
    "content": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# UV\n#   Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.\n#   This is especially recommended for binary packages to ensure reproducibility, and is more\n#   commonly ignored for libraries.\n#uv.lock\n\n# poetry\n#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.\n#   This is especially recommended for binary packages to ensure reproducibility, and is more\n#   commonly ignored for libraries.\n#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control\n#poetry.lock\n\n# pdm\n#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.\n#pdm.lock\n#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it\n#   in version control.\n#   https://pdm.fming.dev/latest/usage/project/#working-with-version-control\n.pdm.toml\n.pdm-python\n.pdm-build/\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/\n\n# PyCharm\n#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can\n#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore\n#  and can be added to the global gitignore or merged into this file.  For a more nuclear\n#  option (not recommended) you can uncomment the following to ignore the entire idea folder.\n#.idea/\n\n# PyPI configuration file\n.pypirc\n\n# Claude Sync\n.claudesync\n\n# Visual Studio\n.vscode\n\n# HTML\n*.html\n\n# Cache (keep .gitkeep but ignore JSON cache files)\ncache/*.json\n\n# Agent tool configs (ignore contents, whitelist skill symlinks)\n.claude/*\n!.claude/skills/\n.claude/skills/*\n!.claude/skills/cmd-rss-feed-generator\n!.claude/skills/rss-feed-review\n.codex/*\n!.codex/skills/\n.codex/skills/*\n!.codex/skills/cmd-rss-feed-generator\n!.codex/skills/rss-feed-review\n.codex-home/*\n!.codex-home/skills/\n.codex-home/skills/*\n!.codex-home/skills/cmd-rss-feed-generator\n!.codex-home/skills/rss-feed-review\n\n# Agent skills evals (never commit)\n.agents/skills/*/evals/\n\nPR_DESCRIPTION.md\n"
  },
  {
    "path": ".markdownlint.json",
    "content": "{\n  \"MD033\": {\n    \"allowed_elements\": [\n      \"Tabs\",\n      \"TabItem\",\n      \"ReactPlayer\",\n      \"details\",\n      \"summary\",\n      \"div\",\n      \"br\",\n      \"img\",\n      \"a\",\n      \"h1\",\n      \"h2\",\n      \"h3\",\n      \"h4\",\n      \"h5\",\n      \"h6\"\n    ]\n  },\n  \"MD013\": false,\n  \"MD046\": false,\n  \"MD036\": false\n}\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "content": "repos:\n  - repo: https://github.com/pre-commit/pre-commit-hooks\n    rev: v6.0.0\n    hooks:\n      - id: trailing-whitespace\n      - id: end-of-file-fixer\n      - id: check-yaml\n      - id: check-toml\n      - id: check-merge-conflict\n\n  - repo: https://github.com/astral-sh/ruff-pre-commit\n    rev: v0.15.10\n    hooks:\n      - id: ruff\n        args: [--fix]\n      - id: ruff-format\n"
  },
  {
    "path": "AGENTS.md",
    "content": "# AGENTS.md <!-- omit in toc -->\n\nInstructions for Claude Code and contributors working on this repository.\n\n## Table of Contents <!-- omit in toc -->\n\n- [Project Overview](#project-overview)\n- [Commands](#commands)\n- [Architecture](#architecture)\n  - [Feed Generator Patterns](#feed-generator-patterns)\n  - [When to Use Each Pattern](#when-to-use-each-pattern)\n  - [Feed Link Setup (Important)](#feed-link-setup-important)\n- [Adding a New Feed](#adding-a-new-feed)\n  - [Step 1: Analyze the Target Blog](#step-1-analyze-the-target-blog)\n  - [Step 2: Download HTML Sample](#step-2-download-html-sample)\n  - [Step 3: Generate the Feed Script](#step-3-generate-the-feed-script)\n  - [Step 4: Test Locally](#step-4-test-locally)\n  - [Step 5: Register the Feed](#step-5-register-the-feed)\n  - [Step 6: PR Checklist](#step-6-pr-checklist)\n- [Deprecating a Feed](#deprecating-a-feed)\n- [Troubleshooting](#troubleshooting)\n- [GitHub Actions](#github-actions)\n\n## Project Overview\n\nRSS Feed Generator creates RSS feeds for blogs that don't provide them natively. Feed generators scrape blog pages and output `feed_*.xml` files to the `feeds/` directory. A GitHub Action runs hourly to regenerate and commit updated feeds.\n\n## Commands\n\n```bash\n# Environment setup\nmake env_setup            # Install dependencies (uses uv sync)\nmake dev_setup            # Install dev dependencies + pre-commit hooks\n\n# Generate feeds\nmake feeds_generate_all   # Run all feed generators\nmake feeds_<name>         # Run specific feed (e.g., feeds_ollama, feeds_anthropic_news)\n\n# Development\nmake dev_lint             # Check code with ruff\nmake dev_lint_fix         # Auto-fix and format with ruff\nmake dev_format           # Alias for dev_lint_fix\nmake dev_test_feed        # Run test feed generator\n\n# Run single generator directly\nuv run feed_generators/ollama_blog.py\n\n# CI/CD\nmake ci_trigger_feeds_workflow    # Trigger GitHub Action manually\nmake ci_run_feeds_workflow_local  # Test workflow locally with act\n```\n\n## Architecture\n\n```\nfeed_generators/           # Python scripts that scrape blogs and generate RSS\n  run_all_feeds.py         # Orchestrator that runs all generators\n  utils.py                 # Shared utilities (setup_feed_links, get_project_root, etc.)\n  <source>_blog.py         # Individual feed generators\nfeeds/                     # Output directory for feed_*.xml files\ncache/                     # JSON cache for paginated/dynamic feeds\nmakefiles/                 # Modular Makefile includes (feeds.mk, env.mk, dev.mk, ci.mk)\n```\n\n### Feed Generator Patterns\n\nThree patterns exist based on how the target site loads content:\n\n#### 1. Simple Static (Default) <!-- omit in toc -->\n\nFor blogs where all content loads on first request.\n\n**Examples**: `ollama_blog.py`, `paulgraham_blog.py`, `hamel_blog.py`\n\n**Key functions**:\n- `fetch_blog_content(url)` - HTTP request with User-Agent header\n- `parse_blog_html(html)` - BeautifulSoup parsing for posts\n- `generate_rss_feed(posts)` - Create feed using `feedgen`\n- `save_rss_feed(fg, name)` - Write to `feeds/feed_{name}.xml`\n\n**Cache**: Not needed (all posts fetched each run)\n\n#### 2. Pagination + Caching <!-- omit in toc -->\n\nFor blogs with \"Load More\" or pagination that uses URL query params (`?page=2`).\n\n**Examples**: `cursor_blog.py`, `dagster_blog.py`\n\n**Key functions**:\n- `load_cache()` / `save_cache(posts)` - JSON persistence in `cache/<source>_posts.json`\n- `merge_posts(new, cached)` - Dedupe by URL, merge, sort by date\n- `fetch_all_pages()` - Follow pagination until no next link\n\n**Cache behavior**:\n- **First run / `--full` flag**: Fetch all pages, populate cache\n- **Incremental (default)**: Fetch page 1 only, merge with cache\n- **Dedupe**: By URL, sorted by date descending\n\n#### 3. Selenium + Click \"Load More\" <!-- omit in toc -->\n\nFor JS-heavy sites where content loads dynamically via JavaScript button clicks.\n\n**Examples**: `anthropic_news_blog.py` (reference implementation), `anthropic_research_blog.py`, `openai_research_blog.py`, `xainews_blog.py`\n\n**Key functions**:\n- `setup_selenium_driver()` - Headless Chrome with `undetected-chromedriver`\n- `fetch_news_content(max_clicks)` - Load page, click buttons, return final HTML\n- `load_cache()` / `save_cache(articles)` - JSON persistence in `cache/<source>_posts.json`\n- `merge_articles(new, cached)` - Dedupe by link, merge, sort by date\n\n**Selenium specifics**:\n- Uses `undetected-chromedriver` to avoid bot detection\n- Clicks \"See more\"/\"Load more\" button repeatedly\n- Waits for content to load between clicks\n- `max_clicks` parameter controls depth (20 for full, 2-3 for incremental)\n\n**Cache behavior** (see `anthropic_news_blog.py` for reference):\n- **First run / `--full` flag**: Click up to 20 times, fetch all articles, populate cache\n- **Incremental (default)**: Click 2-3 times (recent articles), merge with cache\n- **Dedupe**: By URL, sorted by date descending\n\n### When to Use Each Pattern\n\n| Site Behavior | Pattern | Example | Cache? |\n|--------------|---------|---------|--------|\n| All posts on single page | Simple Static | `ollama_blog.py` | No |\n| URL-based pagination (`?page=2`) | Pagination + Caching | `dagster_blog.py` | Yes |\n| JS button loads more content | Selenium + Click | `anthropic_news_blog.py` | Yes |\n| JS-rendered page (curl returns empty shell) | Selenium + Wait | `xainews_blog.py` | Yes |\n\n**Key libraries**: `requests`, `beautifulsoup4`, `feedgen`, `selenium`, `undetected-chromedriver`\n\n### Feed Link Setup (Important)\n\nThe main `<link>` element must point to the original blog, not the feed URL. Use the helper:\n\n```python\nfrom utils import setup_feed_links\n\nfg = FeedGenerator()\n# ... set title, description, etc.\nsetup_feed_links(fg, blog_url=\"https://example.com/blog\", feed_name=\"example\")\n```\n\n**Why this matters**: In `feedgen`, link order determines which URL becomes the main `<link>`:\n- `rel=\"self\"` must be set **first** → becomes `<atom:link rel=\"self\">`\n- `rel=\"alternate\"` must be set **last** → becomes the main `<link>`\n\nWrong order produces `<link>https://.../feed_example.xml</link>` instead of the blog URL.\n\n## Adding a New Feed\n\n### Step 1: Analyze the Target Blog\n\nBefore writing code, determine which pattern to use:\n\n1. **Open the blog** in your browser\n2. **Check for pagination**:\n   - URL changes to `?page=2` or `/page/2` → **Pattern 2 (Pagination)**\n   - No URL change but \"Load More\" button exists → **Pattern 3 (Selenium)**\n   - All posts visible on single page → **Pattern 1 (Simple Static)**\n3. **Check for JavaScript loading**:\n   - Open DevTools → Network tab → Reload\n   - If posts appear after JS execution (XHR requests) → **Pattern 3 (Selenium)**\n   - If posts are in initial HTML → **Pattern 1 or 2**\n\n### Step 2: Download HTML Sample\n\n```bash\n# For static sites (Pattern 1 or 2)\ncurl -o sample.html \"https://example.com/blog\"\n\n# For JS-heavy sites (Pattern 3)\n# Use browser: View Page Source won't work\n# Instead: DevTools → Elements → Copy outer HTML after page loads\n```\n\n### Step 3: Generate the Feed Script\n\nUse Claude Code with the generator prompt:\n\n```bash\nUse /cmd-rss-feed-generator to convert @sample.html to a RSS feed for https://example.com/blog\n```\n\nClaude will:\n- Analyze the HTML structure\n- Choose the appropriate pattern\n- Generate `feed_generators/<source>_blog.py`\n\n### Step 4: Test Locally\n\n```bash\n# Install dependencies\nmake env_setup\n\n# Run the generator\nuv run feed_generators/<source>_blog.py\n\n# Verify output\ncat feeds/feed_<source>.xml | head -50\n\n# For paginated feeds, test full fetch\nuv run feed_generators/<source>_blog.py --full\n```\n\n**Verify**:\n- [ ] Feed XML is valid (no parsing errors)\n- [ ] `<link>` points to blog URL, not feed URL\n- [ ] Posts have titles, dates, and links\n- [ ] Dates are in correct order (newest first)\n\n### Step 5: Register the Feed\n\n1. **Add to `feeds.yaml`** (the feed registry):\n   ```yaml\n   <source>:\n     script: <source>_blog.py\n     type: requests  # or \"selenium\" for JS-heavy sites\n     blog_url: https://example.com/blog\n   ```\n\n2. **Add Make target** in `makefiles/feeds.mk`:\n   ```makefile\n   .PHONY: feeds_<source>\n   feeds_<source>: ## Generate RSS feed for <Source Name>\n   \t$(call check_venv)\n   \t$(call print_info,Generating <Source Name> feed)\n   \t$(Q)uv run feed_generators/<source>_blog.py\n   \t$(call print_success,<Source Name> feed generated)\n   ```\n\n3. **Update README.md table** (alphabetical order):\n   ```markdown\n   | [Source Name](https://example.com/blog) | [feed_<source>.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_<source>.xml) |\n   ```\n\n### Step 6: PR Checklist\n\nBefore submitting your PR, verify:\n\n- [ ] `make dev_format` passes (code formatting)\n- [ ] `uv run feed_generators/<source>_blog.py` runs without errors\n- [ ] `feeds/feed_<source>.xml` is generated and valid\n- [ ] Feed registered in `feeds.yaml`\n- [ ] Make target added to `makefiles/feeds.mk`\n- [ ] README.md table updated\n- [ ] For paginated/dynamic feeds: cache file created in `cache/` on first run\n- [ ] Feed `<link>` points to original blog (not the XML feed URL)\n\n## Deprecating a Feed\n\nWhen a blog launches an official RSS feed (or we otherwise decide to retire a scraper), follow the two-stage retirement process. Stage 1 is manual and lands in a single PR. Stage 2 is automated.\n\n### Stage 1: Inject the notice and tear down the code (manual, one PR)\n\n1. **Inject a sunset notice into the feed XML**:\n   ```bash\n   uv run feed_generators/deprecate_feed.py \\\n       --feed=<name> \\\n       --message=\"Site X now publishes an official RSS feed.\" \\\n       --alternative=\"https://example.com/feed.xml\"\n   ```\n   This adds a single `<item>` at the top of `feeds/feed_<name>.xml` with a stable GUID (so repeated runs are idempotent). Subscribers see the notice in their reader the next time they poll the feed.\n\n2. **Remove everything except the XML**, in the same PR:\n   - Delete `feed_generators/<name>_blog.py`.\n   - Remove the `<name>:` entry from `feeds.yaml`.\n   - Remove the `feeds_<name>` target (and any `_full` variant) from `makefiles/feeds.mk`.\n   - Remove the `<name>` row from the README table (or update it to point at the official feed only).\n   - `cache/<name>_posts.json` is gitignored; nothing to do there.\n\n3. **Leave `feeds/feed_<name>.xml`** in place. It now carries the notice as its newest `<item>` plus the historical posts. Subscribers can read both.\n\n### Stage 2: Automatic deletion (workflow, ~90 days later)\n\n`.github/workflows/cleanup_deprecated_feeds.yml` runs monthly. It invokes `feed_generators/cleanup_deprecated_feeds.py --apply`, which scans `feeds/feed_*.xml` for the `deprecation-notice-<name>` GUID, parses the notice's `<pubDate>`, and deletes any XML whose notice is older than 90 days. The deletion is committed to `main` directly; git history preserves the file for recovery.\n\nTo preview what would be removed without touching anything:\n```bash\nuv run feed_generators/cleanup_deprecated_feeds.py\n```\nTo force-test deletion locally (reversible with `git checkout`):\n```bash\nuv run feed_generators/cleanup_deprecated_feeds.py --apply --threshold-days=0\n```\n\n## Troubleshooting\n\n**\"No posts found\" or empty feed**\n- HTML structure may have changed; re-download sample and update selectors\n- For Selenium: increase wait times or check if site blocks headless browsers\n\n**Feed `<link>` shows XML URL instead of blog URL**\n- Use `setup_feed_links()` helper from `utils.py`\n- Ensure `rel=\"self\"` is set before `rel=\"alternate\"`\n\n**Selenium bot detection**\n- `undetected-chromedriver` should handle most cases\n- Try increasing wait times between clicks\n- Some sites may require additional headers or cookies\n\n**Cache not updating**\n- Delete `cache/<source>_posts.json` and run with `--full`\n- Check `merge_posts()` deduplication logic\n\n**Date parsing errors**\n- Add the date format to the `date_formats` list\n- Use `stable_fallback_date()` for entries without parseable dates\n\n**Empty feed after Selenium run (0 items)**\n- The site is JS-rendered but `curl` returns a minimal HTML shell — confirm with `curl -sL <url> | wc -c` (< 10KB = JS-rendered)\n- Capture Selenium page source to a file and inspect actual selectors: element classes on JS-rendered pages often differ from View Source\n- Always call `deserialize_entries()` on cached data before passing to `merge_entries()` — ISO strings don't sort correctly as datetimes\n\n## GitHub Actions\n\n- `run_feeds.yml` - Runs hourly, executes `run_all_feeds.py`, commits updated XML files\n- `test_feed.yml` - Tests feed generation on PRs (runs `ollama_blog.py`)\n"
  },
  {
    "path": "CLAUDE.md",
    "content": "# CLAUDE.md\n\n⚠️ This file is intentionally minimal.\n\n**Authoritative project instructions live in `AGENTS.md`.**\n\nYou must:\n\n1. Open and follow `AGENTS.md` before doing any work.\n2. Treat `AGENTS.md` as the single source of truth for all operations.\n3. Update `AGENTS.md` (not this file) when guidelines/architecture/standards change.\n\n➡️ Read now: [AGENTS.md](./AGENTS.md)\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing\n\n## Dev Setup\n\n```bash\nuv sync --group dev\npre-commit install\n```\n\nRun `make help` to see all available targets with descriptions.\n\n## Running Feeds\n\n**Run all request-based feeds:**\n\n```bash\nuv run feed_generators/run_all_feeds.py --skip-selenium\n```\n\n**Run a single feed by name** (from `feeds.yaml` registry):\n\n```bash\nuv run feed_generators/run_all_feeds.py --feed=ollama\nuv run feed_generators/run_all_feeds.py --feed=dagster --full  # full reset\n```\n\n**Or run the script directly:**\n\n```bash\nuv run feed_generators/ollama_blog.py\nuv run feed_generators/dagster_blog.py --full\n```\n\n## Code Style\n\nThis project uses [Ruff](https://docs.astral.sh/ruff/) for linting and formatting, enforced via pre-commit hooks and a [CI workflow](.github/workflows/lint.yml).\n\n**Check only:**\n\n```bash\nmake dev_lint\n```\n\n**Auto-fix + format:**\n\n```bash\nmake dev_lint_fix\n```\n\n## Adding a New Feed\n\nSee [AGENTS.md](./AGENTS.md) for the complete guide on creating feed generators.\n\n**Recommended workflow**: Use [Claude Code](https://claude.com/claude-code) with the [Playwright MCP](https://github.com/microsoft/playwright-mcp) to inspect the target site, understand its structure, and generate the scraper.\n\n**When to write a custom scraper**: Only if the site has no official RSS feed, or if a custom parser adds significant value over the official feed (e.g., full content extraction, structured metadata). Simple filtering (e.g., category-only views) does not justify a custom scraper. Check the README for sites that already have official feeds.\n\n### Agent Skills\n\nThis repo includes two [Claude Code skills](.agents/skills/) to streamline feed development:\n\n- **`/cmd-rss-feed-generator`** — Generate a new feed scraper from a blog URL or HTML sample. Analyzes the site, picks the right pattern, and scaffolds the generator + Makefile target.\n- **`/rss-feed-review`** — Review feed generators and their XML output for broken selectors, missing error handling, stale feeds, and convention violations.\n\n## Pull Requests\n\n1. Branch from `main`\n2. Follow the existing generator patterns in `feed_generators/`\n3. Test your feed locally before submitting\n4. Reference any related issues in the PR description\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2025 Daniel Olshansky\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "#########################\n### Makefile (root)   ###\n#########################\n\n.DEFAULT_GOAL := help\n\n# Patterns for classified help categories\nHELP_PATTERNS := \\\n\t'^help:' \\\n\t'^env_.*:' \\\n\t'^feeds_.*:' \\\n\t'^dev_.*:' \\\n\t'^ci_.*:' \\\n\t'^clean_.*:' \\\n\t'^debug_vars:'\n\n.PHONY: help\nhelp: ## Show all available targets with descriptions\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)$(CYAN)📋 RSS Feed Generator - Makefile Targets$(RESET)\\n\"\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)=== 📋 Information & Discovery ===$(RESET)\\n\"\n\t@grep -h -E '^(help|help-unclassified):.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = \":.*?## \"}; {printf \"$(CYAN)%-40s$(RESET) %s\\n\", $$1, $$2}'\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)=== 🐍 Environment Setup ===$(RESET)\\n\"\n\t@grep -h -E '^env_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = \":.*?## \"}; {printf \"$(CYAN)%-40s$(RESET) %s\\n\", $$1, $$2}' | sort -u\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)=== 🛠️ Development ===$(RESET)\\n\"\n\t@grep -h -E '^dev_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = \":.*?## \"}; {printf \"$(CYAN)%-40s$(RESET) %s\\n\", $$1, $$2}' | sort -u\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)=== 🚀 CI/CD ===$(RESET)\\n\"\n\t@grep -h -E '^ci_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = \":.*?## \"}; {printf \"$(CYAN)%-40s$(RESET) %s\\n\", $$1, $$2}' | sort -u\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)=== 🧹 Cleaning ===$(RESET)\\n\"\n\t@grep -h -E '^clean_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = \":.*?## \"}; {printf \"$(CYAN)%-40s$(RESET) %s\\n\", $$1, $$2}' | sort -u\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)=== 📡 RSS Feed Generation ===$(RESET)\\n\"\n\t@grep -h -E '^feeds_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = \":.*?## \"}; {printf \"$(CYAN)%-40s$(RESET) %s\\n\", $$1, $$2}' | sort -u\n\t@printf \"\\n\"\n\t@printf \"$(YELLOW)Usage:$(RESET) make <target>\\n\"\n\t@printf \"\\n\"\n\n.PHONY: help-unclassified\nhelp-unclassified: ## Show all unclassified targets\n\t@printf \"\\n\"\n\t@printf \"$(BOLD)$(CYAN)📦 Unclassified Targets$(RESET)\\n\"\n\t@printf \"\\n\"\n\t@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | sed 's/:.*//g' | sort -u > /tmp/all_targets.txt\n\t@( \\\n\t\tfor pattern in $(HELP_PATTERNS); do \\\n\t\t\tgrep -h -E \"$pattern.*?## .*\\$$\" $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null || true; \\\n\t\tdone \\\n\t) | sed 's/:.*//g' | sort -u > /tmp/classified_targets.txt\n\t@comm -23 /tmp/all_targets.txt /tmp/classified_targets.txt | while read target; do \\\n\t\tgrep -h -E \"^$$target:.*?## .*\\$$\" $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = \":.*?## \"}; {printf \"$(CYAN)%-40s$(RESET) %s\\n\", $$1, $$2}'; \\\n\tdone\n\t@rm -f /tmp/all_targets.txt /tmp/classified_targets.txt\n\t@printf \"\\n\"\n\n################\n### Imports  ###\n################\n\ninclude ./makefiles/colors.mk\ninclude ./makefiles/common.mk\ninclude ./makefiles/env.mk\ninclude ./makefiles/feeds.mk\ninclude ./makefiles/dev.mk\ninclude ./makefiles/ci.mk\n\n############################\n### Legacy Target Aliases ##\n############################\n\n# Maintain backwards compatibility with existing targets\n\n.PHONY: check-env\ncheck-env: ## (Legacy) Check if virtual environment is activated\n\t$(call check_venv)\n\n.PHONY: env_create\nenv_create: env_setup ## (Legacy) Create virtual environment\n\n.PHONY: uvx_install\nuvx_install: env_setup ## (Legacy) Install dependencies\n\n.PHONY: clean\nclean: clean_env clean_feeds ## (Legacy) Clean all generated files\n\n.PHONY: py_format\npy_format: dev_format ## (Legacy) Format Python code\n\n.PHONY: generate_all_feeds\ngenerate_all_feeds: feeds_generate_all ## (Legacy) Generate all RSS feeds\n\n.PHONY: generate_anthropic_news_feed\ngenerate_anthropic_news_feed: feeds_anthropic_news ## (Legacy) Generate Anthropic News feed\n\n.PHONY: generate_anthropic_engineering_feed\ngenerate_anthropic_engineering_feed: feeds_anthropic_engineering ## (Legacy) Generate Anthropic Engineering feed\n\n.PHONY: generate_anthropic_research_feed\ngenerate_anthropic_research_feed: feeds_anthropic_research ## (Legacy) Generate Anthropic Research feed\n\n.PHONY: generate_anthropic_changelog_claude_code_feed\ngenerate_anthropic_changelog_claude_code_feed: feeds_anthropic_changelog_claude_code ## (Legacy) Generate Claude Code changelog feed\n\n.PHONY: generate_google_ai_feed\ngenerate_google_ai_feed: feeds_google_ai ## (Legacy) Generate Google AI feed\n\n.PHONY: generate_openai_research_feed\ngenerate_openai_research_feed: feeds_openai_research ## (Legacy) Generate OpenAI Research feed\n\n.PHONY: generate_ollama_feed\ngenerate_ollama_feed: feeds_ollama ## (Legacy) Generate Ollama feed\n\n.PHONY: generate_paulgraham_feed\ngenerate_paulgraham_feed: feeds_paulgraham ## (Legacy) Generate Paul Graham feed\n\n.PHONY: generate_blogsurgeai_feed\ngenerate_blogsurgeai_feed: feeds_blogsurgeai ## (Legacy) Generate Surge AI Blog feed\n\n.PHONY: generate_xainews_feed\ngenerate_xainews_feed: feeds_xainews ## (Legacy) Generate xAI News feed\n\n.PHONY: generate_thinkingmachines_feed\ngenerate_thinkingmachines_feed: feeds_thinkingmachines ## (Legacy) Generate Thinking Machines Lab feed\n\n.PHONY: test_feed_workflow\ntest_feed_workflow: ci_test_workflow_local ## (Legacy) Test feed workflow locally\n\n.PHONY: test_feed_generate\ntest_feed_generate: dev_test_feed ## (Legacy) Run test feed generator\n\n.PHONY: act_run_feeds_workflow\nact_run_feeds_workflow: ci_run_feeds_workflow_local ## (Legacy) Run feeds workflow locally\n\n.PHONY: gh_run_feeds_workflow\ngh_run_feeds_workflow: ci_trigger_feeds_workflow ## (Legacy) Trigger feeds workflow on GitHub\n\n.PHONY: generate_the_batch_feed\ngenerate_the_batch_feed: feeds_the_batch ## (Legacy) Generate The Batch feed\n"
  },
  {
    "path": "README.md",
    "content": "# RSS Feed Generator <!-- omit in toc -->\n\n> [!TIP]\n> This project is maintained by [@oborchers](https://github.com/oborchers) and [@Olshansk](https://github.com/Olshansk). If you gut any value out of it, consider sponsoring us on GitHub!\n\n> [!NOTE]\n> Read the blog post about this repo: [No RSS Feed? No Problem. Using Claude to automate RSS feeds.](https://olshansky.substack.com/p/no-rss-feed-no-problem-using-claude)\n\n## tl;dr Available RSS Feeds <!-- omit in toc -->\n\nScraped feeds are generated hourly. \"Official RSS\" rows point to native feeds the blog now publishes directly.\n\n| Blog                                                                                              | Feed                                                                                                                                 |\n| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |\n| [AI at Meta Blog](https://ai.meta.com/blog/)                                                      | [feed_meta_ai.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_meta_ai.xml)                                 |\n| [AI FIRST Podcast](https://ai-first.ai/podcast) (German)                                          | [feed_ai_first_podcast.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_ai_first_podcast.xml)               |\n| [Anthropic Engineering](https://www.anthropic.com/engineering)                                    | [feed_anthropic_engineering.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_engineering.xml)     |\n| [Anthropic Frontier Red Team](https://red.anthropic.com/)                                         | [feed_anthropic_red.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_red.xml)                     |\n| [Anthropic News](https://www.anthropic.com/news)                                                  | [feed_anthropic_news.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_news.xml)                   |\n| [Anthropic Research](https://www.anthropic.com/research)                                          | [feed_anthropic_research.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_research.xml)           |\n| [Chander Ramesh's Writing](https://chanderramesh.com/writing)                                     | [feed_chanderramesh.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_chanderramesh.xml)                     |\n| [Claude Blog](https://claude.com/blog)                                                            | [feed_claude.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_claude.xml)                                   |\n| [Claude Code Changelog](https://code.claude.com/docs/en/changelog)                                | [Official RSS](https://code.claude.com/docs/en/changelog/rss.xml)                                                                    |\n| [Cloudflare skills (commits/main)](https://github.com/cloudflare/skills)                          | [Official RSS](https://github.com/cloudflare/skills/commits/main.atom)                                                               |\n| [Cohere Blog](https://cohere.com/blog)                                                            | [feed_cohere.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_cohere.xml)                                   |\n| [Cursor Blog](https://cursor.com/blog)                                                            | [feed_cursor.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_cursor.xml)                                   |\n| [Dagster Blog](https://dagster.io/blog)                                                           | [feed_dagster.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_dagster.xml)                                 |\n| [Google DeepMind Blog](https://deepmind.google/blog/)                                             | [Official RSS](https://deepmind.google/blog/rss.xml)                                                                                 |\n| [Google Developers Blog - AI](https://developers.googleblog.com/search/?technology_categories=AI) | [feed_google_ai.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_google_ai.xml)                             |\n| [Groq Blog](https://groq.com/blog/)                                                               | [feed_groq.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_groq.xml)                                       |\n| [Hamel Husain's Blog](https://hamel.dev/)                                                         | [Official RSS](https://hamel.dev/index.xml)                                                                                          |\n| [Interconnected (Matt Webb)](https://interconnected.org/home)                                     | [Official RSS](https://interconnected.org/home/feed)                                                                                 |\n| [Mistral AI News](https://mistral.ai/news)                                                        | [feed_mistral.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_mistral.xml)                                 |\n| [Ollama Blog](https://ollama.com/blog)                                                            | [feed_ollama.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_ollama.xml)                                   |\n| [OpenAI Engineering](https://openai.com/news/engineering/)                                        | [Official RSS](https://openai.com/news/engineering/rss.xml)                                                                          |\n| [OpenAI Research](https://openai.com/news/research/)                                              | [Official RSS](https://openai.com/blog/rss.xml)                                                                                      |\n| [Paul Graham's Articles](https://www.paulgraham.com/articles.html)                                | [feed_paulgraham.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_paulgraham.xml)                           |\n| [Perplexity Hub](https://www.perplexity.ai/hub)                                                   | [feed_perplexity_hub.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_perplexity_hub.xml)                   |\n| [Pinecone Blog](https://www.pinecone.io/blog/)                                                    | [feed_pinecone.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_pinecone.xml)                               |\n| [Simon Willison's Blog (Tools)](https://simonwillison.net/)                                       | [Official RSS](https://simonwillison.net/atom/beats/tool/)                                                                           |\n| [Supabase Blog](https://supabase.com/blog)                                                        | [Official RSS](https://supabase.com/rss.xml)                                                                                         |\n| [Surge AI Blog](https://www.surgehq.ai/blog)                                                      | [feed_blogsurgeai.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_blogsurgeai.xml)                         |\n| [The Batch by DeepLearning.AI](https://www.deeplearning.ai/the-batch/)                            | [feed_the_batch.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_the_batch.xml)                             |\n| [Thinking Machines Lab](https://thinkingmachines.ai/blog/)                                        | [feed_thinkingmachines.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_thinkingmachines.xml)               |\n| [Weaviate Blog](https://weaviate.io/blog)                                                         | [feed_weaviate.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_weaviate.xml)                               |\n| [Windsurf Blog](https://windsurf.com/blog)                                                        | [feed_windsurf_blog.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_blog.xml)                     |\n| [Windsurf Changelog](https://windsurf.com/changelog)                                              | [feed_windsurf_changelog.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_changelog.xml)           |\n| [Windsurf Next Changelog](https://windsurf.com/changelog/windsurf-next)                           | [feed_windsurf_next_changelog.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_next_changelog.xml) |\n| [xAI News](https://x.ai/news)                                                                     | [feed_xainews.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_xainews.xml)                                 |\n\n### Planned <!-- omit in toc -->\n\n| Blog                                                           | Status    |\n| -------------------------------------------------------------- | --------- |\n| [David Crawshaw](https://crawshaw.io/)                         | _planned_ |\n| [Engineering.fyi](https://engineering.fyi/)                    | _planned_ |\n| [Patrick Collison's Blog](https://patrickcollison.com/culture) | _planned_ |\n\n### What is this?\n\nYou know that blog you like that doesn't have an RSS feed and might never will?\n\n🙌 **You can use this repo to create a RSS feed for it!** 🙌\n\n## Table of Contents <!-- omit in toc -->\n\n- [Quick Start](#quick-start)\n  - [Subscribe to a Feed](#subscribe-to-a-feed)\n  - [Request a new Feed](#request-a-new-feed)\n- [Create a new a Feed](#create-a-new-a-feed)\n- [Star History](#star-history)\n- [Ideas](#ideas)\n- [How It Works](#how-it-works)\n  - [For Developers 👀 only](#for-developers--only)\n\n## Quick Start\n\n### Subscribe to a Feed\n\n- Go to the [feeds directory](./feeds).\n- Find the feed you want to subscribe to.\n- Use the **raw** link for your RSS reader. Example:\n\n  ```text\n    https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_ollama.xml\n  ```\n\n- Use your RSS reader of choice to subscribe to the feed (e.g., [Blogtrottr](https://blogtrottr.com/)).\n\n### Request a new Feed\n\nWant me to create a feed for you?\n\n[Open a GitHub issue](https://github.com/Olshansk/rss-feeds/issues/new?template=request_rss_feed.md) and include the blog URL.\n\nIf I do, consider supporting my 🌟🧋 addiction by [buying me a coffee](https://buymeacoffee.com/olshansky).\n\n## Create a new a Feed\n\n1. Download the HTML of the blog you want to create a feed for.\n2. Open Claude Code CLI\n3. Tell claude to:\n\n```bash\nUse /cmd-rss-feed-generator to convert @<html_file>.html to a RSS feed for <blog_url>.\n```\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Olshansk/rss-feeds&type=Date)](https://star-history.com/#Olshansk/rss-feeds&Date)\n\n## Ideas\n\n- **X RSS Feed**: Going to `x.com/{USER}/index.xml` should give an RSS feed of the user's tweets.\n\n## How It Works\n\n```mermaid\nflowchart TB\n    subgraph GitHub[\"GitHub Repository\"]\n        action[[GitHub Action<br/>Hourly Cron Job]]\n        runner{{\"run_all_feeds.py\"}}\n        feeds[\"Feed Generators<br/>(*.py files)\"]\n        xml[\"Generated RSS Feeds<br/>(feed_*.xml)\"]\n    end\n\n    subgraph External[\"External Services\"]\n        blogtrottr[\"Blogtrottr\"]\n        rssreaders[\"Other RSS Readers\"]\n    end\n\n    action -->|\"Triggers\"| runner\n    runner -->|\"Executes\"| feeds\n    feeds -->|\"Scrapes\"| websites[(\"Blog Websites<br/>(HTML Content)\")]\n    websites -->|\"Content\"| feeds\n    feeds -->|\"Generates\"| xml\n    xml -->|\"Updates\"| repo[\"GitHub Repository<br/>Main Branch\"]\n\n    repo -->|\"Pulls Feed\"| blogtrottr\n    repo -->|\"Pulls Feed\"| rssreaders\n\n    style GitHub fill:#e6f3ff,stroke:#0066cc\n    style External fill:#f9f9f9,stroke:#666666\n    style action fill:#ddf4dd,stroke:#28a745,color:#000000\n    style runner fill:#fff3cd,stroke:#ffc107,color:#000000\n    style feeds fill:#f8d7da,stroke:#dc3545,color:#000000\n    style xml fill:#d1ecf1,stroke:#17a2b8,color:#000000\n    style websites fill:#e2e3e5,stroke:#383d41,color:#000000\n```\n\n### For Developers 👀 only\n\n- Open source and community-driven 🙌\n- Simple Python + GitHub Actions 🐍\n- AI tooling for easy contributions 🤖\n- Learn and contribute together 🧑‍🎓\n- Streamlines the use of Claude, Claude Projects, and Claude Sync\n"
  },
  {
    "path": "cache/.gitkeep",
    "content": ""
  },
  {
    "path": "feed_generators/ai_first_podcast.py",
    "content": "\"\"\"Generate RSS feed for the AI FIRST Podcast (https://ai-first.ai/podcast).\n\nTwo-stage scraper: the listing page gives link + title, each episode page\nthen provides the date and description via a JSON-LD PodcastEpisode schema.\nGerman-language podcast.\n\"\"\"\n\nimport argparse\nimport json\nimport time\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    DEFAULT_HEADERS,\n    deserialize_entries,\n    fetch_page,\n    load_cache,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"ai_first_podcast\"\nBLOG_URL = \"https://ai-first.ai/podcast\"\nBASE_URL = \"https://ai-first.ai\"\nDETAIL_FETCH_DELAY_SECONDS = 0.5\n\n\ndef parse_listing_page(html_content: str) -> list[dict]:\n    \"\"\"Extract (link, title) pairs from the podcast listing page.\"\"\"\n    soup = BeautifulSoup(html_content, \"html.parser\")\n    episodes: list[dict] = []\n    seen_hrefs: set[str] = set()\n\n    for link in soup.select('a[href^=\"/podcast/\"]'):\n        href = link.get(\"href\", \"\")\n        if href.rstrip(\"/\") == \"/podcast\" or href in seen_hrefs:\n            continue\n        seen_hrefs.add(href)\n\n        # Prefer a heading inside the anchor (just the episode title). Fall back\n        # to aria-label, then to separator-joined text -- the anchor contains\n        # multiple sibling text nodes (episode number, guest, role) that must\n        # not be concatenated without whitespace.\n        title = None\n        heading = link.select_one(\"h1, h2, h3, h4, h5, h6\")\n        if heading:\n            title = heading.get_text(separator=\" \", strip=True)\n        if not title:\n            aria = link.get(\"aria-label\", \"\").strip()\n            if aria:\n                title = aria.removeprefix(\"Podcast: \").strip()\n        if not title:\n            text = link.get_text(separator=\" \", strip=True)\n            if text and len(text) > 5:\n                title = text[:200]\n                if len(text) > 200:\n                    logger.debug(f\"Fallback title for {href} truncated from {len(text)} chars\")\n        if not title:\n            continue\n\n        episodes.append({\"link\": f\"{BASE_URL}{href}\", \"title\": title})\n\n    logger.info(f\"Found {len(episodes)} episode links on listing page\")\n    return episodes\n\n\ndef fetch_episode_details(url: str) -> tuple[datetime | None, str]:\n    \"\"\"Return (date, description) for a single episode page.\"\"\"\n    try:\n        html = fetch_page(url, timeout=15, headers=DEFAULT_HEADERS)\n    except Exception as e:\n        logger.warning(f\"Failed to fetch episode page {url}: {e}\")\n        return None, \"\"\n\n    soup = BeautifulSoup(html, \"html.parser\")\n\n    # Primary: JSON-LD PodcastEpisode schema\n    for script in soup.select('script[type=\"application/ld+json\"]'):\n        try:\n            data = json.loads(script.string or \"\")\n        except (json.JSONDecodeError, TypeError):\n            continue\n        if data.get(\"@type\") != \"PodcastEpisode\":\n            continue\n\n        date = None\n        date_str = data.get(\"datePublished\")\n        if date_str:\n            try:\n                date = datetime.fromisoformat(date_str)\n                if date.tzinfo is None:\n                    date = date.replace(tzinfo=pytz.UTC)\n            except ValueError:\n                pass\n\n        return date, data.get(\"description\", \"\")\n\n    # Fallback: <time datetime=\"...\"> element\n    time_elem = soup.select_one(\"time[datetime]\")\n    if time_elem and time_elem.get(\"datetime\"):\n        try:\n            date = datetime.fromisoformat(time_elem[\"datetime\"].replace(\"Z\", \"+00:00\"))\n            if date.tzinfo is None:\n                date = date.replace(tzinfo=pytz.UTC)\n            return date, \"\"\n        except ValueError:\n            pass\n\n    return None, \"\"\n\n\ndef enrich_episodes(stub_episodes: list[dict]) -> list[dict]:\n    \"\"\"Fetch detail page for each stub and return full episode dicts.\"\"\"\n    enriched = []\n    for i, stub in enumerate(stub_episodes):\n        date, description = fetch_episode_details(stub[\"link\"])\n        if not date:\n            date = stable_fallback_date(stub[\"link\"])\n        enriched.append(\n            {\n                \"title\": stub[\"title\"],\n                \"link\": stub[\"link\"],\n                \"date\": date,\n                \"description\": description or stub[\"title\"],\n            }\n        )\n        if i < len(stub_episodes) - 1:\n            time.sleep(DETAIL_FETCH_DELAY_SECONDS)\n        if (i + 1) % 10 == 0:\n            logger.info(f\"Fetched {i + 1}/{len(stub_episodes)} episode details\")\n    return enriched\n\n\ndef generate_rss_feed(episodes: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"AI FIRST Podcast\")\n    fg.description(\n        \"Der AI FIRST Podcast: Erfahre jeden Freitag aus erster Hand, wie Unternehmer und Führungskräfte AI einsetzen.\"\n    )\n    fg.language(\"de\")\n    fg.author({\"name\": \"AI FIRST\"})\n    fg.logo(\"https://ai-first.ai/images/og/og-default.png\")\n    fg.subtitle(\"KI-Transformation, Produktivität und die Zukunft der Arbeit\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for ep in sort_posts_for_feed(episodes, date_field=\"date\"):\n        fe = fg.add_entry()\n        fe.title(ep[\"title\"])\n        fe.description(ep[\"description\"])\n        fe.link(href=ep[\"link\"])\n        fe.id(ep[\"link\"])\n        if ep.get(\"date\"):\n            fe.published(ep[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(episodes)} entries\")\n    return fg\n\n\ndef main(full_reset: bool = False) -> bool:\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n    cached_links = {ep[\"link\"] for ep in cached_entries}\n\n    html = fetch_page(BLOG_URL, timeout=15, headers=DEFAULT_HEADERS)\n    listing = parse_listing_page(html)\n    if not listing:\n        logger.warning(\"No episodes found on listing page.\")\n        return False\n\n    if full_reset:\n        stubs_to_fetch = listing\n        logger.info(f\"Full reset: fetching details for all {len(stubs_to_fetch)} episodes\")\n        all_episodes = enrich_episodes(stubs_to_fetch)\n    else:\n        stubs_to_fetch = [ep for ep in listing if ep[\"link\"] not in cached_links]\n        logger.info(f\"Incremental: {len(stubs_to_fetch)} new episode(s) to fetch\")\n        new_episodes = enrich_episodes(stubs_to_fetch)\n        all_episodes = list(cached_entries) + new_episodes\n\n    all_episodes = sort_posts_for_feed(all_episodes, date_field=\"date\")\n    save_cache(FEED_NAME, all_episodes)\n\n    feed = generate_rss_feed(all_episodes)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate AI FIRST Podcast RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (re-fetch every episode)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/anthropic_eng_blog.py",
    "content": "import re\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed\n\nlogger = setup_logging()\n\nFEED_NAME = \"anthropic_engineering\"\nBLOG_URL = \"https://www.anthropic.com/engineering\"\n\n\ndef fetch_engineering_content(url=BLOG_URL):\n    \"\"\"Fetch engineering page content from Anthropic's website.\"\"\"\n    try:\n        return fetch_page(url)\n    except Exception as e:\n        logger.error(f\"Error fetching engineering content: {e!s}\")\n        raise\n\n\ndef validate_article(article):\n    \"\"\"Validate article has required fields.\"\"\"\n    if not article.get(\"title\") or len(article[\"title\"]) < 5:\n        return False\n    if not article.get(\"link\") or not article[\"link\"].startswith(\"http\"):\n        return False\n    return bool(article.get(\"date\"))\n\n\ndef parse_engineering_html(html_content):\n    \"\"\"Parse the engineering HTML content and extract article information from embedded JSON.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        articles = []\n\n        # Find the Next.js script tag containing article data\n        script_tag = None\n        for script in soup.find_all(\"script\"):\n            if script.string and \"publishedOn\" in script.string and \"engineeringArticle\" in script.string:\n                script_tag = script\n                break\n\n        if not script_tag:\n            logger.error(\"Could not find Next.js data script containing article information\")\n            return []\n\n        script_content = script_tag.string\n\n        # Extract article data from the escaped JSON in the Next.js script\n        # Pattern matches: publishedOn, slug, title, and summary fields\n        pattern = r'\\\\\"publishedOn\\\\\":\\\\\"([^\"]+?)\\\\\",\\\\\"slug\\\\\":\\{[^}]*?\\\\\"current\\\\\":\\\\\"([^\"]+?)\\\\\"'\n        matches = re.findall(pattern, script_content)\n\n        logger.info(f\"Found {len(matches)} articles from JSON data\")\n\n        for published_date, slug in matches:\n            try:\n                # Construct the full URL from the slug\n                link = f\"https://www.anthropic.com/engineering/{slug}\"\n\n                # Find the article object containing this slug to get title and summary\n                # Search for the section containing this slug\n                slug_pos = script_content.find(f'\\\\\"current\\\\\":\\\\\"{slug}\\\\\"')\n                if slug_pos == -1:\n                    continue\n\n                # Search forward from slug position to find the title and summary\n                # The structure is: ...publishedOn, slug, ...other fields..., summary, title}\n                search_section = script_content[slug_pos : slug_pos + 2000]\n\n                # Extract title and summary (they appear AFTER the slug in the data)\n                # Use negative lookbehind to handle escaped quotes correctly\n                title_match = re.search(r'\\\\\"title\\\\\":\\\\\"(.*?)(?<!\\\\)\\\\\"', search_section)\n                title = title_match.group(1) if title_match else slug.replace(\"-\", \" \").title()\n                # Unescape the title using re.sub to handle all escaped characters\n                title = re.sub(r\"\\\\(.)\", r\"\\1\", title) if title else title\n\n                # Extract summary/description\n                summary_match = re.search(r'\\\\\"summary\\\\\":\\\\\"(.*?)(?<!\\\\)\\\\\"', search_section)\n                description = summary_match.group(1) if summary_match else title\n                # Unescape the description\n                description = re.sub(r\"\\\\(.)\", r\"\\1\", description) if description else description\n\n                # Parse the date\n                date = datetime.strptime(published_date, \"%Y-%m-%d\")\n                date = date.replace(hour=0, minute=0, second=0, tzinfo=pytz.UTC)\n\n                article = {\n                    \"title\": title,\n                    \"link\": link,\n                    \"description\": description if description else title,\n                    \"date\": date,\n                    \"category\": \"Engineering\",\n                }\n\n                if validate_article(article):\n                    articles.append(article)\n                    logger.info(f\"Found article: {title} ({published_date})\")\n\n            except Exception as e:\n                logger.warning(f\"Error parsing article {slug}: {e!s}\")\n                continue\n\n        logger.info(f\"Successfully parsed {len(articles)} articles from JSON data\")\n        return articles\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(articles, feed_name=FEED_NAME):\n    \"\"\"Generate RSS feed from engineering articles.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Anthropic Engineering Blog\")\n        fg.description(\"Latest engineering articles and insights from Anthropic's engineering team\")\n        setup_feed_links(fg, BLOG_URL, feed_name)\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Anthropic Engineering Team\"})\n        fg.logo(\"https://www.anthropic.com/images/icons/apple-touch-icon.png\")\n        fg.subtitle(\"Inside the team building reliable AI systems\")\n\n        # Sort articles for correct feed order (newest first in output)\n        articles_sorted = sort_posts_for_feed(articles, date_field=\"date\")\n\n        # Add entries\n        for article in articles_sorted:\n            fe = fg.add_entry()\n            fe.title(article[\"title\"])\n            fe.description(article[\"description\"])\n            fe.link(href=article[\"link\"])\n            fe.published(article[\"date\"])\n            fe.category(term=article[\"category\"])\n            fe.id(article[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(feed_name=FEED_NAME):\n    \"\"\"Main function to generate RSS feed from Anthropic's engineering page.\"\"\"\n    try:\n        # Fetch engineering content\n        html_content = fetch_engineering_content()\n\n        # Parse articles from HTML\n        articles = parse_engineering_html(html_content)\n\n        if not articles:\n            logger.warning(\"No articles found on the engineering page\")\n            return False\n\n        # Generate RSS feed\n        feed = generate_rss_feed(articles, feed_name)\n\n        # Save feed to file\n        save_rss_feed(feed, feed_name)\n\n        logger.info(f\"Successfully generated RSS feed with {len(articles)} articles\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/anthropic_news_blog.py",
    "content": "import argparse\nimport contextlib\nimport xml.etree.ElementTree as ET\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    setup_selenium_driver,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nFEED_NAME = \"anthropic_news\"\nBLOG_URL = \"https://www.anthropic.com/news\"\n\nlogger = setup_logging()\n\n\ndef fetch_news_content(url=BLOG_URL, max_clicks=20):\n    \"\"\"Fetch the fully loaded HTML content of the news page using Selenium.\n\n    Args:\n        url: The URL to fetch\n        max_clicks: Maximum number of \"See more\" button clicks.\n                   Use 20 for full fetch, 2-3 for incremental updates.\n    \"\"\"\n    driver = None\n    try:\n        logger.info(f\"Fetching content from URL: {url} (max_clicks={max_clicks})\")\n        driver = setup_selenium_driver()\n        driver.get(url)\n\n        # Wait for news articles to be present\n        try:\n            WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, \"a[href*='/news/']\")))\n            logger.info(\"News articles loaded successfully\")\n        except Exception:\n            logger.warning(\"Could not confirm articles loaded, proceeding anyway...\")\n\n        # Click \"See more\" button repeatedly until it's no longer available\n        clicks = 0\n        while clicks < max_clicks:\n            try:\n                # Look for the \"See more\" button using multiple selectors\n                see_more_button = None\n                selectors = [\n                    \"[class*='seeMore']\",\n                    \"[class*='see-more']\",\n                    \"button[class*='More']\",\n                ]\n                for selector in selectors:\n                    try:\n                        see_more_button = driver.find_element(By.CSS_SELECTOR, selector)\n                        if see_more_button and see_more_button.is_displayed():\n                            break\n                        see_more_button = None\n                    except Exception:\n                        continue\n\n                # Also try finding by text content using XPath\n                if not see_more_button:\n                    with contextlib.suppress(Exception):\n                        see_more_button = driver.find_element(\n                            By.XPATH,\n                            \"//*[contains(text(), 'See more') or contains(text(), 'Load more')]\",\n                        )\n\n                if see_more_button and see_more_button.is_displayed():\n                    count_before = len(driver.find_elements(By.CSS_SELECTOR, \"a[href*='/news/']\"))\n                    logger.info(f\"Clicking 'See more' button (click {clicks + 1})...\")\n                    driver.execute_script(\"arguments[0].click();\", see_more_button)\n                    clicks += 1\n                    # Wait for new articles to appear after click\n                    with contextlib.suppress(Exception):\n                        WebDriverWait(driver, 5).until(\n                            lambda d, n=count_before: len(d.find_elements(By.CSS_SELECTOR, \"a[href*='/news/']\")) > n\n                        )\n                else:\n                    logger.info(f\"No more 'See more' button found after {clicks} clicks\")\n                    break\n            except Exception as e:\n                # No more \"See more\" button found\n                logger.info(f\"No more 'See more' button found after {clicks} clicks: {e}\")\n                break\n\n        html_content = driver.page_source\n        logger.info(\"Successfully fetched HTML content\")\n        return html_content\n\n    except Exception as e:\n        logger.error(f\"Error fetching content: {e}\")\n        raise\n    finally:\n        if driver:\n            driver.quit()\n\n\ndef extract_title(card):\n    \"\"\"Extract title using multiple fallback selectors.\"\"\"\n    selectors = [\n        # New FeaturedGrid layout\n        \"h2[class*='featuredTitle']\",\n        \"h4[class*='title']\",\n        # New PublicationList layout\n        \"span[class*='title']\",\n        # Legacy selectors\n        \"h3.PostCard_post-heading__Ob1pu\",\n        \"h3.Card_headline__reaoT\",\n        \"h3[class*='headline']\",\n        \"h3[class*='heading']\",\n        \"h2[class*='headline']\",\n        \"h2[class*='heading']\",\n        \"h3\",\n        \"h2\",\n    ]\n    for selector in selectors:\n        elem = card.select_one(selector)\n        if elem and elem.text.strip():\n            return elem.text.strip()\n    return None\n\n\ndef extract_date(card):\n    \"\"\"Extract date using multiple fallback selectors and formats.\"\"\"\n    selectors = [\n        # New layout selectors - time element is most reliable\n        \"time[class*='date']\",\n        \"time\",\n        # Legacy selectors\n        \"p.detail-m\",\n        \"div.PostList_post-date__djrOA\",\n        \"p[class*='date']\",\n        \"div[class*='date']\",\n    ]\n\n    date_formats = [\n        \"%b %d, %Y\",\n        \"%B %d, %Y\",\n        \"%b %d %Y\",\n        \"%B %d %Y\",\n        \"%Y-%m-%d\",\n        \"%m/%d/%Y\",\n    ]\n\n    for selector in selectors:\n        # Use select() to get all matching elements, not just the first one\n        elems = card.select(selector)\n        for elem in elems:\n            date_text = elem.text.strip()\n            # Try to parse it as a date\n            for date_format in date_formats:\n                try:\n                    date = datetime.strptime(date_text, date_format)\n                    return date.replace(tzinfo=pytz.UTC)\n                except ValueError:\n                    continue\n\n    return None\n\n\ndef extract_category(card, date_elem_text=None):\n    \"\"\"Extract category using multiple fallback selectors.\"\"\"\n    selectors = [\n        # New layout selectors\n        \"span[class*='subject']\",  # PublicationList layout\n        \"span.caption.bold\",  # FeaturedGrid layout (category before date)\n        # Legacy selectors\n        \"span.text-label\",\n        \"p.detail-m\",\n        \"span[class*='category']\",\n        \"div[class*='category']\",\n    ]\n\n    for selector in selectors:\n        elem = card.select_one(selector)\n        if elem:\n            text = elem.text.strip()\n            # Skip if this is the date element\n            if date_elem_text and text == date_elem_text:\n                continue\n            # Skip if it looks like a date\n            if any(\n                month in text\n                for month in [\n                    \"Jan\",\n                    \"Feb\",\n                    \"Mar\",\n                    \"Apr\",\n                    \"May\",\n                    \"Jun\",\n                    \"Jul\",\n                    \"Aug\",\n                    \"Sep\",\n                    \"Oct\",\n                    \"Nov\",\n                    \"Dec\",\n                ]\n            ):\n                continue\n            return text\n\n    return \"News\"\n\n\ndef validate_article(article):\n    \"\"\"Validate that article has all required fields with reasonable values.\"\"\"\n    if not article.get(\"title\") or len(article[\"title\"]) < 5:\n        logger.warning(f\"Invalid title for article: {article.get('link', 'unknown')}\")\n        return False\n\n    if not article.get(\"link\") or not article[\"link\"].startswith(\"http\"):\n        logger.warning(f\"Invalid link for article: {article.get('title', 'unknown')}\")\n        return False\n\n    if not article.get(\"date\"):\n        logger.warning(f\"Missing date for article: {article.get('title', 'unknown')}\")\n        return False\n\n    return True\n\n\ndef parse_news_html(html_content):\n    \"\"\"Parse the news HTML content and extract article information.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        articles = []\n        seen_links = set()\n        unknown_structures = 0\n\n        # Find all links that point to news articles\n        # Use flexible selectors to catch current and future card types\n        # Handle both relative (/news/...) and absolute (https://www.anthropic.com/news/...) URLs\n        all_news_links = soup.select('a[href*=\"/news/\"], a[href*=\"anthropic.com/news/\"]')\n\n        logger.info(f\"Found {len(all_news_links)} potential news article links\")\n\n        for card in all_news_links:\n            href = card.get(\"href\", \"\")\n            if not href:\n                continue\n\n            # Build full URL\n            link = \"https://www.anthropic.com\" + href if href.startswith(\"/\") else href\n\n            # Skip duplicates\n            if link in seen_links:\n                continue\n\n            # Skip the main news page link and anchor links\n            if link.endswith(\"/news\") or link.endswith(\"/news/\") or \"/news#\" in link:\n                continue\n\n            seen_links.add(link)\n\n            # Extract title using fallback chain\n            title = extract_title(card)\n            if not title:\n                logger.debug(f\"Could not extract title for link: {link}\")\n                logger.debug(f\"Card HTML preview: {str(card)[:200]}\")\n                unknown_structures += 1\n                continue\n\n            # Extract date using fallback chain\n            date = extract_date(card)\n            if not date:\n                logger.warning(f\"Could not extract date for article: {title}\")\n                date = stable_fallback_date(link)\n\n            # Extract category\n            category = extract_category(card)\n\n            # Create article object\n            article = {\n                \"title\": title,\n                \"link\": link,\n                \"date\": date,\n                \"category\": category,\n                \"description\": title,  # Using title as description fallback\n            }\n\n            # Validate article before adding\n            if validate_article(article):\n                articles.append(article)\n            else:\n                unknown_structures += 1\n\n        if unknown_structures > 0:\n            logger.warning(f\"Encountered {unknown_structures} links with unknown or invalid structures\")\n\n        logger.info(f\"Successfully parsed {len(articles)} valid articles\")\n        return articles\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(articles):\n    \"\"\"Generate RSS feed from news articles.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Anthropic News\")\n        fg.description(\"Latest news and updates from Anthropic\")\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Anthropic News\"})\n        fg.logo(\"https://www.anthropic.com/images/icons/apple-touch-icon.png\")\n        fg.subtitle(\"Latest updates from Anthropic's newsroom\")\n        setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n        # Sort articles for correct feed order (newest first in output)\n        articles_sorted = sort_posts_for_feed(articles, date_field=\"date\")\n\n        # Add entries\n        for article in articles_sorted:\n            fe = fg.add_entry()\n            fe.title(article[\"title\"])\n            fe.description(article[\"description\"])\n            fe.link(href=article[\"link\"])\n            fe.published(article[\"date\"])\n            fe.category(term=article[\"category\"])\n            fe.id(article[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef get_existing_links_from_feed(feed_path):\n    \"\"\"Parse the existing RSS feed and return a set of all article links.\"\"\"\n    existing_links = set()\n    try:\n        if not feed_path.exists():\n            return existing_links\n        tree = ET.parse(feed_path)\n        root = tree.getroot()\n        # RSS 2.0: items under channel/item\n        for item in root.findall(\"./channel/item\"):\n            link_elem = item.find(\"link\")\n            if link_elem is not None and link_elem.text:\n                existing_links.add(link_elem.text.strip())\n    except Exception as e:\n        logger.warning(f\"Failed to parse existing feed for deduplication: {e!s}\")\n    return existing_links\n\n\ndef main(full_reset=False):\n    \"\"\"Main function to generate RSS feed from Anthropic's news page.\n\n    Args:\n        full_reset: If True, fetch all articles (click \"See more\" up to 20 times).\n                   If False, do incremental update (click 2-3 times, merge with cache).\n    \"\"\"\n    try:\n        cache = load_cache(FEED_NAME)\n        cached_articles = deserialize_entries(cache.get(\"entries\", []))\n\n        if full_reset or not cached_articles:\n            mode = \"full reset\" if full_reset else \"no cache exists\"\n            logger.info(f\"Running full fetch ({mode})\")\n            html_content = fetch_news_content(max_clicks=20)\n            articles = parse_news_html(html_content)\n        else:\n            logger.info(\"Running incremental update (2 clicks only)\")\n            html_content = fetch_news_content(max_clicks=2)\n            new_articles = parse_news_html(html_content)\n            logger.info(f\"Found {len(new_articles)} articles from recent pages\")\n            articles = merge_entries(new_articles, cached_articles)\n\n        if not articles:\n            logger.warning(\"No articles found. Please check the HTML structure.\")\n            return False\n\n        # Save to cache\n        save_cache(FEED_NAME, articles)\n\n        # Generate RSS feed with all articles\n        feed = generate_rss_feed(articles)\n\n        # Save feed to file\n        save_rss_feed(feed, FEED_NAME)\n\n        logger.info(f\"Successfully generated RSS feed with {len(articles)} articles\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Anthropic News RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all articles)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/anthropic_red_blog.py",
    "content": "from datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date\n\nlogger = setup_logging()\n\nFEED_NAME = \"anthropic_red\"\nBLOG_URL = \"https://red.anthropic.com/\"\n\n\ndef fetch_red_content(url=BLOG_URL):\n    \"\"\"Fetch content from Anthropic's red team blog.\"\"\"\n    try:\n        return fetch_page(url)\n    except Exception as e:\n        logger.error(f\"Error fetching red team blog content: {e!s}\")\n        raise\n\n\ndef parse_date(date_text):\n    \"\"\"Parse date text from article pages (e.g., 'November 12, 2025', 'September 29, 2025').\"\"\"\n    date_formats = [\n        \"%B %d, %Y\",  # November 12, 2025\n        \"%b %d, %Y\",  # Nov 12, 2025\n        \"%B %Y\",  # November 2025 (fallback)\n        \"%b %Y\",  # Nov 2025 (fallback)\n    ]\n\n    for date_format in date_formats:\n        try:\n            date = datetime.strptime(date_text, date_format)\n            return date.replace(tzinfo=pytz.UTC)\n        except ValueError:\n            continue\n\n    logger.warning(f\"Could not parse date: {date_text}\")\n    return None\n\n\ndef fetch_article_date(article_url):\n    \"\"\"Fetch the publication date from an individual article page.\"\"\"\n    try:\n        html = fetch_page(article_url)\n\n        soup = BeautifulSoup(html, \"html.parser\")\n\n        # Look for date in d-article section\n        article_section = soup.select_one(\"d-article\")\n        if article_section:\n            # The date is typically in the first <p> tag\n            first_p = article_section.select_one(\"p\")\n            if first_p:\n                date_text = first_p.text.strip()\n                date = parse_date(date_text)\n                if date:\n                    logger.debug(f\"Found date '{date_text}' for {article_url}\")\n                    return date\n\n        logger.warning(f\"Could not find date in article: {article_url}\")\n        return None\n\n    except Exception as e:\n        logger.warning(f\"Error fetching article date from {article_url}: {e!s}\")\n        return None\n\n\ndef parse_red_html(html_content):\n    \"\"\"Parse the red team blog HTML content and extract article information.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        articles = []\n        seen_links = set()\n\n        # Find all article links across the entire page (TOC + body sections)\n        all_notes = soup.select(\"a.note\")\n        logger.info(f\"Found {len(all_notes)} potential article links\")\n\n        # Build a map of date dividers for context\n        date_sections = {}\n        for date_div in soup.select(\"div.date\"):\n            date_text = date_div.text.strip()\n            parsed = parse_date(date_text)\n            if parsed:\n                date_sections[date_text] = parsed\n\n        for article_link in all_notes:\n            # Extract article information\n            href = article_link.get(\"href\", \"\")\n            if not href:\n                continue\n\n            # Build full URL\n            if href.startswith(\"http\"):\n                link = href\n            elif href.startswith(\"/\"):\n                link = f\"https://red.anthropic.com{href}\"\n            else:\n                link = f\"https://red.anthropic.com/{href}\"\n\n            # Skip duplicates\n            if link in seen_links:\n                continue\n            seen_links.add(link)\n\n            # Extract title\n            title_elem = article_link.select_one(\"h3\")\n            if not title_elem:\n                logger.warning(f\"Could not extract title for link: {link}\")\n                continue\n            title = title_elem.text.strip()\n\n            # Extract description\n            description_elem = article_link.select_one(\"div.description\")\n            description = description_elem.text.strip() if description_elem else title\n\n            # Fetch actual publication date from the article page\n            article_date = fetch_article_date(link)\n\n            # Fallback to stable date if fetching fails\n            if not article_date:\n                article_date = stable_fallback_date(link)\n                logger.warning(f\"Using fallback date for article: {title}\")\n\n            # Create article object\n            article = {\n                \"title\": title,\n                \"link\": link,\n                \"date\": article_date,\n                \"description\": description,\n            }\n\n            articles.append(article)\n            logger.debug(f\"Found article: {title} (date: {article_date})\")\n\n        logger.info(f\"Successfully parsed {len(articles)} articles\")\n        return articles\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(articles, feed_name=FEED_NAME):\n    \"\"\"Generate RSS feed from red team blog articles.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Anthropic Frontier Red Team Blog\")\n        fg.description(\n            \"Research from Anthropic's Frontier Red Team on what frontier AI models mean for national security\"\n        )\n        setup_feed_links(fg, BLOG_URL, feed_name)\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Anthropic Frontier Red Team\"})\n        fg.logo(\"https://www.anthropic.com/images/icons/apple-touch-icon.png\")\n        fg.subtitle(\n            \"Evidence-based analysis about AI's implications for cybersecurity, biosecurity, and autonomous systems\"\n        )\n\n        # Sort articles for correct feed order (newest first in output)\n        sorted_articles = sort_posts_for_feed(articles, date_field=\"date\")\n\n        # Add entries\n        for article in sorted_articles:\n            fe = fg.add_entry()\n            fe.title(article[\"title\"])\n            fe.description(article[\"description\"])\n            fe.link(href=article[\"link\"])\n            fe.published(article[\"date\"])\n            fe.id(article[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(feed_name=FEED_NAME):\n    \"\"\"Main function to generate RSS feed from Anthropic's red team blog.\"\"\"\n    try:\n        # Fetch blog content\n        html_content = fetch_red_content()\n\n        # Parse articles from HTML\n        articles = parse_red_html(html_content)\n\n        if not articles:\n            logger.warning(\"No articles found\")\n            return False\n\n        # Generate RSS feed\n        feed = generate_rss_feed(articles, feed_name)\n\n        # Save feed to file\n        save_rss_feed(feed, feed_name)\n\n        logger.info(f\"Successfully generated RSS feed with {len(articles)} articles\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/anthropic_research_blog.py",
    "content": "from datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    setup_selenium_driver,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"anthropic_research\"\nBLOG_URL = \"https://www.anthropic.com/research\"\n\n\ndef fetch_research_content_selenium(url=BLOG_URL):\n    \"\"\"Fetch the fully loaded HTML content of the research page using Selenium.\"\"\"\n    driver = None\n    try:\n        logger.info(f\"Fetching content from URL: {url}\")\n        driver = setup_selenium_driver()\n        driver.get(url)\n\n        # Wait for research articles to load\n        try:\n            WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, \"a[href*='/research/']\")))\n            logger.info(\"Research articles loaded successfully\")\n        except Exception:\n            logger.warning(\"Could not confirm articles loaded, proceeding anyway...\")\n\n        html_content = driver.page_source\n        logger.info(\"Successfully fetched HTML content\")\n        return html_content\n\n    except Exception as e:\n        logger.error(f\"Error fetching content: {e}\")\n        raise\n    finally:\n        if driver:\n            driver.quit()\n\n\ndef extract_title(card):\n    \"\"\"Extract title using multiple fallback selectors.\"\"\"\n    selectors = [\n        \"h3\",\n        \"h2\",\n        \"h1\",\n        \".Card_headline__reaoT\",\n        \"h3[class*='headline']\",\n        \"h2[class*='headline']\",\n        \"h3[class*='title']\",\n        \"h2[class*='title']\",\n    ]\n\n    for selector in selectors:\n        elem = card.select_one(selector)\n        if elem and elem.text.strip():\n            title = elem.text.strip()\n            # Clean up whitespace\n            title = \" \".join(title.split())\n            if len(title) >= 5:\n                return title\n\n    # Try using link text as last resort\n    if hasattr(card, \"text\"):\n        text = card.text.strip()\n        text = \" \".join(text.split())\n        if len(text) >= 5:\n            return text\n\n    return None\n\n\ndef extract_date(card):\n    \"\"\"Extract date using multiple fallback selectors and formats.\"\"\"\n    selectors = [\n        \"p.detail-m\",  # Current format on listing page\n        \".detail-m\",\n        \"time\",\n        \"[class*='timestamp']\",\n        \"[class*='date']\",\n        \".PostDetail_post-timestamp__TBJ0Z\",\n        \".text-label\",\n    ]\n\n    date_formats = [\n        \"%b %d, %Y\",\n        \"%B %d, %Y\",\n        \"%Y-%m-%d\",\n        \"%m/%d/%Y\",\n        \"%d %b %Y\",\n        \"%d %B %Y\",\n        \"%b %d %Y\",\n        \"%B %d %Y\",\n    ]\n\n    # Look for date in the card and its parents\n    elements_to_check = [card]\n    if hasattr(card, \"parent\") and card.parent:\n        elements_to_check.append(card.parent)\n        if card.parent.parent:\n            elements_to_check.append(card.parent.parent)\n\n    for element in elements_to_check:\n        for selector in selectors:\n            date_elem = element.select_one(selector)\n            if date_elem:\n                date_text = date_elem.text.strip()\n                for date_format in date_formats:\n                    try:\n                        date = datetime.strptime(date_text, date_format)\n                        return date.replace(tzinfo=pytz.UTC)\n                    except ValueError:\n                        continue\n\n    return None\n\n\ndef validate_article(article):\n    \"\"\"Validate that article has all required fields with reasonable values.\"\"\"\n    if not article.get(\"title\") or len(article[\"title\"]) < 5:\n        return False\n    # Date can be None for research articles\n    return bool(article.get(\"link\") and article[\"link\"].startswith(\"http\"))\n\n\ndef parse_research_html(html_content):\n    \"\"\"Parse the research HTML content and extract article information.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        articles = []\n        seen_links = set()\n\n        # Look for research article links using flexible selector\n        research_links = soup.select(\"a[href*='/research/']\")\n        logger.info(f\"Found {len(research_links)} potential research article links\")\n\n        for link in research_links:\n            try:\n                href = link.get(\"href\", \"\")\n                if not href:\n                    continue\n\n                # Skip the main research page\n                if href == \"/research\" or href.endswith(\"/research/\"):\n                    continue\n\n                # Construct full URL\n                if href.startswith(\"https://\"):\n                    full_url = href\n                elif href.startswith(\"/\"):\n                    full_url = \"https://www.anthropic.com\" + href\n                else:\n                    continue\n\n                # Skip duplicates\n                if full_url in seen_links:\n                    continue\n                seen_links.add(full_url)\n\n                # Extract title\n                title = extract_title(link)\n                if not title:\n                    logger.debug(f\"Could not extract title for link: {full_url}\")\n                    continue\n\n                # Extract date, fall back to stable hash-based date\n                date = extract_date(link)\n                if date:\n                    logger.info(f\"Found article: {title} - {date}\")\n                else:\n                    logger.warning(f\"No date found for article: {title}, using fallback\")\n                    date = stable_fallback_date(full_url)\n\n                # Determine category from URL\n                category = \"Research\"\n                if \"/news/\" in href:\n                    category = \"News\"\n\n                article = {\n                    \"title\": title,\n                    \"link\": full_url,\n                    \"date\": date,  # Can be None\n                    \"category\": category,\n                    \"description\": title,\n                }\n\n                # Validate article\n                if validate_article(article):\n                    articles.append(article)\n                else:\n                    logger.debug(f\"Article failed validation: {full_url}\")\n\n            except Exception as e:\n                logger.warning(f\"Error parsing research link: {e!s}\")\n                continue\n\n        logger.info(f\"Successfully parsed {len(articles)} unique research articles\")\n        return articles\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(articles):\n    \"\"\"Generate RSS feed from research articles.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Anthropic Research\")\n        fg.description(\"Latest research papers and updates from Anthropic\")\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Anthropic Research Team\"})\n        fg.logo(\"https://www.anthropic.com/images/icons/apple-touch-icon.png\")\n        fg.subtitle(\"Latest research from Anthropic\")\n        setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n        # Sort articles for correct feed order (newest first in output)\n        # Articles without dates will appear at the end\n        articles_sorted = sort_posts_for_feed(articles, date_field=\"date\")\n\n        # Add entries\n        for article in articles_sorted:\n            fe = fg.add_entry()\n            fe.title(article[\"title\"])\n            fe.description(article[\"description\"])\n            fe.link(href=article[\"link\"])\n\n            # Only set published date if we have a valid date\n            if article[\"date\"]:\n                fe.published(article[\"date\"])\n\n            fe.category(term=article[\"category\"])\n            fe.id(article[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(full_reset=False):\n    \"\"\"Main function to generate RSS feed from Anthropic's research page.\n\n    Args:\n        full_reset: If True, fetch all articles. If False, merge with cache.\n    \"\"\"\n    try:\n        cache = load_cache(FEED_NAME)\n        cached_articles = deserialize_entries(cache.get(\"entries\", []))\n\n        if full_reset or not cached_articles:\n            mode = \"full reset\" if full_reset else \"no cache exists\"\n            logger.info(f\"Running full fetch ({mode})\")\n        else:\n            logger.info(\"Running incremental update\")\n\n        # Fetch research content using Selenium\n        html_content = fetch_research_content_selenium()\n\n        # Parse articles from HTML\n        new_articles = parse_research_html(html_content)\n\n        if not new_articles and not cached_articles:\n            logger.warning(\"No articles found. Please check the HTML structure.\")\n            return False\n\n        # Merge with cache or use fresh articles\n        if cached_articles and not full_reset:\n            articles = merge_entries(new_articles, cached_articles)\n        else:\n            articles = new_articles\n\n        # Save to cache\n        save_cache(FEED_NAME, articles)\n\n        # Generate RSS feed\n        feed = generate_rss_feed(articles)\n\n        # Save feed to file\n        save_rss_feed(feed, FEED_NAME)\n\n        logger.info(f\"Successfully generated RSS feed with {len(articles)} articles\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    import argparse\n\n    parser = argparse.ArgumentParser(description=\"Generate Anthropic Research RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all articles)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/blogsurgeai_feed_generator.py",
    "content": "#!/usr/bin/env python3\n\"\"\"\nRSS Feed Generator for Surge AI Blog\nScrapes https://www.surgehq.ai/blog and generates an RSS feed\n\"\"\"\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom dateutil import parser\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, stable_fallback_date\n\nlogger = setup_logging()\n\nFEED_NAME = \"blogsurgeai\"\nBLOG_URL = \"https://www.surgehq.ai/blog\"\n\n\ndef generate_blogsurgeai_feed():\n    \"\"\"Generate RSS feed for Surge AI blog\"\"\"\n\n    # Initialize feed generator\n    fg = FeedGenerator()\n    fg.id(BLOG_URL)\n    fg.title(\"Surge AI Blog\")\n    fg.author({\"name\": \"Surge AI\", \"email\": \"team@surgehq.ai\"})\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n    fg.language(\"en\")\n    fg.description(\n        \"New methods, current trends & software infrastructure for NLP. Articles written by our senior engineering leads from Google, Facebook, Twitter, Harvard, MIT, and Y Combinator\"\n    )\n\n    # Fetch the blog page\n    try:\n        html = fetch_page(BLOG_URL)\n    except Exception as e:\n        logger.error(f\"Error fetching blog page: {e}\")\n        return\n\n    # Parse HTML\n    soup = BeautifulSoup(html, \"html.parser\")\n\n    # Find all blog post items\n    blog_items = soup.find_all(\"div\", class_=\"blog-hero-cms-item\")\n\n    logger.info(f\"Found {len(blog_items)} blog posts\")\n\n    # Process each blog post\n    for item in blog_items:\n        try:\n            # Find the title\n            title_element = item.find(\"div\", class_=\"blog-hero-cms-item-title\")\n            if not title_element:\n                continue\n\n            title = title_element.get_text(strip=True)\n\n            # Find the link\n            link_element = item.find(\"a\", class_=\"blog-hero-cms-item-link\")\n            if not link_element:\n                continue\n\n            link = link_element.get(\"href\")\n            if not link.startswith(\"http\"):\n                link = \"https://www.surgehq.ai\" + link\n\n            # Find the description\n            desc_element = item.find(\"div\", class_=\"blog-hero-cms-item-desc\")\n            description = desc_element.get_text(strip=True) if desc_element else title\n\n            # Find the date\n            date_element = item.find(\"div\", class_=\"blog-hero-cms-item-date\")\n            pub_date = None  # Will be set by parsing or fallback\n\n            if date_element:\n                # Find the visible date element (the one without w-condition-invisible)\n                date_texts = date_element.find_all(\"div\", class_=\"txt fs-12 inline\")\n                for date_text in date_texts:\n                    if \"w-condition-invisible\" not in date_text.get(\"class\", []):\n                        date_str = date_text.get_text(strip=True)\n                        try:\n                            # Parse the date string (e.g., \"October 10, 2025\")\n                            pub_date = parser.parse(date_str)\n                            # Make timezone-aware\n                            if pub_date.tzinfo is None:\n                                pub_date = pytz.UTC.localize(pub_date)\n                            break\n                        except Exception as e:\n                            logger.warning(f\"Could not parse date '{date_str}': {e}\")\n\n            # Use stable fallback if no date was parsed\n            if pub_date is None:\n                pub_date = stable_fallback_date(link)\n\n            # Create feed entry\n            fe = fg.add_entry()\n            fe.id(link)\n            fe.title(title)\n            fe.link(href=link)\n            fe.published(pub_date)\n\n            # Set description\n            fe.description(description)\n\n            logger.info(f\"Added: {title}\")\n\n        except Exception as e:\n            logger.error(f\"Error processing blog item: {e}\")\n            continue\n\n    # Generate RSS feed\n    save_rss_feed(fg, FEED_NAME)\n\n\nif __name__ == \"__main__\":\n    generate_blogsurgeai_feed()\n"
  },
  {
    "path": "feed_generators/chanderramesh_blog.py",
    "content": "from datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date\n\nlogger = setup_logging()\n\nFEED_NAME = \"chanderramesh\"\nBLOG_URL = \"https://chanderramesh.com/writing\"\n\n\ndef parse_date(date_str):\n    \"\"\"Parse date string in format 'Month DD, YYYY'.\"\"\"\n    try:\n        # Parse date like \"June 12, 2025\" or \"February 8, 2025\"\n        date = datetime.strptime(date_str.strip(), \"%B %d, %Y\")\n        return date.replace(tzinfo=pytz.UTC)\n    except ValueError as e:\n        logger.warning(f\"Could not parse date: {date_str} - {e!s}\")\n        return None\n\n\ndef parse_writing_page(html_content, base_url=\"https://chanderramesh.com\"):\n    \"\"\"Parse the writing page and extract blog post information.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        blog_posts = []\n\n        # Find all essay cards - they are links with classes \"group\" and \"masonry-item\"\n        # Note: class_ parameter must be a list when searching for multiple classes\n        essay_links = soup.find_all(\"a\", class_=[\"group\", \"masonry-item\"])\n        logger.info(f\"Found {len(essay_links)} essays\")\n\n        for link in essay_links:\n            # Extract the URL\n            href = link.get(\"href\")\n            if not href:\n                continue\n\n            full_url = f\"{base_url}{href}\" if href.startswith(\"/\") else href\n\n            # Extract date\n            date_elem = link.find(\"p\", class_=\"text-muted-foreground mb-2 text-sm\")\n            date_str = date_elem.get_text(strip=True) if date_elem else None\n\n            # Extract title\n            title_elem = link.find(\"h3\", class_=\"font-semibold tracking-tight mb-3 text-xl font-serif\")\n            title = title_elem.get_text(strip=True) if title_elem else \"Untitled\"\n\n            # Extract description\n            desc_elem = link.find(\"p\", class_=\"leading-relaxed text-muted-foreground\")\n            description = desc_elem.get_text(strip=True) if desc_elem else \"\"\n\n            # Parse date\n            pub_date = (parse_date(date_str) if date_str else None) or stable_fallback_date(full_url)\n\n            blog_post = {\n                \"title\": title,\n                \"link\": full_url,\n                \"description\": description,\n                \"date\": pub_date,\n            }\n\n            blog_posts.append(blog_post)\n            logger.info(f\"Parsed: {title} ({date_str})\")\n\n        # Sort for correct feed order (newest first in output)\n        blog_posts = sort_posts_for_feed(blog_posts)\n\n        logger.info(f\"Successfully parsed {len(blog_posts)} blog posts\")\n        return blog_posts\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(blog_posts):\n    \"\"\"Generate RSS feed from blog posts.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Chander Ramesh - Writing\")\n        fg.description(\"Essays by Chander Ramesh covering software, startups, investing, and philosophy\")\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Chander Ramesh\"})\n        fg.subtitle(\"Essays covering software, startups, investing, and philosophy\")\n        setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n        # Add entries\n        for post in blog_posts:\n            fe = fg.add_entry()\n            fe.title(post[\"title\"])\n            fe.description(post[\"description\"])\n            fe.link(href=post[\"link\"])\n            fe.published(post[\"date\"])\n            fe.id(post[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main():\n    \"\"\"Main function to generate RSS feed from blog URL.\"\"\"\n    try:\n        # Fetch blog content\n        html_content = fetch_page(BLOG_URL)\n\n        # Parse blog posts\n        blog_posts = parse_writing_page(html_content)\n\n        # Generate RSS feed\n        feed = generate_rss_feed(blog_posts)\n\n        # Save feed to file\n        save_rss_feed(feed, FEED_NAME)\n\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/claude_blog.py",
    "content": "#!/usr/bin/env python3\n\"\"\"Generate RSS feed for Claude Blog (claude.com/blog).\"\"\"\n\nimport argparse\nimport html\nimport re\nfrom datetime import datetime\n\nimport pytz\nimport requests\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n)\n\nlogger = setup_logging()\n\nBLOG_URL = \"https://claude.com/blog\"\nFEED_NAME = \"claude\"\nBASE_URL = \"https://claude.com\"\n\nDATE_PATTERN = re.compile(\n    r\"(January|February|March|April|May|June|July|August|September|October|November|December)\\s+\\d{1,2},\\s+\\d{4}\"\n)\n\n# Claude blog requires a custom header for Webflow/Finsweet\nCLAUDE_HEADERS = {\n    \"X-Webflow-App-ID\": \"finsweet\",\n    \"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36\",\n}\n\n\ndef fetch_page(url):\n    \"\"\"Fetch a single page HTML with Finsweet header.\"\"\"\n    headers = CLAUDE_HEADERS\n    response = requests.get(url, headers=headers, timeout=30)\n    response.raise_for_status()\n    return response.text\n\n\ndef extract_pagination_ids(html_content):\n    \"\"\"Extract pagination collection IDs from the HTML.\"\"\"\n    pattern = r\"\\?([a-f0-9]+)_page=\\d+\"\n    matches = re.findall(pattern, html_content)\n    return list(set(matches))\n\n\ndef parse_date(date_str):\n    \"\"\"Parse date string like 'January 12, 2026' to datetime.\"\"\"\n    try:\n        return datetime.strptime(date_str, \"%B %d, %Y\")\n    except ValueError:\n        return None\n\n\ndef parse_posts(html_content):\n    \"\"\"Parse the blog HTML content and extract post information.\n\n    Returns a list of unique posts, deduplicated by URL.\n    \"\"\"\n    soup = BeautifulSoup(html_content, \"html.parser\")\n    posts_by_url = {}\n\n    for item in soup.select(\".w-dyn-item\"):\n        link = item.select_one('a[href^=\"/blog/\"]')\n        if not link:\n            continue\n\n        href = link.get(\"href\", \"\")\n        if \"/blog/category/\" in href or not href:\n            continue\n\n        full_url = f\"{BASE_URL}{href}\"\n\n        # Skip if we already have this post (keep the one with most data)\n        if full_url in posts_by_url:\n            existing = posts_by_url[full_url]\n            # Only update if existing has no date and this one does\n            item_text = item.get_text()\n            date_match = DATE_PATTERN.search(item_text)\n            if not existing.get(\"date\") and date_match:\n                pass  # Continue to update\n            else:\n                continue  # Keep existing\n\n        # Extract title\n        title = None\n        h2 = item.select_one(\"h2\")\n        if h2:\n            title = h2.get_text(strip=True)\n        if not title:\n            title = link.get(\"data-cta-copy\", \"\")\n        if not title:\n            for tag in [\"h3\", \"h4\", \".u-text-style-h6\"]:\n                el = item.select_one(tag)\n                if el:\n                    title = el.get_text(strip=True)\n                    break\n\n        # Extract date\n        date_obj = None\n        item_text = item.get_text()\n        date_match = DATE_PATTERN.search(item_text)\n        if date_match:\n            date_obj = parse_date(date_match.group(0))\n\n        # Extract category\n        category = None\n        category_el = item.select_one('[fs-list-field=\"category\"]')\n        if category_el:\n            category = category_el.get_text(strip=True)\n        if not category:\n            data_category = item.get(\"data-category\")\n            if data_category:\n                category = data_category\n\n        # Extract description\n        description = None\n        desc_el = item.select_one(\".card_blog_description, .u-text-style-body-2, p\")\n        if desc_el:\n            description = desc_el.get_text(strip=True)\n\n        if title and href:\n            title = html.unescape(title)\n            if description:\n                description = html.unescape(description)\n            posts_by_url[full_url] = {\n                \"link\": full_url,\n                \"title\": title,\n                \"date\": date_obj.strftime(\"%Y-%m-%d\") if date_obj else None,\n                \"category\": category,\n                \"description\": description or title,\n            }\n\n    return list(posts_by_url.values())\n\n\ndef fetch_all_pages():\n    \"\"\"Follow pagination until no new posts. Returns all posts.\"\"\"\n    logger.info(f\"Fetching main page: {BLOG_URL}\")\n    html_content = fetch_page(BLOG_URL)\n    all_posts = parse_posts(html_content)\n    logger.info(f\"Found {len(all_posts)} posts on main page\")\n\n    # Get unique post URLs to track duplicates\n    seen_urls = {p[\"link\"] for p in all_posts}\n\n    # Extract pagination collection IDs\n    collection_ids = extract_pagination_ids(html_content)\n    logger.info(f\"Found pagination IDs: {collection_ids}\")\n\n    for collection_id in collection_ids:\n        page = 2\n        consecutive_empty = 0\n\n        while consecutive_empty < 2:\n            page_url = f\"{BLOG_URL}?{collection_id}_page={page}\"\n            logger.info(f\"Fetching: {page_url}\")\n\n            try:\n                page_html = fetch_page(page_url)\n            except requests.RequestException as e:\n                logger.warning(f\"Failed to fetch page {page}: {e}\")\n                break\n\n            page_posts = parse_posts(page_html)\n            new_posts = [p for p in page_posts if p[\"link\"] not in seen_urls]\n\n            if not new_posts:\n                consecutive_empty += 1\n                logger.info(f\"  No new posts (attempt {consecutive_empty})\")\n            else:\n                consecutive_empty = 0\n                logger.info(f\"  Found {len(new_posts)} new posts\")\n                all_posts.extend(new_posts)\n                seen_urls.update(p[\"link\"] for p in new_posts)\n\n            page += 1\n\n            if page > 50:\n                logger.info(\"  Reached page limit, stopping\")\n                break\n\n    # Sort for correct feed order (newest first in output)\n    sorted_posts = sort_posts_for_feed(all_posts, date_field=\"date\")\n    logger.info(f\"Total unique posts across all pages: {len(sorted_posts)}\")\n    return sorted_posts\n\n\ndef generate_rss_feed(posts):\n    \"\"\"Generate RSS feed from blog posts.\"\"\"\n    fg = FeedGenerator()\n    fg.title(\"Claude Blog\")\n    fg.description(\n        \"Get practical guidance and best practices for building with Claude. \"\n        \"Technical guides, real-world examples, and insights from Anthropic's \"\n        \"engineering and research teams.\"\n    )\n    fg.language(\"en\")\n\n    fg.author({\"name\": \"Anthropic\", \"email\": \"blog@anthropic.com\"})\n    fg.subtitle(\"Latest updates from Claude Blog\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for post in posts:\n        fe = fg.add_entry()\n        fe.title(post[\"title\"])\n        fe.description(post[\"description\"])\n        fe.link(href=post[\"link\"])\n        fe.id(post[\"link\"])\n\n        if post.get(\"category\"):\n            fe.category(term=post[\"category\"])\n\n        if post.get(\"date\"):\n            try:\n                dt = post[\"date\"] if isinstance(post[\"date\"], datetime) else datetime.strptime(post[\"date\"], \"%Y-%m-%d\")\n                if dt.tzinfo is None:\n                    dt = dt.replace(tzinfo=pytz.UTC)\n                fe.published(dt)\n            except (ValueError, TypeError):\n                pass\n\n    logger.info(f\"Generated RSS feed with {len(posts)} entries\")\n    return fg\n\n\ndef main(full_reset=False):\n    \"\"\"Main function to generate RSS feed from blog URL.\n\n    Args:\n        full_reset: If True, fetch all pages. If False, only fetch page 1\n                   and merge with cached posts.\n    \"\"\"\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_entries:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n        posts = fetch_all_pages()\n    else:\n        logger.info(\"Running incremental update (page 1 only)\")\n        html_content = fetch_page(BLOG_URL)\n        new_posts = parse_posts(html_content)\n        logger.info(f\"Found {len(new_posts)} posts on page 1\")\n        posts = merge_entries(new_posts, cached_entries)\n\n    save_cache(FEED_NAME, posts)\n    feed = generate_rss_feed(posts)\n    save_rss_feed(feed, FEED_NAME)\n\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Claude Blog RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all pages)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/cleanup_deprecated_feeds.py",
    "content": "\"\"\"Delete RSS feed XML files whose deprecation notice is older than the threshold.\n\nA feed is considered \"retired\" once ``deprecate_feed.py`` has injected a\nsunset ``<item>`` (GUID prefix ``deprecation-notice-``) and the human has\nremoved the generator, registry entry, Make target, and README row. This\nscript handles the final step: deleting the tombstone XML after enough time\nhas passed that existing subscribers have almost certainly seen the notice.\n\nDefault mode is dry-run: prints a punch list of eligible files. Use\n``--apply`` to actually delete. The GitHub Actions workflow\n``cleanup_deprecated_feeds.yml`` runs this with ``--apply`` on a monthly cron.\n\"\"\"\n\nimport argparse\nimport xml.etree.ElementTree as ET\nfrom datetime import datetime, timedelta\nfrom pathlib import Path\n\nimport pytz\n\nfrom utils import get_feeds_dir, setup_logging\n\nlogger = setup_logging()\n\nDEPRECATION_GUID_PREFIX = \"deprecation-notice-\"\nRFC822_FORMAT = \"%a, %d %b %Y %H:%M:%S %z\"\nDEFAULT_THRESHOLD_DAYS = 90\n\n\ndef find_deprecation_notice(feed_file: Path) -> datetime | None:\n    \"\"\"Return the pubDate of the deprecation <item> in ``feed_file``, or None.\"\"\"\n    try:\n        tree = ET.parse(feed_file)\n    except ET.ParseError as e:\n        logger.warning(f\"Could not parse {feed_file}: {e}\")\n        return None\n\n    channel = tree.getroot().find(\"channel\")\n    if channel is None:\n        return None\n\n    # A feed should only ever carry one tombstone, but keep looking if the\n    # first match is malformed rather than failing the whole file.\n    for item in channel.findall(\"item\"):\n        guid = item.find(\"guid\")\n        if guid is None or not guid.text or not guid.text.startswith(DEPRECATION_GUID_PREFIX):\n            continue\n\n        pub_date_elem = item.find(\"pubDate\")\n        if pub_date_elem is None or not pub_date_elem.text:\n            logger.warning(f\"Deprecation notice in {feed_file} has no pubDate; skipping item\")\n            continue\n        try:\n            return datetime.strptime(pub_date_elem.text, RFC822_FORMAT)\n        except ValueError as e:\n            logger.warning(f\"Could not parse pubDate in {feed_file} ({e}); skipping item\")\n            continue\n    return None\n\n\ndef find_eligible_feeds(threshold_days: int) -> list[tuple[Path, int]]:\n    \"\"\"Return (path, age_days) for every feed XML whose notice is older than threshold_days.\"\"\"\n    now = datetime.now(pytz.UTC)\n    cutoff = now - timedelta(days=threshold_days)\n    eligible: list[tuple[Path, int]] = []\n    for feed_file in sorted(get_feeds_dir().glob(\"feed_*.xml\")):\n        pub_date = find_deprecation_notice(feed_file)\n        if pub_date is None:\n            continue\n        age_days = (now - pub_date).days\n        if pub_date < cutoff:\n            eligible.append((feed_file, age_days))\n    return eligible\n\n\ndef main() -> int:\n    parser = argparse.ArgumentParser(description=__doc__.splitlines()[0])\n    parser.add_argument(\n        \"--threshold-days\",\n        type=int,\n        default=DEFAULT_THRESHOLD_DAYS,\n        help=f\"Age in days after which a deprecated feed XML is deleted (default: {DEFAULT_THRESHOLD_DAYS})\",\n    )\n    parser.add_argument(\n        \"--apply\",\n        action=\"store_true\",\n        help=\"Actually delete eligible files (default is dry-run)\",\n    )\n    args = parser.parse_args()\n\n    eligible = find_eligible_feeds(args.threshold_days)\n\n    if not eligible:\n        logger.info(f\"No deprecated feeds older than {args.threshold_days} days\")\n        return 0\n\n    logger.info(f\"Found {len(eligible)} deprecated feed(s) older than {args.threshold_days} days:\")\n    for feed_file, age_days in eligible:\n        logger.info(f\"  {feed_file.name} (notice is {age_days} days old)\")\n\n    if args.apply:\n        for feed_file, _ in eligible:\n            feed_file.unlink()\n            logger.info(f\"Deleted {feed_file}\")\n    else:\n        logger.info(\"Dry run. Re-run with --apply to delete these files.\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    raise SystemExit(main())\n"
  },
  {
    "path": "feed_generators/cohere_blog.py",
    "content": "\"\"\"Generate RSS feed for the Cohere Blog (https://cohere.com/blog).\n\nThe Cohere blog is built on Ghost CMS. We fetch posts directly from the Ghost\nContent API instead of scraping HTML.\n\"\"\"\n\nimport argparse\nfrom datetime import datetime\n\nimport pytz\nimport requests\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"cohere\"\nBLOG_URL = \"https://cohere.com/blog\"\nGHOST_API_URL = \"https://cohere-ai.ghost.io/ghost/api/content/posts/\"\n# Ghost Content API keys are intentionally public (like a Stripe publishable\n# key). This is the key the cohere.com/blog front-end itself uses; it is\n# read-only and rate-limited by Ghost.\nGHOST_API_KEY = \"572d288a9364f8e4186af1d60a\"\nMAX_POSTS_FULL = 50\nMAX_POSTS_INCREMENTAL = 15\n\n\ndef fetch_posts_page(limit: int, page: int) -> dict:\n    \"\"\"Fetch a single page of posts from the Ghost Content API.\"\"\"\n    params = {\n        \"key\": GHOST_API_KEY,\n        \"limit\": limit,\n        \"page\": page,\n        \"include\": \"tags,authors\",\n        \"order\": \"published_at desc\",\n    }\n    headers = {\n        \"User-Agent\": \"Mozilla/5.0 (compatible; RSS Feed Generator)\",\n        \"Accept\": \"application/json\",\n    }\n    response = requests.get(GHOST_API_URL, params=params, headers=headers, timeout=30)\n    response.raise_for_status()\n    return response.json()\n\n\ndef parse_api_posts(api_data: dict) -> list[dict]:\n    \"\"\"Extract post dicts from a Ghost API response.\"\"\"\n    posts = []\n    for post in api_data.get(\"posts\", []):\n        title = (post.get(\"title\") or \"\").strip()\n        if not title:\n            continue\n\n        slug = post.get(\"slug\", \"\")\n        link = f\"https://cohere.com/blog/{slug}\"\n\n        date = None\n        published_at = post.get(\"published_at\")\n        if published_at:\n            try:\n                date = datetime.fromisoformat(published_at)\n                if date.tzinfo is None:\n                    date = date.replace(tzinfo=pytz.UTC)\n            except ValueError:\n                logger.warning(f\"Could not parse date for: {title}\")\n        if not date:\n            date = stable_fallback_date(link)\n\n        description = post.get(\"custom_excerpt\") or title\n        tags = post.get(\"tags\") or []\n        category = tags[0][\"name\"] if tags else \"Blog\"\n\n        posts.append(\n            {\n                \"title\": title,\n                \"link\": link,\n                \"date\": date,\n                \"description\": description,\n                \"category\": category,\n            }\n        )\n    return posts\n\n\ndef fetch_all_posts(max_posts: int = MAX_POSTS_FULL) -> list[dict]:\n    \"\"\"Fetch posts across Ghost API pages until max_posts is reached.\"\"\"\n    all_posts = []\n    page = 1\n    per_page = min(max_posts, 15)\n\n    while len(all_posts) < max_posts:\n        logger.info(f\"Fetching page {page} (limit={per_page})\")\n        api_data = fetch_posts_page(limit=per_page, page=page)\n        posts = parse_api_posts(api_data)\n        if not posts:\n            logger.info(f\"No posts returned on page {page}, stopping\")\n            break\n\n        all_posts.extend(posts)\n        logger.info(f\"Page {page}: {len(posts)} posts (total: {len(all_posts)})\")\n\n        pagination = api_data.get(\"meta\", {}).get(\"pagination\", {})\n        if not pagination.get(\"next\"):\n            logger.info(\"No more pages available\")\n            break\n        page += 1\n\n    return all_posts[:max_posts]\n\n\ndef generate_rss_feed(posts: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"The Cohere Blog\")\n    fg.description(\"Latest news, research, and product updates from Cohere\")\n    fg.language(\"en\")\n    fg.author({\"name\": \"Cohere\"})\n    fg.logo(\"https://cohere.com/favicon.ico\")\n    fg.subtitle(\"Enterprise AI research and product updates from Cohere\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for post in sort_posts_for_feed(posts, date_field=\"date\"):\n        fe = fg.add_entry()\n        fe.title(post[\"title\"])\n        fe.description(post[\"description\"])\n        fe.link(href=post[\"link\"])\n        fe.id(post[\"link\"])\n        fe.category(term=post[\"category\"])\n        if post.get(\"date\"):\n            fe.published(post[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(posts)} entries\")\n    return fg\n\n\ndef main(full_reset: bool = False) -> bool:\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_entries:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n        new_posts = fetch_all_posts(max_posts=MAX_POSTS_FULL)\n        posts = sort_posts_for_feed(new_posts, date_field=\"date\")\n    else:\n        logger.info(\"Running incremental update\")\n        api_data = fetch_posts_page(limit=MAX_POSTS_INCREMENTAL, page=1)\n        new_posts = parse_api_posts(api_data)\n        logger.info(f\"Fetched {len(new_posts)} posts from API\")\n        posts = merge_entries(new_posts, cached_entries)\n\n    if not posts:\n        logger.warning(\"No posts found. Check the Ghost API response.\")\n        return False\n\n    save_cache(FEED_NAME, posts)\n    feed = generate_rss_feed(posts)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Cohere Blog RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch up to 50 posts)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/cursor_blog.py",
    "content": "import argparse\nimport re\nfrom datetime import datetime\n\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    deserialize_entries,\n    fetch_page,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n)\n\nlogger = setup_logging()\n\nBLOG_URL = \"https://cursor.com/blog\"\nFEED_NAME = \"cursor\"\n\n\ndef parse_posts(html):\n    \"\"\"Extract posts from HTML. Returns (posts, next_page_url or None).\"\"\"\n    soup = BeautifulSoup(html, \"html.parser\")\n    posts = []\n\n    for card in soup.find_all(\"a\", class_=re.compile(r\"card\")):\n        href = card.get(\"href\", \"\")\n        if \"/blog/\" not in href or \"/topic/\" in href or \"/page/\" in href:\n            continue\n\n        # Make URL absolute\n        if href.startswith(\"/\"):\n            href = f\"https://cursor.com{href}\"\n\n        ps = card.find_all(\"p\")\n        title = ps[0].get_text(strip=True) if ps else \"\"\n        description = ps[1].get_text(strip=True) if len(ps) > 1 else \"\"\n\n        time_el = card.find(\"time\")\n        date = time_el.get(\"datetime\", \"\") if time_el else \"\"\n\n        category_el = card.find(\"span\", class_=\"capitalize\")\n        category = category_el.get_text(strip=True).rstrip(\" ·\") if category_el else \"\"\n\n        posts.append(\n            {\n                \"link\": href,\n                \"title\": title,\n                \"description\": description,\n                \"date\": date,\n                \"category\": category,\n            }\n        )\n\n    # Find next page link - look for links containing \"Next\" or \"Older\"\n    next_link = None\n    for link in soup.find_all(\"a\", href=re.compile(r\"/blog/page/\\d+\")):\n        link_text = link.get_text(strip=True)\n        if \"Next\" in link_text or \"Older\" in link_text:\n            next_link = link\n            break\n\n    next_url = None\n    if next_link:\n        href = next_link.get(\"href\")\n        # Make relative URLs absolute\n        if href.startswith(\"/\"):\n            next_url = f\"https://cursor.com{href}\"\n        else:\n            next_url = href\n\n    return posts, next_url\n\n\ndef fetch_all_pages():\n    \"\"\"Follow pagination until no Next link. Returns all posts.\"\"\"\n    all_posts = []\n    url = BLOG_URL\n    page_num = 1\n\n    while url:\n        logger.info(f\"Fetching page {page_num}: {url}\")\n        html = fetch_page(url)\n        posts, next_url = parse_posts(html)\n        all_posts.extend(posts)\n        logger.info(f\"Found {len(posts)} posts on page {page_num}\")\n\n        url = next_url\n        page_num += 1\n\n    # Dedupe by URL (in case of overlaps)\n    seen = set()\n    unique_posts = []\n    for post in all_posts:\n        if post[\"link\"] not in seen:\n            unique_posts.append(post)\n            seen.add(post[\"link\"])\n\n    # Sort for correct feed order (newest first in output)\n    sorted_posts = sort_posts_for_feed(unique_posts, date_field=\"date\")\n    logger.info(f\"Total unique posts across all pages: {len(sorted_posts)}\")\n    return sorted_posts\n\n\ndef generate_rss_feed(posts):\n    \"\"\"Generate RSS feed from posts.\"\"\"\n    fg = FeedGenerator()\n    fg.title(\"Cursor Blog\")\n    fg.description(\"The AI Code Editor\")\n    fg.language(\"en\")\n    fg.author({\"name\": \"Cursor\"})\n    fg.logo(\"https://cursor.com/favicon.ico\")\n    fg.subtitle(\"Latest updates from Cursor\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for post in posts:\n        fe = fg.add_entry()\n        fe.title(post[\"title\"])\n        fe.description(post[\"description\"])\n        fe.link(href=post[\"link\"])\n        fe.id(post[\"link\"])\n\n        if post.get(\"date\"):\n            try:\n                dt = datetime.fromisoformat(post[\"date\"].replace(\"Z\", \"+00:00\"))\n                fe.published(dt)\n            except ValueError:\n                pass\n\n        if post.get(\"category\"):\n            fe.category(term=post[\"category\"])\n\n    logger.info(f\"Generated RSS feed with {len(posts)} entries\")\n    return fg\n\n\ndef main(full_reset=False):\n    \"\"\"Main function to generate RSS feed.\"\"\"\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_entries:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n        posts = fetch_all_pages()\n    else:\n        logger.info(\"Running incremental update (page 1 only)\")\n        html = fetch_page(BLOG_URL)\n        new_posts, _ = parse_posts(html)\n        logger.info(f\"Found {len(new_posts)} posts on page 1\")\n        posts = merge_entries(new_posts, cached_entries)\n\n    save_cache(FEED_NAME, posts)\n    feed = generate_rss_feed(posts)\n    save_rss_feed(feed, FEED_NAME)\n\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Cursor Blog RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all pages)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/dagster_blog.py",
    "content": "import argparse\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    deserialize_entries,\n    fetch_page,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n)\n\nlogger = setup_logging()\n\nBLOG_URL = \"https://dagster.io/blog\"\nFEED_NAME = \"dagster\"\n# Dagster uses Webflow CMS pagination with this query param\nPAGINATION_PARAM = \"a17fdf47_page\"\n\n\ndef parse_posts(html_content):\n    \"\"\"Parse the blog HTML content and extract post information.\n\n    Returns (posts, has_next_page).\n    \"\"\"\n    soup = BeautifulSoup(html_content, \"html.parser\")\n    blog_posts = []\n\n    # Parse the featured blog post (if present)\n    featured_post = soup.select_one(\"div.featured_blog_link\")\n    if featured_post:\n        title_elem = featured_post.select_one(\"h2.heading-style-h5\")\n        date_elem = featured_post.select_one(\"p.text-color-neutral-500\")\n        description_elem = featured_post.select_one(\"p.text-color-neutral-700\")\n        link_elem = featured_post.select_one(\"a.clickable_link\")\n\n        if title_elem and date_elem and link_elem:\n            title = title_elem.text.strip()\n            date_str = date_elem.text.strip()\n            try:\n                date_obj = datetime.strptime(date_str, \"%B %d, %Y\")\n            except ValueError:\n                logger.warning(f\"Could not parse featured post date: {date_str}\")\n                date_obj = None\n\n            if date_obj:\n                description = description_elem.text.strip() if description_elem else \"\"\n                link = link_elem.get(\"href\", \"\")\n\n                if link.startswith(\"/\"):\n                    link = f\"https://dagster.io{link}\"\n\n                if link:\n                    blog_posts.append(\n                        {\n                            \"link\": link,\n                            \"title\": title,\n                            \"date\": date_obj.strftime(\"%Y-%m-%d\"),\n                            \"description\": description,\n                        }\n                    )\n\n    # Find all regular blog post cards\n    posts = soup.select(\"div.blog_card\")\n\n    for post in posts:\n        title_elem = post.select_one(\"h3.blog_card_title\")\n        if not title_elem:\n            continue\n        title = title_elem.text.strip()\n\n        date_elem = post.select_one(\"p.text-color-neutral-500.text-size-small\")\n        if not date_elem:\n            continue\n        date_str = date_elem.text.strip()\n        try:\n            date_obj = datetime.strptime(date_str, \"%B %d, %Y\")\n        except ValueError:\n            logger.warning(f\"Could not parse date: {date_str}\")\n            continue\n\n        description_elem = post.select_one('p[fs-cmsfilter-field=\"description\"]')\n        description = description_elem.text.strip() if description_elem else \"\"\n\n        link_elem = post.select_one(\"a.clickable_link\")\n        if not link_elem or not link_elem.get(\"href\"):\n            continue\n        link = link_elem[\"href\"]\n\n        if link.startswith(\"/\"):\n            link = f\"https://dagster.io{link}\"\n\n        blog_posts.append(\n            {\n                \"link\": link,\n                \"title\": title,\n                \"date\": date_obj.strftime(\"%Y-%m-%d\"),\n                \"description\": description,\n            }\n        )\n\n    # Check for \"Load more\" / next page link\n    next_link = soup.select_one(\"a.w-pagination-next\")\n    has_next_page = next_link is not None and next_link.get(\"href\")\n\n    return blog_posts, has_next_page\n\n\ndef fetch_all_pages():\n    \"\"\"Follow pagination until no next link. Returns all posts.\"\"\"\n    all_posts = []\n    page_num = 1\n\n    while True:\n        if page_num == 1:\n            url = BLOG_URL\n        else:\n            url = f\"{BLOG_URL}?{PAGINATION_PARAM}={page_num}\"\n\n        logger.info(f\"Fetching page {page_num}: {url}\")\n        html = fetch_page(url)\n        posts, has_next_page = parse_posts(html)\n        all_posts.extend(posts)\n        logger.info(f\"Found {len(posts)} posts on page {page_num}\")\n\n        if not has_next_page:\n            break\n        page_num += 1\n\n    # Dedupe by URL\n    seen = set()\n    unique_posts = []\n    for post in all_posts:\n        if post[\"link\"] not in seen:\n            unique_posts.append(post)\n            seen.add(post[\"link\"])\n\n    # Sort for correct feed order (newest first in output)\n    sorted_posts = sort_posts_for_feed(unique_posts, date_field=\"date\")\n    logger.info(f\"Total unique posts across all pages: {len(sorted_posts)}\")\n    return sorted_posts\n\n\ndef generate_rss_feed(posts):\n    \"\"\"Generate RSS feed from blog posts.\"\"\"\n    fg = FeedGenerator()\n    fg.title(\"Dagster Blog\")\n    fg.description(\n        \"Read the latest from the Dagster team: insights, tutorials, and updates on data engineering, orchestration, and building better pipelines.\"\n    )\n    fg.language(\"en\")\n\n    fg.author({\"name\": \"Dagster\"})\n    fg.subtitle(\"Latest updates from Dagster\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for post in posts:\n        fe = fg.add_entry()\n        fe.title(post[\"title\"])\n        fe.description(post[\"description\"])\n        fe.link(href=post[\"link\"])\n        fe.id(post[\"link\"])\n\n        if post.get(\"date\"):\n            try:\n                dt = post[\"date\"] if isinstance(post[\"date\"], datetime) else datetime.strptime(post[\"date\"], \"%Y-%m-%d\")\n                if dt.tzinfo is None:\n                    dt = dt.replace(tzinfo=pytz.UTC)\n                fe.published(dt)\n            except (ValueError, TypeError):\n                pass\n\n    logger.info(f\"Generated RSS feed with {len(posts)} entries\")\n    return fg\n\n\ndef main(full_reset=False):\n    \"\"\"Main function to generate RSS feed from blog URL.\n\n    Args:\n        full_reset: If True, fetch all pages. If False, only fetch page 1\n                   and merge with cached posts.\n    \"\"\"\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_entries:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n        posts = fetch_all_pages()\n    else:\n        logger.info(\"Running incremental update (page 1 only)\")\n        html = fetch_page(BLOG_URL)\n        new_posts, _ = parse_posts(html)\n        logger.info(f\"Found {len(new_posts)} posts on page 1\")\n        posts = merge_entries(new_posts, cached_entries)\n\n    save_cache(FEED_NAME, posts)\n    feed = generate_rss_feed(posts)\n    save_rss_feed(feed, FEED_NAME)\n\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Dagster Blog RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all pages)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/deeplearningai_the_batch.py",
    "content": "import argparse\nimport re\n\nimport pytz\nimport requests\nfrom bs4 import BeautifulSoup\nfrom dateutil import parser as date_parser\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    deserialize_entries,\n    fetch_page,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"the_batch\"\nBLOG_URL = \"https://www.deeplearning.ai/the-batch/\"\nMAX_PAGES = 30  # Safety limit for pagination\n\n\ndef parse_date(value: str | None, fallback_id: str = \"\"):\n    \"\"\"Parse date text/datetime strings into timezone-aware datetime.\"\"\"\n    if not value:\n        return stable_fallback_date(fallback_id)\n    try:\n        dt = date_parser.parse(value)\n        if dt.tzinfo is None:\n            dt = dt.replace(tzinfo=pytz.UTC)\n        return dt\n    except (ValueError, TypeError) as exc:\n        logger.warning(\"Unable to parse date %r (%s); using fallback\", value, exc)\n        return stable_fallback_date(fallback_id)\n\n\ndef clean_text(text: str | None) -> str | None:\n    if text is None:\n        return None\n    return \" \".join(text.split())\n\n\ndef is_valid_article_link(href: str) -> bool:\n    \"\"\"Check if href is a valid article link (not a tag, category, or page link).\"\"\"\n    if not href:\n        return False\n    # Skip tag links, page links, and the main batch page\n    if \"/tag/\" in href or \"/page/\" in href:\n        return False\n    if href in (\"/the-batch/\", \"/the-batch\"):\n        return False\n    # Must be a the-batch article link\n    return href.startswith(\"/the-batch/\") or \"deeplearning.ai/the-batch/\" in href\n\n\ndef normalize_link(href: str) -> str:\n    \"\"\"Convert relative URL to absolute URL.\"\"\"\n    if href.startswith(\"/\"):\n        return f\"https://www.deeplearning.ai{href}\"\n    return href\n\n\ndef extract_date_text(element) -> str | None:\n    \"\"\"Extract date text from element or its children.\n\n    Looks for:\n    - <time> elements with datetime attribute\n    - Tag links like <a href=\"/the-batch/tag/jan-16-2026/\">Jan 16, 2026</a>\n    - Plain text matching date patterns\n    \"\"\"\n    if element is None:\n        return None\n\n    # Check for time element\n    time_el = element.find(\"time\")\n    if time_el:\n        return time_el.get(\"datetime\") or time_el.get_text(\" \", strip=True)\n\n    # Check for date in tag links (new format)\n    for anchor in element.find_all(\"a\", href=True):\n        href = anchor.get(\"href\", \"\")\n        if \"/tag/\" in href:\n            text = anchor.get_text(\" \", strip=True)\n            if text:\n                return text\n\n    # Date pattern for plain text (e.g., \"Dec 26, 2025\" or \"January 16, 2026\")\n    date_pattern = re.compile(\n        r\"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*\\s+\\d{1,2},?\\s+\\d{4}\",\n        re.I,\n    )\n    for tag in element.find_all([\"a\", \"div\", \"span\", \"p\"]):\n        text = tag.get_text(\" \", strip=True)\n        match = date_pattern.search(text or \"\")\n        if match:\n            return match.group(0)\n\n    # Check element's own text\n    text = element.get_text(\" \", strip=True) if hasattr(element, \"get_text\") else str(element)\n    match = date_pattern.search(text or \"\")\n    if match:\n        return match.group(0)\n\n    return None\n\n\ndef extract_description(element) -> str | None:\n    \"\"\"Extract description/excerpt from element or its parent context.\"\"\"\n    if element is None:\n        return None\n\n    # Prefer visible snippet if present (line clamp text)\n    summary = element.find(\n        lambda tag: (\n            tag.name in {\"div\", \"p\"}\n            and tag.get(\"class\")\n            and any(\"line-clamp\" in cls for cls in (tag.get(\"class\") or []))\n        )\n    )\n    if summary:\n        return clean_text(summary.get_text(\" \", strip=True))\n\n    # Check parent for description\n    parent = element.parent\n    if parent:\n        summary = parent.find(\n            lambda tag: (\n                tag.name in {\"div\", \"p\"}\n                and tag.get(\"class\")\n                and any(\"line-clamp\" in cls for cls in (tag.get(\"class\") or []))\n            )\n        )\n        if summary:\n            return clean_text(summary.get_text(\" \", strip=True))\n\n        first_para = parent.find(\"p\")\n        if first_para:\n            text = clean_text(first_para.get_text(\" \", strip=True))\n            # Skip if it looks like just a date\n            if text and len(text) > 20:\n                return text\n\n    return None\n\n\ndef parse_articles_from_html(html_content: str) -> list[dict]:\n    \"\"\"Parse articles from HTML content string.\n\n    The site uses a card-based layout without <article> tags. Articles are\n    identified by finding links to /the-batch/issue-* URLs and extracting\n    title/date from the link context.\n    \"\"\"\n    soup = BeautifulSoup(html_content, \"lxml\")\n    articles = []\n    seen_links = set()\n\n    # Find all links that point to article pages\n    for anchor in soup.find_all(\"a\", href=True):\n        href = anchor[\"href\"]\n        if not is_valid_article_link(href):\n            continue\n\n        link = normalize_link(href)\n        if link in seen_links:\n            continue\n        seen_links.add(link)\n\n        # Extract title from heading within the link or nearby\n        heading = anchor.find([\"h1\", \"h2\", \"h3\", \"h4\"])\n        if not heading:\n            # Try parent element for title\n            parent = anchor.parent\n            if parent:\n                heading = parent.find([\"h1\", \"h2\", \"h3\", \"h4\"])\n        if not heading:\n            # Use link text as fallback\n            text = clean_text(anchor.get_text(\" \", strip=True))\n            if text and len(text) > 10:\n                title = text\n            else:\n                continue\n        else:\n            title = clean_text(heading.get_text(\" \", strip=True))\n\n        if not title:\n            continue\n\n        # Extract date - look for tag links or date patterns near the link\n        date_text = extract_date_text(anchor)\n        if not date_text:\n            # Check parent/sibling elements\n            parent = anchor.parent\n            if parent:\n                date_text = extract_date_text(parent)\n        date = parse_date(date_text, fallback_id=link)\n\n        # Extract description from nearby paragraph or use title\n        description = extract_description(anchor) or title\n\n        articles.append(\n            {\n                \"title\": title,\n                \"link\": link,\n                \"date\": date,\n                \"description\": description,\n            }\n        )\n\n    logger.info(f\"Parsed {len(articles)} articles from HTML\")\n    return articles\n\n\ndef fetch_all_articles(max_pages: int = MAX_PAGES) -> list[dict]:\n    \"\"\"Fetch all articles by iterating through paginated pages.\"\"\"\n    all_articles = []\n    seen_links = set()\n\n    for page_num in range(1, max_pages + 1):\n        # Construct page URL\n        if page_num == 1:\n            url = BLOG_URL\n        else:\n            url = f\"{BLOG_URL}page/{page_num}/\"\n\n        try:\n            html_content = fetch_page(url)\n        except requests.exceptions.HTTPError as e:\n            if e.response.status_code == 404:\n                logger.info(f\"Page {page_num} not found (404), stopping pagination\")\n            else:\n                logger.info(f\"Error fetching page {page_num}: {e}\")\n            break\n        except Exception as e:\n            logger.info(f\"Error fetching page {page_num}, stopping pagination: {e}\")\n            break\n\n        # Check for 404-like conditions (page not found)\n        if \"Page not found\" in html_content or \"404\" in html_content[:1000]:\n            logger.info(f\"Page {page_num} not found, stopping pagination\")\n            break\n\n        # Parse articles from current page\n        page_articles = parse_articles_from_html(html_content)\n\n        if not page_articles:\n            logger.info(f\"No articles found on page {page_num}, stopping pagination\")\n            break\n\n        # Deduplicate and add new articles\n        new_count = 0\n        for article in page_articles:\n            if article[\"link\"] not in seen_links:\n                seen_links.add(article[\"link\"])\n                all_articles.append(article)\n                new_count += 1\n\n        logger.info(f\"Page {page_num}: Found {len(page_articles)} articles, {new_count} new\")\n\n        if new_count == 0:\n            logger.info(\"No new articles found, stopping pagination\")\n            break\n\n    logger.info(f\"Total articles fetched: {len(all_articles)}\")\n    return all_articles\n\n\ndef build_feed(articles: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"The Batch | DeepLearning.AI\")\n    fg.description(\"Weekly AI news and insights from DeepLearning.AI's The Batch.\")\n    fg.language(\"en\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    # Sort articles for correct feed order (newest first in output)\n    articles_sorted = sort_posts_for_feed(articles, date_field=\"date\")\n\n    for article in articles_sorted:\n        entry = fg.add_entry()\n        entry.title(article[\"title\"])\n        entry.link(href=article[\"link\"])\n        entry.id(article[\"link\"])\n        entry.published(article[\"date\"])\n        entry.description(article[\"description\"])\n\n    return fg\n\n\ndef main(full_reset=False):\n    \"\"\"Main function to generate RSS feed.\n\n    Args:\n        full_reset: If True, fetch all pages. If False, fetch only first 3 pages and merge with cache.\n    \"\"\"\n    cache = load_cache(FEED_NAME)\n    cached_articles = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_articles:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n        articles = fetch_all_articles(max_pages=MAX_PAGES)\n    else:\n        logger.info(\"Running incremental update (3 pages only)\")\n        new_articles = fetch_all_articles(max_pages=3)\n        logger.info(f\"Found {len(new_articles)} articles from recent pages\")\n        articles = merge_entries(new_articles, cached_articles)\n\n    if not articles:\n        logger.warning(\"No articles found\")\n        return False\n\n    # Save to cache\n    save_cache(FEED_NAME, articles)\n\n    feed = build_feed(articles)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(f\"Successfully generated RSS feed with {len(articles)} articles\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate DeepLearning.AI The Batch RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all pages)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/deprecate_feed.py",
    "content": "\"\"\"Inject a deprecation notice into a feed XML.\n\nUsed when a scraper is being retired (e.g., the site launched an official RSS feed).\nThe notice shows up as the newest entry in the feed, so subscribers see it in their\nRSS reader rather than silently losing updates.\n\nUsage:\n    uv run feed_generators/deprecate_feed.py \\\\\n        --feed=openai_research \\\\\n        --message=\"OpenAI now provides an official RSS feed.\" \\\\\n        --alternative=\"https://openai.com/blog/rss.xml\"\n\nAfter running, in the same PR, remove the generator script, the ``<name>:`` entry\nfrom ``feeds.yaml``, the ``feeds_<name>`` Make target, and the README row. Only\n``feeds/feed_<name>.xml`` (now carrying the tombstone notice) stays in place;\nit is deleted automatically after ~90 days by the\n``cleanup_deprecated_feeds.yml`` workflow.\n\"\"\"\n\nimport argparse\nfrom datetime import datetime\n\nimport pytz\nfrom lxml import etree as ET\n\nfrom utils import get_feeds_dir, setup_logging\n\nlogger = setup_logging()\n\nDEPRECATION_GUID_PREFIX = \"deprecation-notice-\"\nDEPRECATION_TITLE = \"[NOTICE] This feed is no longer maintained\"\n\n# lxml.etree is used (not the stdlib xml.etree.ElementTree) because the stdlib\n# parser drops unused namespace declarations and rewrites unregistered\n# namespace prefixes to ns0/ns1/... on round-trip. That silently corrupts\n# feedgen's <atom:link rel=\"self\"> and xmlns:content declarations. lxml\n# preserves the original xmlns bindings verbatim.\n\n# RFC 822 day-of-week and month tokens. Python's strftime(\"%a\"/\"%b\") honors the\n# current system locale, which breaks feed readers on non-English CI runners.\n# Build the pubDate explicitly to keep the round-trip locale-independent.\nRFC822_WEEKDAYS = (\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\")\nRFC822_MONTHS = (\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\")\n\n\ndef format_rfc822(dt: datetime) -> str:\n    \"\"\"Format a datetime as RFC 822 pubDate without relying on system locale.\"\"\"\n    day = RFC822_WEEKDAYS[dt.weekday()]\n    month = RFC822_MONTHS[dt.month - 1]\n    return f\"{day}, {dt.day:02d} {month} {dt.year} {dt.hour:02d}:{dt.minute:02d}:{dt.second:02d} +0000\"\n\n\ndef deprecate_feed(feed_name: str, message: str, alternative_url: str | None = None) -> bool:\n    \"\"\"Inject a deprecation <item> into feeds/feed_<feed_name>.xml.\n\n    The entry uses a stable GUID (``deprecation-notice-<feed_name>``) so repeated\n    runs do not duplicate the notice. Returns True on success, False otherwise.\n    \"\"\"\n    feed_file = get_feeds_dir() / f\"feed_{feed_name}.xml\"\n    if not feed_file.exists():\n        logger.error(f\"Feed file not found: {feed_file}\")\n        return False\n\n    tree = ET.parse(feed_file)\n    root = tree.getroot()\n    channel = root.find(\"channel\")\n    if channel is None:\n        logger.error(\"No <channel> element found in feed XML\")\n        return False\n\n    guid_value = f\"{DEPRECATION_GUID_PREFIX}{feed_name}\"\n    for item in channel.findall(\"item\"):\n        guid = item.find(\"guid\")\n        if guid is not None and guid.text == guid_value:\n            logger.info(f\"Deprecation notice already present in {feed_file}, skipping\")\n            return True\n\n    body = message\n    if alternative_url:\n        body += f\"\\n\\nRecommended alternative: {alternative_url}\"\n    pub_date = format_rfc822(datetime.now(pytz.UTC))\n\n    notice = ET.Element(\"item\")\n    ET.SubElement(notice, \"title\").text = DEPRECATION_TITLE\n    ET.SubElement(notice, \"description\").text = body\n    ET.SubElement(notice, \"guid\", isPermaLink=\"false\").text = guid_value\n    ET.SubElement(notice, \"pubDate\").text = pub_date\n    if alternative_url:\n        ET.SubElement(notice, \"link\").text = alternative_url\n\n    first_item = channel.find(\"item\")\n    if first_item is not None:\n        idx = list(channel).index(first_item)\n        channel.insert(idx, notice)\n    else:\n        channel.append(notice)\n\n    tree.write(str(feed_file), xml_declaration=True, encoding=\"UTF-8\", pretty_print=False)\n    logger.info(f\"Added deprecation notice to {feed_file}\")\n    logger.info(\n        f\"Next: remove the `{feed_name}:` entry from feeds.yaml, the feeds_{feed_name} Make \"\n        \"target, and any README row; leave the XML in place.\"\n    )\n    return True\n\n\ndef main() -> None:\n    parser = argparse.ArgumentParser(description=__doc__.splitlines()[0])\n    parser.add_argument(\"--feed\", required=True, help=\"Feed name (e.g., 'openai_research')\")\n    parser.add_argument(\"--message\", required=True, help=\"Notice body text\")\n    parser.add_argument(\"--alternative\", default=None, help=\"Optional alternative feed URL\")\n    args = parser.parse_args()\n\n    success = deprecate_feed(args.feed, args.message, args.alternative)\n    raise SystemExit(0 if success else 1)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/google_ai_blog.py",
    "content": "from datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed\n\n# TODO_IMPROVE: Add caching (Pattern 2) and \"Load More\" pagination support.\n# Currently only fetches the first page of results. Should:\n# 1. Add cache file (cache/google_ai_posts.json) with load_cache()/save_cache()\n# 2. Implement pagination to fetch all pages (check for \"Load more\" or page params)\n# 3. Support --full flag for full reset vs incremental updates\n# See cursor_blog.py or dagster_blog.py for reference implementation.\n\nlogger = setup_logging()\n\nFEED_NAME = \"google_ai\"\nBLOG_URL = \"https://developers.googleblog.com/search/?technology_categories=AI\"\n\n\ndef fetch_blog_content(url=BLOG_URL):\n    \"\"\"Fetch the HTML content of the Google Developers Blog AI page.\"\"\"\n    try:\n        logger.info(f\"Fetching content from URL: {url}\")\n        html = fetch_page(url)\n        logger.info(\"Content fetched successfully\")\n        return html\n    except Exception as e:\n        logger.error(f\"Error fetching content: {e}\")\n        raise\n\n\ndef parse_date(date_str):\n    \"\"\"Parse date string like 'DEC. 19, 2025' to datetime object.\"\"\"\n    try:\n        # Remove the period after the month abbreviation and normalize case\n        # e.g., \"MARCH 23, 2026\" -> \"March 23, 2026\", \"DEC. 19, 2025\" -> \"Dec 19, 2025\"\n        date_str = date_str.replace(\".\", \"\").strip().title()\n        # Try abbreviated month first, then full month name\n        for fmt in (\"%b %d, %Y\", \"%B %d, %Y\"):\n            try:\n                dt = datetime.strptime(date_str, fmt)\n                break\n            except ValueError:\n                continue\n        else:\n            raise ValueError(f\"No matching date format for '{date_str}'\")\n        # Make it timezone-aware (UTC)\n        return dt.replace(tzinfo=pytz.UTC)\n    except Exception as e:\n        logger.warning(f\"Could not parse date '{date_str}': {e}\")\n        return None\n\n\ndef parse_blog_posts(html_content):\n    \"\"\"Parse blog posts from the HTML content.\"\"\"\n    soup = BeautifulSoup(html_content, \"html.parser\")\n    posts = []\n\n    # Find all search result items\n    search_results = soup.find_all(\"li\", class_=\"search-result\")\n    logger.info(f\"Found {len(search_results)} blog posts\")\n\n    for result in search_results:\n        try:\n            # Extract eyebrow (contains date and category)\n            eyebrow = result.find(\"p\", class_=\"search-result__eyebrow\")\n            if not eyebrow:\n                logger.warning(\"No eyebrow found, skipping post\")\n                continue\n\n            eyebrow_text = eyebrow.get_text(strip=True)\n            # Split by ' / ' to get date and category\n            parts = eyebrow_text.split(\" / \")\n            if len(parts) < 1:\n                logger.warning(f\"Could not parse eyebrow: {eyebrow_text}\")\n                continue\n\n            date_str = parts[0]\n            category = parts[1] if len(parts) > 1 else \"Uncategorized\"\n\n            # Extract title and link\n            title_elem = result.find(\"h3\", class_=\"search-result__title\")\n            if not title_elem:\n                logger.warning(\"No title found, skipping post\")\n                continue\n\n            link_elem = title_elem.find(\"a\")\n            if not link_elem:\n                logger.warning(\"No link found in title, skipping post\")\n                continue\n\n            title = link_elem.get_text(strip=True)\n            relative_url = link_elem.get(\"href\", \"\")\n\n            # Make absolute URL\n            if relative_url.startswith(\"/\"):\n                link = f\"https://developers.googleblog.com{relative_url}\"\n            else:\n                link = relative_url\n\n            # Extract summary\n            summary_elem = result.find(\"p\", class_=\"search-result__summary\")\n            summary = summary_elem.get_text(strip=True) if summary_elem else \"\"\n\n            # Extract featured image\n            img_elem = result.find(\"img\", class_=\"search-result__featured-img\")\n            image_url = img_elem.get(\"src\", \"\") if img_elem else \"\"\n\n            # Parse date\n            pub_date = parse_date(date_str)\n\n            post = {\n                \"title\": title,\n                \"link\": link,\n                \"summary\": summary,\n                \"date\": pub_date,\n                \"category\": category,\n                \"image_url\": image_url,\n            }\n\n            posts.append(post)\n            logger.debug(f\"Parsed post: {title}\")\n\n        except Exception as e:\n            logger.error(f\"Error parsing post: {e}\")\n            continue\n\n    logger.info(f\"Successfully parsed {len(posts)} posts\")\n    return posts\n\n\ndef create_rss_feed(posts):\n    \"\"\"Create an RSS feed from the blog posts.\"\"\"\n    fg = FeedGenerator()\n    fg.title(\"Google Developers Blog - AI\")\n    fg.description(\"Latest AI-related posts from Google Developers Blog\")\n    setup_feed_links(fg, BLOG_URL, FEED_NAME)\n    fg.language(\"en\")\n\n    # Sort posts for correct feed output (oldest first, feedgen reverses it)\n    sorted_posts = sort_posts_for_feed(posts, date_field=\"date\")\n\n    # Add entries to feed\n    for post in sorted_posts:\n        fe = fg.add_entry()\n        fe.title(post[\"title\"])\n        fe.link(href=post[\"link\"])\n\n        # Build description with summary and image\n        description = \"\"\n        if post.get(\"image_url\"):\n            description += f'<img src=\"{post[\"image_url\"]}\" alt=\"Featured image\" /><br/><br/>'\n        description += post[\"summary\"]\n\n        fe.description(description)\n\n        if post.get(\"date\"):\n            fe.published(post[\"date\"])\n            fe.updated(post[\"date\"])\n\n        if post.get(\"category\"):\n            fe.category(term=post[\"category\"])\n\n    return fg\n\n\ndef main():\n    \"\"\"Main function to generate the RSS feed.\"\"\"\n    try:\n        # Fetch blog content\n        html_content = fetch_blog_content()\n\n        # Parse blog posts\n        posts = parse_blog_posts(html_content)\n\n        if not posts:\n            logger.warning(\"No posts found to add to the feed\")\n            return\n\n        # Create and save RSS feed\n        fg = create_rss_feed(posts)\n        save_rss_feed(fg, FEED_NAME)\n\n        logger.info(\"RSS feed generation completed successfully!\")\n\n    except Exception as e:\n        logger.error(f\"Error in main: {e}\")\n        raise\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/groq_blog.py",
    "content": "\"\"\"Generate RSS feed for the Groq Blog (https://groq.com/blog/).\n\nSimple static HTML scraper. Cards are rendered server-side in <article class=\"card\">\nelements; no pagination or JavaScript. No cache needed.\n\"\"\"\n\nimport argparse\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    fetch_page,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"groq\"\nBLOG_URL = \"https://groq.com/blog/\"\n\n\ndef parse_blog_html(html_content: str) -> list[dict]:\n    \"\"\"Extract articles from Groq's blog listing page.\"\"\"\n    soup = BeautifulSoup(html_content, \"html.parser\")\n    articles = []\n    seen_links = set()\n\n    for card in soup.select(\"article.card\"):\n        title_link = card.select_one(\"h2.card__title a\")\n        if not title_link:\n            continue\n\n        href = title_link.get(\"href\", \"\")\n        if not href or href.rstrip(\"/\") == \"/blog\":\n            continue\n\n        link = f\"https://groq.com{href}\" if href.startswith(\"/\") else href\n        if link in seen_links:\n            continue\n        seen_links.add(link)\n\n        title = title_link.get_text(strip=True)\n        if not title:\n            continue\n\n        date = None\n        time_elem = card.select_one(\"time.card__eyebrow\")\n        if time_elem:\n            datetime_attr = time_elem.get(\"datetime\")\n            if datetime_attr:\n                try:\n                    date = datetime.fromisoformat(datetime_attr.replace(\"Z\", \"+00:00\"))\n                    if date.tzinfo is None:\n                        date = date.replace(tzinfo=pytz.UTC)\n                except ValueError:\n                    logger.warning(f\"Could not parse datetime attribute: {datetime_attr}\")\n\n        if not date:\n            date = stable_fallback_date(link)\n\n        articles.append(\n            {\n                \"title\": title,\n                \"link\": link,\n                \"date\": date,\n                \"description\": title,\n            }\n        )\n\n    logger.info(f\"Parsed {len(articles)} articles\")\n    return articles\n\n\ndef generate_rss_feed(articles: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"Groq Blog\")\n    fg.description(\"Latest news and updates from Groq\")\n    fg.language(\"en\")\n    fg.author({\"name\": \"Groq\"})\n    fg.subtitle(\"LPU inference, AI infrastructure, and developer updates\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for article in sort_posts_for_feed(articles, date_field=\"date\"):\n        fe = fg.add_entry()\n        fe.title(article[\"title\"])\n        fe.description(article[\"description\"])\n        fe.link(href=article[\"link\"])\n        fe.id(article[\"link\"])\n        if article.get(\"date\"):\n            fe.published(article[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(articles)} entries\")\n    return fg\n\n\ndef main() -> bool:\n    logger.info(f\"Fetching {BLOG_URL}\")\n    html = fetch_page(BLOG_URL)\n    articles = parse_blog_html(html)\n\n    if not articles:\n        logger.warning(\"No articles found. Check the HTML structure.\")\n        return False\n\n    feed = generate_rss_feed(articles)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Groq Blog RSS feed\")\n    # --full is accepted for orchestrator compatibility even though the generator has no cache.\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"No-op (Groq has no cache)\")\n    parser.parse_args()\n    main()\n"
  },
  {
    "path": "feed_generators/meta_ai_blog.py",
    "content": "\"\"\"Generate RSS feed for AI at Meta Blog (https://ai.meta.com/blog/).\n\nReact SPA with a \"Load more\" button. The page renders three distinct card\nlayouts (hero, Latest News grid, \"More from AI at Meta\" grid) that this\nparser handles independently.\n\nCloses upstream issue #61.\n\"\"\"\n\nimport argparse\nimport contextlib\nimport re\nimport time\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    setup_selenium_driver,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"meta_ai\"\nBLOG_URL = \"https://ai.meta.com/blog/\"\n\nDATE_PATTERN = re.compile(\n    r\"(January|February|March|April|May|June|July|August\"\n    r\"|September|October|November|December)\\s+\\d{1,2},\\s+\\d{4}\"\n)\n\n# Meta AI's layout uses hashed CSS-module class names (_amto, _amcy, _amda, _amde,\n# _amsu, ...). These rotate when Meta rebuilds the site, so selector breakage is\n# the failure mode to expect. Mitigations: the parser walks three layouts\n# independently and falls back from class-based selectors to aria-label and\n# finally to separator-joined text. When a layout change lands, capture the new\n# page with ``curl`` or Selenium and update the class constants below.\nCATEGORIES = {\n    \"featured\",\n    \"ml applications\",\n    \"open source\",\n    \"research\",\n    \"computer vision\",\n    \"hardware\",\n    \"natural language processing\",\n    \"generative ai\",\n}\n\n\ndef fetch_blog_content(url: str = BLOG_URL, max_clicks: int = 20) -> str:\n    \"\"\"Fetch the blog HTML after clicking \"Load more\" up to max_clicks times.\"\"\"\n    driver = None\n    try:\n        logger.info(f\"Fetching content from {url} (max_clicks={max_clicks})\")\n        driver = setup_selenium_driver()\n        driver.get(url)\n        time.sleep(5)\n\n        try:\n            WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href*=\"/blog/\"]')))\n            logger.info(\"Blog articles loaded\")\n        except Exception:\n            logger.warning(\"Could not confirm articles loaded, proceeding anyway\")\n\n        clicks = 0\n        while clicks < max_clicks:\n            load_more = None\n            with contextlib.suppress(Exception):\n                candidate = driver.find_element(By.CSS_SELECTOR, \"button._amto\")\n                if candidate.is_displayed():\n                    load_more = candidate\n            if not load_more:\n                with contextlib.suppress(Exception):\n                    load_more = driver.find_element(By.XPATH, \"//button[contains(text(), 'Load more')]\")\n\n            if load_more and load_more.is_displayed():\n                logger.info(f\"Clicking 'Load more' button (click {clicks + 1})\")\n                driver.execute_script(\"arguments[0].click();\", load_more)\n                clicks += 1\n                time.sleep(2)\n            else:\n                logger.info(f\"No more 'Load more' button after {clicks} clicks\")\n                break\n\n        return driver.page_source\n    finally:\n        if driver:\n            driver.quit()\n\n\ndef parse_date(date_text: str) -> datetime | None:\n    \"\"\"Parse 'Month DD, YYYY' into a tz-aware datetime.\"\"\"\n    date_text = date_text.strip()\n    for fmt in (\"%B %d, %Y\", \"%b %d, %Y\"):\n        try:\n            return datetime.strptime(date_text, fmt).replace(tzinfo=pytz.UTC)\n        except ValueError:\n            continue\n    return None\n\n\ndef _extract_date_from_elements(elements, article_href: str) -> tuple[datetime | None, str]:\n    \"\"\"Walk elements looking for a date match (long or short month). Returns (date, matched_text).\"\"\"\n    for elem in elements:\n        text = elem.get_text(strip=True)\n        date_match = DATE_PATTERN.search(text)\n        if date_match:\n            parsed = parse_date(date_match.group())\n            if parsed:\n                return parsed, text\n    for elem in elements:\n        text = elem.get_text(strip=True)\n        parsed = parse_date(text)\n        if parsed:\n            return parsed, text\n    return None, \"\"\n\n\ndef _append_article(articles, seen, href, title, date, category, description):\n    \"\"\"Append an article to the list if href is unseen. Mutates both collections.\"\"\"\n    if href in seen or href in (\"/blog/\", \"/blog\"):\n        return\n    seen.add(href)\n    if not date:\n        date = stable_fallback_date(href)\n    articles.append(\n        {\n            \"title\": title,\n            \"link\": href,\n            \"date\": date,\n            \"category\": category,\n            \"description\": description,\n        }\n    )\n\n\ndef _absolute_meta_url(href: str) -> str:\n    return f\"https://ai.meta.com{href}\" if href.startswith(\"/\") else href\n\n\ndef extract_articles(soup: BeautifulSoup) -> list[dict]:\n    \"\"\"Extract articles from the three card layouts on the Meta AI blog.\"\"\"\n    articles: list[dict] = []\n    seen: set[str] = set()\n\n    # Hero card (featured, div._amcy)\n    hero = soup.select_one(\"div._amcy\")\n    if hero:\n        link = hero.find(\"a\", href=True)\n        if link:\n            href = _absolute_meta_url(link.get(\"href\", \"\"))\n            title_elem = hero.find(\"div\", class_=\"_amd1\")\n            title = title_elem.get_text(strip=True) if title_elem else \"\"\n            if not title:\n                aria = link.get(\"aria-label\", \"\")\n                title = aria.removeprefix(\"Read \").strip() if aria.startswith(\"Read \") else \"\"\n            if title:\n                # The hero's date container class has rotated (was _amdj, then\n                # _amun, ...), so scan every <div> inside the hero with the\n                # DATE_PATTERN regex instead of pinning to a single class.\n                # Without this we fall through to stable_fallback_date(), which\n                # (relying on Python's randomized hash()) buries the newest\n                # post under a bogus pubDate.\n                date, _ = _extract_date_from_elements(hero.find_all(\"div\"), href)\n\n                # Category: try the legacy explicit class, then the current\n                # \"FEATURED\"-style badge, then default. Empty strings are\n                # treated as missing so we don't emit empty <category/>.\n                category = \"AI\"\n                for cls in (\"_amug\", \"_amd5\"):\n                    cat_elem = hero.find(\"div\", class_=cls)\n                    cat_text = cat_elem.get_text(strip=True) if cat_elem else \"\"\n                    if cat_text:\n                        category = cat_text.title() if cat_text.isupper() else cat_text\n                        break\n                _append_article(articles, seen, href, title, date, category, title)\n\n    # Latest News grid (div._amda)\n    for card in soup.select(\"div._amda\"):\n        link = card.find(\"a\", href=True)\n        if not link:\n            continue\n        href = _absolute_meta_url(link.get(\"href\", \"\"))\n\n        title_elem = card.find(\"div\", class_=\"_amde\")\n        title = title_elem.get_text(strip=True) if title_elem else \"\"\n        if not title:\n            aria = link.get(\"aria-label\", \"\")\n            title = aria.removeprefix(\"Read \").strip() if aria.startswith(\"Read \") else \"\"\n        if not title:\n            continue\n\n        amdj_elems = card.select(\"div._amdj\")\n        date, matched_date_text = _extract_date_from_elements(amdj_elems, href)\n\n        category = \"AI\"\n        for elem in amdj_elems:\n            text = elem.get_text(strip=True)\n            if text == matched_date_text:\n                continue\n            if text.lower() in CATEGORIES:\n                category = text\n                break\n\n        description = title\n        desc_elem = card.find(\"p\", class_=\"text-secondary\") or card.find(\"p\", class_=\"_amt3\")\n        if desc_elem:\n            description = desc_elem.get_text(strip=True)[:300]\n\n        _append_article(articles, seen, href, title, date, category, description)\n\n    # \"More from AI at Meta\" grid (div._amsu)\n    for card in soup.select(\"div._amsu\"):\n        link = card.find(\"a\", href=True)\n        if not link:\n            continue\n        href = _absolute_meta_url(link.get(\"href\", \"\"))\n\n        title_elem = card.find(\"p\", class_=\"_amt2\")\n        title = title_elem.get_text(strip=True) if title_elem else \"\"\n        if not title:\n            continue\n\n        cat_elem = card.find(\"p\", class_=\"_amt0\")\n        category = cat_elem.get_text(strip=True) if cat_elem else \"AI\"\n\n        date_elem = card.find(\"p\", class_=\"_amt4\")\n        date, _ = _extract_date_from_elements([date_elem] if date_elem else [], href)\n\n        desc_elem = card.find(\"p\", class_=\"_amt3\")\n        description = desc_elem.get_text(strip=True)[:300] if desc_elem else title\n\n        _append_article(articles, seen, href, title, date, category, description)\n\n    logger.info(f\"Parsed {len(articles)} articles\")\n    return articles\n\n\ndef generate_rss_feed(articles: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"AI at Meta Blog\")\n    fg.description(\"Latest AI news and research from Meta\")\n    fg.language(\"en\")\n    fg.author({\"name\": \"Meta AI\"})\n    fg.subtitle(\"AI research, open source, and applications from Meta\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for article in sort_posts_for_feed(articles, date_field=\"date\"):\n        fe = fg.add_entry()\n        fe.title(article[\"title\"])\n        fe.description(article[\"description\"])\n        fe.link(href=article[\"link\"])\n        fe.id(article[\"link\"])\n        fe.category(term=article[\"category\"])\n        if article.get(\"date\"):\n            fe.published(article[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(articles)} entries\")\n    return fg\n\n\ndef main(full_reset: bool = False) -> bool:\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_entries:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n        html = fetch_blog_content(max_clicks=20)\n    else:\n        logger.info(\"Running incremental update (3 clicks only)\")\n        html = fetch_blog_content(max_clicks=3)\n\n    soup = BeautifulSoup(html, \"html.parser\")\n    new_articles = extract_articles(soup)\n\n    if cached_entries and not full_reset:\n        articles = merge_entries(new_articles, cached_entries)\n    else:\n        articles = sort_posts_for_feed(new_articles, date_field=\"date\")\n\n    if not articles:\n        logger.warning(\"No articles found. Check the HTML structure.\")\n        return False\n\n    save_cache(FEED_NAME, articles)\n    feed = generate_rss_feed(articles)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate AI at Meta Blog RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (click Load more up to 20 times)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/mistral_blog.py",
    "content": "\"\"\"Generate RSS feed for Mistral AI News (https://mistral.ai/news).\n\nSelenium-driven numbered pagination. Unlike \"Load more\" SPAs that append content,\nMistral replaces the article grid on each page navigation, so we parse after\neach click before advancing to the next page.\n\"\"\"\n\nimport argparse\nimport time\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    setup_selenium_driver,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"mistral\"\nBLOG_URL = \"https://mistral.ai/news\"\nMAX_PAGES_FULL = 6\nMAX_PAGES_INCREMENTAL = 1\n\n\ndef parse_page_articles(html: str) -> list[dict]:\n    \"\"\"Extract articles from a single page. Returns a deduped list per page.\n\n    Page 1 has a hero card with <h1>; grid cards use <h2>. Cards live inside\n    <a href=\"/news/...\"> wrappers containing an <article> element.\n    \"\"\"\n    soup = BeautifulSoup(html, \"html.parser\")\n    articles = []\n    seen_links = set()\n\n    for card in soup.select('a[href^=\"/news/\"]'):\n        href = card.get(\"href\", \"\")\n        if not href or href.rstrip(\"/\") == \"/news\":\n            continue\n\n        link = f\"https://mistral.ai{href}\"\n        if link in seen_links:\n            continue\n\n        article_elem = card.find(\"article\")\n        if not article_elem:\n            continue\n\n        seen_links.add(link)\n\n        title_elem = article_elem.find(\"h1\") or article_elem.find(\"h2\")\n        if not title_elem:\n            continue\n        title = title_elem.get_text(strip=True)\n        if len(title) < 3:\n            continue\n\n        category = \"News\"\n        for span in article_elem.find_all(\"span\"):\n            classes = \" \".join(span.get(\"class\", []))\n            if \"rounded-full\" in classes and \"border\" in classes:\n                cat_text = span.get_text(strip=True)\n                if cat_text:\n                    category = cat_text\n                break\n\n        description = title\n        for p in article_elem.find_all(\"p\"):\n            classes = \" \".join(p.get(\"class\", []))\n            if \"opacity\" in classes or \"text-black/50\" in classes:\n                desc_text = p.get_text(strip=True)\n                if desc_text:\n                    description = desc_text[:300]\n                break\n\n        date = None\n        for div in article_elem.find_all(\"div\"):\n            if \"text-sm\" not in \" \".join(div.get(\"class\", [])):\n                continue\n            date_text = div.get_text(strip=True)\n            for fmt in (\"%b %d, %Y\", \"%B %d, %Y\"):\n                try:\n                    date = datetime.strptime(date_text, fmt).replace(tzinfo=pytz.UTC)\n                    break\n                except ValueError:\n                    continue\n            if date:\n                break\n        if not date:\n            logger.warning(f\"Could not parse date for article: {title}\")\n            date = stable_fallback_date(link)\n\n        articles.append(\n            {\n                \"title\": title,\n                \"link\": link,\n                \"date\": date,\n                \"category\": category,\n                \"description\": description,\n            }\n        )\n\n    logger.info(f\"Parsed {len(articles)} articles from page\")\n    return articles\n\n\ndef fetch_all_articles(max_pages: int = MAX_PAGES_FULL) -> list[dict]:\n    \"\"\"Fetch articles across numbered pages using Selenium.\"\"\"\n    driver = None\n    all_articles: list[dict] = []\n    seen_links: set[str] = set()\n\n    try:\n        logger.info(f\"Fetching articles from {BLOG_URL} (max_pages={max_pages})\")\n        driver = setup_selenium_driver()\n        driver.get(BLOG_URL)\n        time.sleep(5)\n\n        try:\n            WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href^=\"/news/\"]')))\n        except Exception:\n            logger.warning(\"Could not confirm articles loaded, proceeding anyway\")\n\n        for page_num in range(1, max_pages + 1):\n            logger.info(f\"Extracting articles from page {page_num}\")\n            page_articles = parse_page_articles(driver.page_source)\n            new_count = 0\n            for article in page_articles:\n                if article[\"link\"] not in seen_links:\n                    all_articles.append(article)\n                    seen_links.add(article[\"link\"])\n                    new_count += 1\n            logger.info(f\"Page {page_num}: {new_count} new articles (total: {len(all_articles)})\")\n\n            if page_num >= max_pages:\n                break\n\n            # The next-page arrow is the last button in the pagination row.\n            next_btn = None\n            pagination_buttons = driver.find_elements(By.CSS_SELECTOR, \"button.size-8, button[class*='size-8']\")\n            if pagination_buttons:\n                candidate = pagination_buttons[-1]\n                try:\n                    candidate.find_element(By.TAG_NAME, \"svg\")\n                    next_btn = candidate\n                except Exception:\n                    next_btn = None\n\n            if not next_btn or not next_btn.is_displayed():\n                logger.info(f\"No next button found after page {page_num}\")\n                break\n\n            logger.info(f\"Clicking next button to page {page_num + 1}\")\n            driver.execute_script(\"arguments[0].click();\", next_btn)\n            time.sleep(3)\n            try:\n                WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href^=\"/news/\"]')))\n            except Exception:\n                logger.warning(\"Timeout waiting for next page content\")\n\n        logger.info(f\"Total articles fetched: {len(all_articles)}\")\n        return all_articles\n    finally:\n        if driver:\n            driver.quit()\n\n\ndef generate_rss_feed(articles: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"Mistral AI News\")\n    fg.description(\"Latest news and updates from Mistral AI\")\n    fg.language(\"en\")\n    fg.author({\"name\": \"Mistral AI\"})\n    fg.subtitle(\"News, research, and product updates from Mistral AI\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for article in sort_posts_for_feed(articles, date_field=\"date\"):\n        fe = fg.add_entry()\n        fe.title(article[\"title\"])\n        fe.description(article[\"description\"])\n        fe.link(href=article[\"link\"])\n        fe.id(article[\"link\"])\n        fe.category(term=article[\"category\"])\n        if article.get(\"date\"):\n            fe.published(article[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(articles)} entries\")\n    return fg\n\n\ndef main(full_reset: bool = False) -> bool:\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    pages = MAX_PAGES_FULL if (full_reset or not cached_entries) else MAX_PAGES_INCREMENTAL\n    mode = \"full reset\" if full_reset else \"no cache exists\" if not cached_entries else \"incremental update\"\n    logger.info(f\"Running {mode} (max_pages={pages})\")\n    new_articles = fetch_all_articles(max_pages=pages)\n\n    if cached_entries and not full_reset:\n        articles = merge_entries(new_articles, cached_entries)\n    else:\n        articles = sort_posts_for_feed(new_articles, date_field=\"date\")\n\n    if not articles:\n        logger.warning(\"No articles found. Check the HTML structure.\")\n        return False\n\n    save_cache(FEED_NAME, articles)\n    feed = generate_rss_feed(articles)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Mistral AI News RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch up to 6 pages)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/models.py",
    "content": "\"\"\"Pydantic models for feed configuration and settings.\"\"\"\n\nfrom enum import StrEnum\nfrom pathlib import Path\n\nimport yaml\nfrom pydantic import BaseModel, field_validator\nfrom pydantic_settings import BaseSettings\n\n\nclass FeedType(StrEnum):\n    REQUESTS = \"requests\"\n    SELENIUM = \"selenium\"\n\n\nclass FeedConfig(BaseModel):\n    \"\"\"Configuration for a single feed generator.\"\"\"\n\n    script: str\n    type: FeedType\n    blog_url: str\n    enabled: bool = True\n\n    @field_validator(\"script\")\n    @classmethod\n    def script_must_exist(cls, v: str) -> str:\n        script_path = Path(__file__).parent / v\n        if not script_path.exists():\n            msg = f\"Script not found: {v}\"\n            raise ValueError(msg)\n        return v\n\n\nclass GlobalSettings(BaseSettings):\n    \"\"\"Project-wide settings, overridable via RSS_ env vars.\n\n    Example: RSS_REPO_SLUG=oborchers/rss-feeds overrides the default.\n    \"\"\"\n\n    model_config = {\"env_prefix\": \"RSS_\"}\n\n    repo_slug: str = \"Olshansk/rss-feeds\"\n\n\ndef load_feed_registry() -> dict[str, FeedConfig]:\n    \"\"\"Load and validate feeds.yaml.\n\n    Returns:\n        Dict mapping feed name to validated FeedConfig.\n\n    Raises:\n        FileNotFoundError: If feeds.yaml is missing.\n        ValidationError: If any feed config is invalid.\n    \"\"\"\n    registry_path = Path(__file__).parent.parent / \"feeds.yaml\"\n    if not registry_path.exists():\n        msg = f\"Feed registry not found: {registry_path}\"\n        raise FileNotFoundError(msg)\n\n    with open(registry_path) as f:\n        data = yaml.safe_load(f)\n\n    feeds = {}\n    for name, config in data.get(\"feeds\", {}).items():\n        feeds[name] = FeedConfig(**config)\n    return feeds\n"
  },
  {
    "path": "feed_generators/ollama_blog.py",
    "content": "from datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging\n\nlogger = setup_logging()\n\nFEED_NAME = \"ollama\"\nBLOG_URL = \"https://ollama.com/blog\"\n\n\ndef fetch_blog_content(url=BLOG_URL):\n    \"\"\"Fetch blog content from the given URL.\"\"\"\n    try:\n        return fetch_page(url)\n    except Exception as e:\n        logger.error(f\"Error fetching blog content: {e!s}\")\n        raise\n\n\ndef parse_blog_html(html_content):\n    \"\"\"Parse the blog HTML content and extract post information.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        blog_posts = []\n\n        # Find all blog post sections\n        posts = soup.select('section a[href^=\"/blog/\"]')\n\n        for post in posts:\n            # Extract title\n            title_elem = post.select_one(\"h2\")\n            if not title_elem:\n                logger.warning(\"Skipping post: no title found\")\n                continue\n            title = title_elem.text.strip()\n\n            # Extract date\n            date_elem = post.select_one(\"h3\")\n            if not date_elem:\n                logger.warning(f\"Skipping post '{title}': no date found\")\n                continue\n            date_str = date_elem.text.strip()\n            date_obj = datetime.strptime(date_str, \"%B %d, %Y\")\n\n            # Extract description\n            desc_elem = post.select_one(\"p\")\n            description = desc_elem.text.strip() if desc_elem else title\n\n            # Extract link\n            link = f\"https://ollama.com{post['href']}\"\n\n            blog_posts.append(\n                {\n                    \"title\": title,\n                    \"date\": date_obj,\n                    \"description\": description,\n                    \"link\": link,\n                }\n            )\n\n        logger.info(f\"Successfully parsed {len(blog_posts)} blog posts\")\n        return blog_posts\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(blog_posts, feed_name=FEED_NAME):\n    \"\"\"Generate RSS feed from blog posts.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Ollama Blog\")\n        fg.description(\"Get up and running with large language models.\")\n        setup_feed_links(fg, BLOG_URL, feed_name)\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Ollama\"})\n        fg.logo(\"https://ollama.com/public/icon-64x64.png\")\n        fg.subtitle(\"Latest updates from Ollama\")\n\n        # Add entries\n        for post in blog_posts:\n            fe = fg.add_entry()\n            fe.title(post[\"title\"])\n            fe.description(post[\"description\"])\n            fe.link(href=post[\"link\"])\n            fe.published(post[\"date\"].replace(tzinfo=pytz.UTC))\n            fe.id(post[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(blog_url=BLOG_URL, feed_name=FEED_NAME):\n    \"\"\"Main function to generate RSS feed from blog URL.\"\"\"\n    try:\n        # Fetch blog content\n        html_content = fetch_blog_content(blog_url)\n\n        # Parse blog posts from HTML\n        blog_posts = parse_blog_html(html_content)\n\n        # Generate RSS feed\n        feed = generate_rss_feed(blog_posts, feed_name)\n\n        # Save feed to file\n        save_rss_feed(feed, feed_name)\n\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/paulgraham_blog.py",
    "content": "import re\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, stable_fallback_date\n\nlogger = setup_logging()\n\nFEED_NAME = \"paulgraham\"\nBLOG_URL = \"https://paulgraham.com/articles.html\"\n\n\ndef extract_date_from_text(text):\n    \"\"\"Helper function to extract date from text.\"\"\"\n    months = [\n        \"January\",\n        \"February\",\n        \"March\",\n        \"April\",\n        \"May\",\n        \"June\",\n        \"July\",\n        \"August\",\n        \"September\",\n        \"October\",\n        \"November\",\n        \"December\",\n    ]\n\n    # Match \"Month YYYY\" pattern\n    for month in months:\n        pattern = f\"{month}\\\\s+\\\\d{{4}}\"\n        match = re.search(pattern, text)\n        if match:\n            date_str = match.group(0)\n            try:\n                date = datetime.strptime(f\"{date_str} 1\", \"%B %Y %d\")\n                return date.replace(tzinfo=pytz.UTC)\n            except ValueError:\n                continue\n    return None\n\n\ndef get_article_content(article_html):\n    \"\"\"Extract the full article content and date.\"\"\"\n    try:\n        soup = BeautifulSoup(article_html, \"html.parser\")\n        content = None\n        pub_date = None\n\n        # Find the main content\n        fonts = soup.find_all(\"font\", size=\"2\")\n        for font in fonts:\n            text = font.get_text().strip()\n            if len(text) > 100:  # Main content is usually the longest text block\n                content = text\n                pub_date = extract_date_from_text(text)\n                if pub_date:\n                    # Remove the date from the beginning of the content\n                    content = re.sub(r\"^[A-Za-z]+ \\d{4}\", \"\", content).lstrip()\n                break\n\n        return content, pub_date\n\n    except Exception as e:\n        logger.error(f\"Error extracting content: {e!s}\")\n        return None, None\n\n\ndef parse_essays_page(html_content, base_url=\"https://paulgraham.com\", max_essays=300):\n    \"\"\"Parse the essays HTML page and extract blog post information.\n\n    Args:\n        html_content: HTML content of the essays page\n        base_url: Base URL for the website\n        max_essays: Maximum number of recent essays to fetch (default: 300)\n    \"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        blog_posts = []\n\n        # Find all essay links\n        links = soup.select('font[size=\"2\"] a')\n        logger.info(f\"Found {len(links)} total essays, will fetch up to {max_essays} most recent\")\n\n        # Limit to first N essays (they're listed in reverse chronological order)\n        links_to_process = links[:max_essays]\n\n        for link in links_to_process:\n            # Extract title and link\n            title = link.text.strip()\n            href = link.get(\"href\")\n            if not href:\n                continue\n\n            full_url = f\"{base_url}/{href}\" if not href.startswith(\"http\") else href\n\n            logger.info(f\"Fetching article: {title}\")\n\n            # Fetch article content once and reuse it\n            article_html = fetch_page(full_url)\n            content, pub_date = get_article_content(article_html)\n\n            if content:\n                description = content[:500] + \"...\" if len(content) > 500 else content\n            else:\n                description = \"No description available\"\n\n            blog_post = {\n                \"title\": title,\n                \"link\": full_url,\n                \"description\": description,\n                \"date\": pub_date or stable_fallback_date(full_url),  # Fallback to stable date if none found\n            }\n\n            # There are a handful (~7) old blog posts where parsing the date doesn't work very well.\n            # In order to avoid sending hourly emails for this, we're just skipping them altogether.\n            # We can spend more time on this if/when it ever becomes an issue.\n            if pub_date:\n                blog_posts.append(blog_post)\n            else:\n                logger.warning(f\"Skipping post '{title}' - no date found\")\n\n        logger.info(f\"Successfully parsed {len(blog_posts)} blog posts\")\n        return blog_posts\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(blog_posts):\n    \"\"\"Generate RSS feed from blog posts.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Paul Graham Essays\")\n        fg.description(\"Essays by Paul Graham\")\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Paul Graham\"})\n        fg.subtitle(\"Paul Graham's Essays and Writings\")\n        setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n        # Add entries\n        for post in blog_posts:\n            fe = fg.add_entry()\n            fe.title(post[\"title\"])\n            fe.description(post[\"description\"])\n            fe.link(href=post[\"link\"])\n            fe.published(post[\"date\"])\n            fe.id(post[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main():\n    \"\"\"Main function to generate RSS feed from blog URL.\"\"\"\n    try:\n        # Fetch blog content\n        html_content = fetch_page(BLOG_URL)\n\n        # Parse blog posts\n        blog_posts = parse_essays_page(html_content)\n\n        # Generate RSS feed\n        feed = generate_rss_feed(blog_posts)\n\n        # Save feed to file\n        save_rss_feed(feed, FEED_NAME)\n\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/perplexity_hub.py",
    "content": "\"\"\"Generate RSS feed for the Perplexity Hub (https://www.perplexity.ai/hub).\n\nThe hub is a Framer-built SPA that renders client-side. We use Selenium plus\na CDP command to force an Accept-Language: en-US header, since Perplexity\ngeo-redirects based on the request header (not URL or cookies). Without it\nthe scraper would get localized content and localized URLs.\n\"\"\"\n\nimport argparse\nimport contextlib\nimport re\nimport time\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nfrom utils import (\n    DEFAULT_USER_AGENT,\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    setup_selenium_driver,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"perplexity_hub\"\nBLOG_URL = \"https://www.perplexity.ai/hub\"\n\n# A <p> is treated as a date (and skipped for category) if it contains an\n# English or German month name. Year-only strings are not enough, since\n# categories like \"Q&A 2024\" contain a year without being dates.\nDATE_PATTERN = re.compile(\n    r\"\\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec\"\n    r\"|Januar|Februar|März|April|Mai|Juni|Juli|August\"\n    r\"|September|Oktober|November|Dezember)\\b\"\n)\nLOCALE_PREFIX = re.compile(r\"(perplexity\\.ai)/[a-z]{2}/hub/\")\n\n\ndef _force_english_locale(driver) -> None:\n    \"\"\"Override the Accept-Language header via CDP so Perplexity serves en-US content.\"\"\"\n    driver.execute_cdp_cmd(\"Network.enable\", {})\n    driver.execute_cdp_cmd(\n        \"Network.setUserAgentOverride\",\n        {\n            \"userAgent\": DEFAULT_USER_AGENT,\n            \"acceptLanguage\": \"en-US,en;q=0.9\",\n        },\n    )\n\n\ndef fetch_hub_content(url: str = BLOG_URL) -> str:\n    \"\"\"Fetch the fully rendered HTML of the Perplexity Hub via Selenium.\"\"\"\n    driver = None\n    try:\n        logger.info(f\"Fetching content from {url}\")\n        driver = setup_selenium_driver()\n        _force_english_locale(driver)\n        driver.get(url)\n        time.sleep(5)\n\n        try:\n            WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href*=\"/hub/blog/\"]')))\n            logger.info(\"Blog articles loaded\")\n        except Exception:\n            logger.warning(\"Could not confirm articles loaded, proceeding anyway\")\n\n        driver.execute_script(\"window.scrollTo(0, document.body.scrollHeight);\")\n        time.sleep(2)\n        return driver.page_source\n    finally:\n        if driver:\n            driver.quit()\n\n\ndef _canonicalize_link(href: str) -> str:\n    \"\"\"Build a full URL and strip any locale prefix (/de/hub/ -> /hub/).\"\"\"\n    if href.startswith(\"./\"):\n        link = f\"https://www.perplexity.ai/{href[2:]}\"\n    elif href.startswith(\"/\"):\n        link = f\"https://www.perplexity.ai{href}\"\n    elif href.startswith(\"http\"):\n        link = href\n    else:\n        link = f\"https://www.perplexity.ai/{href}\"\n    return LOCALE_PREFIX.sub(r\"\\1/hub/\", link)\n\n\ndef _extract_title(card) -> str | None:\n    for tag in (\"h4\", \"h6\", \"h3\", \"h2\", \"h5\"):\n        elem = card.select_one(tag)\n        if elem and elem.text.strip():\n            return elem.text.strip()\n    text = card.get_text(strip=True)\n    return text[:150] if text and len(text) > 5 else None\n\n\ndef _extract_date(card) -> datetime | None:\n    time_elem = card.select_one(\"time\")\n    if not time_elem:\n        return None\n    datetime_attr = time_elem.get(\"datetime\")\n    if not datetime_attr:\n        return None\n    with contextlib.suppress(ValueError):\n        date = datetime.fromisoformat(datetime_attr.replace(\"Z\", \"+00:00\"))\n        if date.tzinfo is None:\n            date = date.replace(tzinfo=pytz.UTC)\n        return date\n    return None\n\n\ndef _extract_category(card) -> str:\n    \"\"\"Category lives in <p> tags; skip the ones that look like dates.\"\"\"\n    for p in card.select(\"p\"):\n        text = p.text.strip()\n        if len(text) < 3 or len(text) > 30:\n            continue\n        if DATE_PATTERN.search(text):\n            continue\n        return text\n    return \"Blog\"\n\n\ndef validate_article(article: dict) -> bool:\n    if not article.get(\"title\") or len(article[\"title\"]) < 5:\n        logger.warning(f\"Invalid title for article: {article.get('link', 'unknown')}\")\n        return False\n    if not article.get(\"link\") or not article[\"link\"].startswith(\"http\"):\n        logger.warning(f\"Invalid link for article: {article.get('title', 'unknown')}\")\n        return False\n    if not article.get(\"date\"):\n        logger.warning(f\"Missing date for article: {article.get('title', 'unknown')}\")\n        return False\n    return True\n\n\ndef parse_hub_html(html_content: str) -> list[dict]:\n    \"\"\"Extract articles from the Perplexity Hub.\n\n    Hero and article cards are both <a href=\"./hub/blog/...\"> wrappers.\n    Hero cards have <h4> titles and no <time>; article cards have <h6>,\n    a <time datetime=\"...\">, and <p> tags for category/date labels.\n    \"\"\"\n    soup = BeautifulSoup(html_content, \"html.parser\")\n    articles = []\n    seen_links = set()\n\n    all_links = soup.select('a[href*=\"/hub/blog/\"]')\n    logger.info(f\"Found {len(all_links)} potential blog article links\")\n\n    for card in all_links:\n        href = card.get(\"href\", \"\")\n        if not href:\n            continue\n        link = _canonicalize_link(href)\n        if link in seen_links:\n            continue\n        seen_links.add(link)\n\n        title = _extract_title(card)\n        if not title:\n            logger.debug(f\"Could not extract title for link: {link}\")\n            continue\n\n        date = _extract_date(card) or stable_fallback_date(link)\n        category = _extract_category(card)\n\n        article = {\n            \"title\": title,\n            \"link\": link,\n            \"date\": date,\n            \"category\": category,\n            \"description\": title,\n        }\n        if validate_article(article):\n            articles.append(article)\n\n    logger.info(f\"Parsed {len(articles)} valid articles\")\n    return articles\n\n\ndef generate_rss_feed(articles: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"Perplexity Blog\")\n    fg.description(\"Latest news, updates, and research from Perplexity AI\")\n    fg.language(\"en\")\n    fg.author({\"name\": \"Perplexity AI\"})\n    fg.logo(\"https://www.perplexity.ai/favicon.ico\")\n    fg.subtitle(\"Updates from Perplexity AI\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for article in sort_posts_for_feed(articles, date_field=\"date\"):\n        fe = fg.add_entry()\n        fe.title(article[\"title\"])\n        fe.description(article[\"description\"])\n        fe.link(href=article[\"link\"])\n        fe.id(article[\"link\"])\n        fe.category(term=article[\"category\"])\n        fe.published(article[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(articles)} entries\")\n    return fg\n\n\ndef main(full_reset: bool = False) -> bool:\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_entries:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n    else:\n        logger.info(\"Running incremental update\")\n\n    html = fetch_hub_content()\n    new_articles = parse_hub_html(html)\n\n    if cached_entries and not full_reset:\n        articles = merge_entries(new_articles, cached_entries)\n    else:\n        articles = sort_posts_for_feed(new_articles, date_field=\"date\")\n\n    if not articles:\n        logger.warning(\"No articles found. Check the HTML structure.\")\n        return False\n\n    save_cache(FEED_NAME, articles)\n    feed = generate_rss_feed(articles)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Perplexity Hub RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (ignore cache)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/pinecone_blog.py",
    "content": "\"\"\"Generate RSS feed for the Pinecone Blog (https://www.pinecone.io/blog/).\n\nSelenium \"Load More\" pagination. Two card layouts: featured posts at the top\n(title-focused) and list-view rows below (with category + date metadata).\n\"\"\"\n\nimport argparse\nimport contextlib\nimport time\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\nfrom selenium.webdriver.common.by import By\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    setup_selenium_driver,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"pinecone\"\nBLOG_URL = \"https://www.pinecone.io/blog/?view=list\"\nDISPLAY_URL = \"https://www.pinecone.io/blog/\"\nMAX_CLICKS_FULL = 15\nMAX_CLICKS_INCREMENTAL = 3\n\n\ndef fetch_blog_content(max_clicks: int = MAX_CLICKS_FULL) -> str:\n    \"\"\"Load the blog and click \"Load More\" up to max_clicks times.\"\"\"\n    driver = None\n    try:\n        logger.info(f\"Fetching content from {BLOG_URL} (max_clicks={max_clicks})\")\n        driver = setup_selenium_driver()\n        driver.get(BLOG_URL)\n        time.sleep(5)\n\n        clicks = 0\n        while clicks < max_clicks:\n            try:\n                load_more = driver.find_element(\n                    By.XPATH,\n                    \"//button[.//span[text()='Load More'] or text()='Load More']\",\n                )\n            except Exception:\n                logger.info(f\"No more 'Load More' button found after {clicks} clicks\")\n                break\n\n            if not load_more.is_displayed():\n                logger.info(\"'Load More' button not visible, stopping\")\n                break\n\n            logger.info(f\"Clicking 'Load More' (click {clicks + 1})\")\n            driver.execute_script(\"arguments[0].click();\", load_more)\n            clicks += 1\n            time.sleep(2)\n\n        logger.info(f\"Fetched page source after {clicks} clicks\")\n        return driver.page_source\n    finally:\n        if driver:\n            driver.quit()\n\n\ndef _parse_short_date(text: str) -> datetime | None:\n    text = text.strip()\n    if not text:\n        return None\n    with contextlib.suppress(ValueError):\n        return datetime.strptime(text, \"%b %d, %Y\").replace(tzinfo=pytz.UTC)\n    return None\n\n\ndef parse_blog_html(html: str) -> list[dict]:\n    \"\"\"Extract posts from the featured section and the list-view rows.\"\"\"\n    soup = BeautifulSoup(html, \"html.parser\")\n    posts: list[dict] = []\n    seen_links: set[str] = set()\n\n    # Featured posts at the top of the page\n    for card in soup.select('a[href^=\"/blog/\"][href$=\"/\"]'):\n        href = card.get(\"href\", \"\")\n        if href.rstrip(\"/\") == \"/blog\" or \"/tag\" in href:\n            continue\n\n        title_elem = card.select_one(\"h2\")\n        if not title_elem:\n            continue\n        title = title_elem.text.strip()\n\n        link = f\"https://www.pinecone.io{href}\"\n        if link in seen_links:\n            continue\n        seen_links.add(link)\n\n        date_elem = card.select_one(\"span.text-text-secondary\")\n        date = _parse_short_date(date_elem.text) if date_elem else None\n        if not date:\n            date = stable_fallback_date(link)\n\n        cat_elem = card.select_one(\"span.text-brand-blue, span[class*='brand']\")\n        category = cat_elem.text.strip() if cat_elem else \"\"\n\n        posts.append(\n            {\n                \"link\": link,\n                \"title\": title,\n                \"date\": date,\n                \"category\": category,\n                \"description\": title,\n            }\n        )\n\n    # List-view rows\n    for row in soup.select('a[target=\"_self\"][href^=\"/blog/\"]'):\n        href = row.get(\"href\", \"\")\n        link = f\"https://www.pinecone.io{href}\"\n        if link in seen_links:\n            continue\n        seen_links.add(link)\n\n        title_elem = row.select_one(\"div.text-xl\")\n        title = title_elem.text.strip() if title_elem else \"\"\n        if not title:\n            continue\n\n        secondary_divs = row.select(\"div.text-text-secondary\")\n        category = secondary_divs[0].text.strip() if len(secondary_divs) > 0 else \"\"\n        date_text = secondary_divs[1].text.strip() if len(secondary_divs) > 1 else \"\"\n        date = _parse_short_date(date_text) or stable_fallback_date(link)\n\n        posts.append(\n            {\n                \"link\": link,\n                \"title\": title,\n                \"date\": date,\n                \"category\": category,\n                \"description\": title,\n            }\n        )\n\n    logger.info(f\"Parsed {len(posts)} posts\")\n    return posts\n\n\ndef generate_rss_feed(posts: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"Pinecone Blog\")\n    fg.description(\"Latest from Pinecone: insights, tutorials, and updates on vector databases and AI infrastructure.\")\n    fg.language(\"en\")\n    fg.author({\"name\": \"Pinecone\"})\n    fg.subtitle(\"Latest updates from Pinecone\")\n    setup_feed_links(fg, blog_url=DISPLAY_URL, feed_name=FEED_NAME)\n\n    for post in sort_posts_for_feed(posts, date_field=\"date\"):\n        fe = fg.add_entry()\n        fe.title(post[\"title\"])\n        fe.description(post[\"description\"])\n        fe.link(href=post[\"link\"])\n        fe.id(post[\"link\"])\n        if post.get(\"category\"):\n            fe.category(term=post[\"category\"])\n        if post.get(\"date\"):\n            fe.published(post[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(posts)} entries\")\n    return fg\n\n\ndef main(full_reset: bool = False) -> bool:\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    clicks = MAX_CLICKS_FULL if (full_reset or not cached_entries) else MAX_CLICKS_INCREMENTAL\n    html = fetch_blog_content(max_clicks=clicks)\n    new_posts = parse_blog_html(html)\n\n    if cached_entries and not full_reset:\n        posts = merge_entries(new_posts, cached_entries)\n    else:\n        posts = sort_posts_for_feed(new_posts, date_field=\"date\")\n\n    if not posts:\n        logger.warning(\"No posts found. Check the HTML structure.\")\n        return False\n\n    save_cache(FEED_NAME, posts)\n    feed = generate_rss_feed(posts)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Pinecone Blog RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (Load More up to 15 times)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/run_all_feeds.py",
    "content": "import argparse\nimport logging\nimport os\nimport subprocess\nimport sys\n\nfrom models import FeedConfig, FeedType, load_feed_registry\n\n# Set up logging\nlogging.basicConfig(level=logging.INFO, format=\"%(asctime)s - %(levelname)s - %(message)s\")\nlogger = logging.getLogger(__name__)\n\n\ndef run_feed(feed_name: str, config: FeedConfig, full: bool = False) -> bool:\n    \"\"\"Run a single feed generator.\n\n    Args:\n        feed_name: Registry name of the feed.\n        config: Validated feed configuration.\n        full: If True, pass --full flag to the generator.\n\n    Returns:\n        True if the generator succeeded, False otherwise.\n    \"\"\"\n    script_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), config.script)\n    cmd = [\"uv\", \"run\", script_path]\n    if full:\n        cmd.append(\"--full\")\n\n    logger.info(f\"Running {feed_name}: {script_path}\")\n    result = subprocess.run(cmd, capture_output=True, text=True)\n    if result.returncode == 0:\n        logger.info(f\"Successfully ran: {feed_name}\")\n        return True\n    else:\n        logger.error(f\"Error running {feed_name}:\\n{result.stderr}\")\n        return False\n\n\ndef run_all_feeds(\n    skip_selenium: bool = False,\n    selenium_only: bool = False,\n    feed: str | None = None,\n    full: bool = False,\n) -> int:\n    \"\"\"Run feed generators from the registry.\n\n    Args:\n        skip_selenium: Skip Selenium-based generators (for hourly requests workflow).\n        selenium_only: Run only Selenium-based generators (for hourly Selenium workflow).\n        feed: Run a single feed by name. Overrides skip_selenium/selenium_only.\n        full: Pass --full flag to generators (full reset instead of incremental).\n\n    Returns:\n        Exit code (0 for success, 1 if any feed failed).\n    \"\"\"\n    registry = load_feed_registry()\n\n    # Single feed mode\n    if feed:\n        if feed not in registry:\n            logger.error(f\"Feed '{feed}' not found in registry. Available: {', '.join(sorted(registry))}\")\n            return 1\n        config = registry[feed]\n        if not config.enabled:\n            logger.warning(f\"Feed '{feed}' is disabled in feeds.yaml\")\n            return 1\n        ok = run_feed(feed, config, full=full)\n        return 0 if ok else 1\n\n    # Multi-feed mode\n    failed_scripts = []\n    successful_scripts = []\n    skipped_scripts = []\n\n    for name, config in sorted(registry.items()):\n        if not config.enabled:\n            logger.info(f\"Skipping disabled feed: {name}\")\n            skipped_scripts.append(name)\n            continue\n\n        is_selenium = config.type == FeedType.SELENIUM\n\n        if skip_selenium and is_selenium:\n            logger.info(f\"Skipping Selenium generator: {name}\")\n            skipped_scripts.append(name)\n            continue\n\n        if selenium_only and not is_selenium:\n            logger.info(f\"Skipping non-Selenium generator: {name}\")\n            skipped_scripts.append(name)\n            continue\n\n        ok = run_feed(name, config, full=full)\n        if ok:\n            successful_scripts.append(name)\n        else:\n            failed_scripts.append(name)\n\n    # Summary\n    logger.info(f\"\\n{'=' * 60}\")\n    logger.info(\"Feed Generation Summary:\")\n    logger.info(f\"  Successful: {len(successful_scripts)}\")\n    logger.info(f\"  Failed: {len(failed_scripts)}\")\n    logger.info(f\"  Skipped: {len(skipped_scripts)}\")\n\n    if successful_scripts:\n        logger.info(\"\\nSuccessful feeds:\")\n        for name in successful_scripts:\n            logger.info(f\"  ✓ {name}\")\n\n    if failed_scripts:\n        logger.error(\"\\nFailed feeds:\")\n        for name in failed_scripts:\n            logger.error(f\"  ✗ {name}\")\n        logger.error(f\"\\nERROR: {len(failed_scripts)} feed(s) failed to generate\")\n        return 1\n\n    if skipped_scripts:\n        logger.info(\"\\nSkipped feeds:\")\n        for name in skipped_scripts:\n            logger.info(f\"  ○ {name}\")\n\n    logger.info(f\"{'=' * 60}\\n\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Run RSS feed generators\")\n    parser.add_argument(\n        \"--skip-selenium\",\n        action=\"store_true\",\n        help=\"Skip Selenium-based generators (for hourly requests workflow)\",\n    )\n    parser.add_argument(\n        \"--selenium-only\",\n        action=\"store_true\",\n        help=\"Run only Selenium-based generators (for hourly Selenium workflow)\",\n    )\n    parser.add_argument(\n        \"--feed\",\n        type=str,\n        help=\"Run a single feed by name (e.g., --feed=ollama)\",\n    )\n    parser.add_argument(\n        \"--full\",\n        action=\"store_true\",\n        help=\"Pass --full to generators (full reset instead of incremental)\",\n    )\n    args = parser.parse_args()\n\n    if args.skip_selenium and args.selenium_only:\n        logger.error(\"Cannot use both --skip-selenium and --selenium-only\")\n        sys.exit(1)\n\n    exit_code = run_all_feeds(\n        skip_selenium=args.skip_selenium,\n        selenium_only=args.selenium_only,\n        feed=args.feed,\n        full=args.full,\n    )\n    sys.exit(exit_code)\n"
  },
  {
    "path": "feed_generators/thinkingmachines_blog.py",
    "content": "import os\nimport sys\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    fetch_page,\n    get_project_root,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"thinkingmachines\"\nBLOG_URL = \"https://thinkingmachines.ai/blog/\"\n\n\ndef parse_date(date_text):\n    \"\"\"Parse dates with multiple format support.\"\"\"\n    if not date_text:\n        return None\n\n    date_text = date_text.strip()\n    current_year = datetime.now().year\n\n    # List of date formats to try\n    date_formats = [\n        \"%b %d\",  # \"Nov 7\", \"Oct 29\"\n        \"%B %d\",  # \"November 7\", \"October 29\"\n        \"%b %d, %Y\",  # \"Nov 7, 2025\"\n        \"%B %d, %Y\",  # \"November 7, 2025\"\n        \"%Y-%m-%d\",  # \"2025-11-07\"\n        \"%m/%d/%Y\",  # \"11/07/2025\"\n    ]\n\n    for date_format in date_formats:\n        try:\n            date = datetime.strptime(date_text, date_format)\n            # If the format doesn't include year, add current year\n            if \"%Y\" not in date_format:\n                date = date.replace(year=current_year)\n            return date.replace(tzinfo=pytz.UTC)\n        except ValueError:\n            continue\n\n    # If all formats fail, log warning and return None\n    logger.warning(f\"Could not parse date: {date_text}\")\n    return None\n\n\ndef extract_articles(soup):\n    \"\"\"Extract article information from HTML.\"\"\"\n    articles = []\n    seen_links = set()\n\n    # Find all post items\n    post_items = soup.select(\"li a.post-item-link\")\n    logger.info(f\"Found {len(post_items)} potential articles\")\n\n    for item in post_items:\n        try:\n            # Extract link\n            href = item.get(\"href\", \"\")\n            if not href:\n                continue\n\n            # Build full URL\n            link = f\"https://thinkingmachines.ai{href}\" if href.startswith(\"/\") else href\n\n            # Skip duplicates\n            if link in seen_links:\n                continue\n            seen_links.add(link)\n\n            # Extract date from time element\n            date_elem = item.select_one(\"time.desktop-time\")\n            date_text = date_elem.get_text(strip=True) if date_elem else None\n            pub_date = parse_date(date_text) or stable_fallback_date(link)\n\n            # Extract title\n            title_elem = item.select_one(\"div.post-title\")\n            title = title_elem.get_text(strip=True) if title_elem else \"Untitled\"\n\n            # Extract author from author-date div\n            author_elem = item.select_one(\"div.author-date\")\n            author_text = \"\"\n            if author_elem:\n                # Get the text before the mobile date separator\n                author_text = author_elem.get_text(strip=True)\n                # Remove the date part (after the separator)\n                if \"·\" in author_text:\n                    author_text = author_text.split(\"·\")[0].strip()\n\n            if not author_text:\n                author_text = \"Thinking Machines Lab\"\n\n            # Create article object\n            article = {\n                \"title\": title,\n                \"link\": link,\n                \"description\": f\"{title} by {author_text}\",\n                \"date\": pub_date,\n                \"author\": author_text,\n            }\n\n            articles.append(article)\n            logger.info(f\"Parsed: {title} ({date_text}) by {author_text}\")\n\n        except Exception as e:\n            logger.warning(f\"Failed to parse article: {e!s}\")\n            continue\n\n    # Sort for correct feed order (newest first in output)\n    articles = sort_posts_for_feed(articles)\n\n    logger.info(f\"Successfully parsed {len(articles)} articles\")\n    return articles\n\n\ndef parse_html(html_content):\n    \"\"\"Parse HTML content.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        return extract_articles(soup)\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(articles):\n    \"\"\"Generate RSS feed using feedgen.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Thinking Machines Lab - Connectionism\")\n        fg.description(\"Research blog by Thinking Machines Lab - Shared science and news from the team\")\n        fg.language(\"en\")\n\n        # Set feed metadata\n        fg.author({\"name\": \"Thinking Machines Lab\"})\n        fg.subtitle(\"Shared science and news from the team\")\n        setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n        # Add entries\n        for article in articles:\n            fe = fg.add_entry()\n            fe.title(article[\"title\"])\n            fe.description(article[\"description\"])\n            fe.link(href=article[\"link\"])\n            fe.published(article[\"date\"])\n            fe.author({\"name\": article[\"author\"]})\n            fe.id(article[\"link\"])\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(html_file=None):\n    \"\"\"Main entry point with local file support.\"\"\"\n    try:\n        # Check for local HTML file\n        if html_file and os.path.exists(html_file):\n            logger.info(f\"Reading HTML from local file: {html_file}\")\n            with open(html_file, encoding=\"utf-8\") as f:\n                html_content = f.read()\n        else:\n            # Check common locations for local HTML file\n            common_locations = [\n                \"ThinkingMachines.html\",\n                get_project_root() / \"ThinkingMachines.html\",\n            ]\n\n            local_file_found = False\n            for location in common_locations:\n                if os.path.exists(location):\n                    logger.info(f\"Found local HTML file: {location}\")\n                    with open(location, encoding=\"utf-8\") as f:\n                        html_content = f.read()\n                    local_file_found = True\n                    break\n\n            if not local_file_found:\n                # Fetch from website\n                logger.info(\"Fetching content from website\")\n                html_content = fetch_page(BLOG_URL)\n\n        # Parse articles\n        articles = parse_html(html_content)\n\n        # Generate RSS feed\n        feed = generate_rss_feed(articles)\n\n        # Save feed to file\n        save_rss_feed(feed, FEED_NAME)\n\n        logger.info(f\"Successfully generated RSS feed with {len(articles)} articles\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    html_file = sys.argv[1] if len(sys.argv) > 1 else None\n    main(html_file=html_file)\n"
  },
  {
    "path": "feed_generators/utils.py",
    "content": "\"\"\"Shared utilities for feed generators.\"\"\"\n\nimport json\nimport logging\nimport re\nimport subprocess\nfrom datetime import datetime, timedelta\nfrom pathlib import Path\nfrom typing import Any\n\nimport pytz\nimport requests\nfrom feedgen.feed import FeedGenerator\n\nfrom models import GlobalSettings\n\n# ---------------------------------------------------------------------------\n# Constants\n# ---------------------------------------------------------------------------\n\nDEFAULT_USER_AGENT = (\n    \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36\"\n)\nDEFAULT_HEADERS = {\"User-Agent\": DEFAULT_USER_AGENT}\n\n# ---------------------------------------------------------------------------\n# Logging\n# ---------------------------------------------------------------------------\n\n\ndef setup_logging(name: str | None = None) -> logging.Logger:\n    \"\"\"Configure logging and return a logger for the calling module.\n\n    Call once at module level: ``logger = setup_logging()``\n    \"\"\"\n    logging.basicConfig(\n        level=logging.INFO,\n        format=\"%(asctime)s - %(levelname)s - %(message)s\",\n    )\n    if name is None:\n        import inspect\n\n        frame_info = inspect.stack()[1]\n        frame = getattr(frame_info, \"frame\", frame_info[0])\n        name = frame.f_globals.get(\"__name__\", __name__)\n    return logging.getLogger(name)\n\n\nlogger = setup_logging()\n\n# ---------------------------------------------------------------------------\n# Path helpers\n# ---------------------------------------------------------------------------\n\n\ndef get_project_root() -> Path:\n    \"\"\"Get the project root directory.\"\"\"\n    return Path(__file__).parent.parent\n\n\ndef get_cache_dir() -> Path:\n    \"\"\"Get the cache directory path, creating it if needed.\"\"\"\n    cache_dir = get_project_root() / \"cache\"\n    cache_dir.mkdir(exist_ok=True)\n    return cache_dir\n\n\ndef get_feeds_dir() -> Path:\n    \"\"\"Get the feeds directory path, creating it if needed.\"\"\"\n    feeds_dir = get_project_root() / \"feeds\"\n    feeds_dir.mkdir(exist_ok=True)\n    return feeds_dir\n\n\ndef get_cache_file(feed_name: str) -> Path:\n    \"\"\"Get the cache file path for a feed.\n\n    Args:\n        feed_name: Feed identifier (e.g., \"dagster\", \"cursor\")\n\n    Returns:\n        Path to ``cache/<feed_name>_posts.json``\n    \"\"\"\n    return get_cache_dir() / f\"{feed_name}_posts.json\"\n\n\n# ---------------------------------------------------------------------------\n# HTTP\n# ---------------------------------------------------------------------------\n\n\ndef fetch_page(url: str, timeout: int = 30, headers: dict | None = None) -> str:\n    \"\"\"Fetch a page and return its HTML content.\n\n    Args:\n        url: URL to fetch\n        timeout: Request timeout in seconds\n        headers: Optional headers dict. Falls back to DEFAULT_HEADERS.\n\n    Returns:\n        Response text (HTML)\n    \"\"\"\n    if headers is None:\n        headers = DEFAULT_HEADERS\n    response = requests.get(url, headers=headers, timeout=timeout)\n    response.raise_for_status()\n    return response.text\n\n\n# ---------------------------------------------------------------------------\n# Date helpers\n# ---------------------------------------------------------------------------\n\n\ndef stable_fallback_date(identifier: str) -> datetime:\n    \"\"\"Generate a stable date from a URL or title hash.\n\n    Used when a post has no parseable date. The hash ensures the same\n    identifier always produces the same fallback date, preventing\n    cache churn.\n    \"\"\"\n    hash_val = abs(hash(identifier)) % 730\n    epoch = datetime(2023, 1, 1, 0, 0, 0, tzinfo=pytz.UTC)\n    return epoch + timedelta(days=hash_val)\n\n\n# ---------------------------------------------------------------------------\n# Cache management\n# ---------------------------------------------------------------------------\n\n\ndef load_cache(feed_name: str, entries_key: str = \"entries\") -> dict:\n    \"\"\"Load existing cache or return empty structure.\n\n    Args:\n        feed_name: Feed identifier used to locate the cache file.\n        entries_key: Key under which entries are stored (default \"entries\").\n\n    Returns:\n        Dict with ``last_updated`` and the entries list.\n    \"\"\"\n    cache_file = get_cache_file(feed_name)\n    if cache_file.exists():\n        try:\n            with open(cache_file) as f:\n                data = json.load(f)\n                logger.info(f\"Loaded cache with {len(data.get(entries_key, []))} entries\")\n                return data\n        except json.JSONDecodeError:\n            logger.warning(f\"Corrupted cache file {cache_file}, starting fresh\")\n    logger.info(\"No cache file found, will do full fetch\")\n    return {\"last_updated\": None, entries_key: []}\n\n\ndef save_cache(feed_name: str, entries: list[dict], entries_key: str = \"entries\") -> None:\n    \"\"\"Save entries to cache file with automatic datetime serialization.\n\n    Args:\n        feed_name: Feed identifier used to locate the cache file.\n        entries: List of entry dicts to cache.\n        entries_key: Key under which entries are stored (default \"entries\").\n    \"\"\"\n    cache_file = get_cache_file(feed_name)\n    serializable = []\n    for entry in entries:\n        entry_copy = entry.copy()\n        for key, value in entry_copy.items():\n            if isinstance(value, datetime):\n                entry_copy[key] = value.isoformat()\n        serializable.append(entry_copy)\n\n    data = {\n        \"last_updated\": datetime.now(pytz.UTC).isoformat(),\n        entries_key: serializable,\n    }\n    with open(cache_file, \"w\") as f:\n        json.dump(data, f, indent=2, ensure_ascii=False)\n    logger.info(f\"Saved cache with {len(entries)} entries to {cache_file}\")\n\n\ndef deserialize_entries(entries: list[dict], date_field: str = \"date\") -> list[dict]:\n    \"\"\"Convert cached entries back to proper format with datetime objects.\n\n    Args:\n        entries: List of entry dicts from cache.\n        date_field: Key name for the date field to deserialize.\n\n    Returns:\n        Entries with ISO date strings converted back to datetime objects.\n    \"\"\"\n    result = []\n    for entry in entries:\n        entry_copy = entry.copy()\n        if isinstance(entry_copy.get(date_field), str):\n            try:\n                entry_copy[date_field] = datetime.fromisoformat(entry_copy[date_field])\n            except ValueError:\n                entry_copy[date_field] = stable_fallback_date(entry_copy.get(\"link\", \"\"))\n        result.append(entry_copy)\n    return result\n\n\ndef merge_entries(\n    new_entries: list[dict],\n    cached_entries: list[dict],\n    id_field: str = \"link\",\n    date_field: str = \"date\",\n) -> list[dict]:\n    \"\"\"Merge new entries into cache, deduplicate, and sort.\n\n    Args:\n        new_entries: Freshly fetched entries.\n        cached_entries: Previously cached entries.\n        id_field: Field used for deduplication (default \"link\").\n        date_field: Field used for sorting (default \"date\").\n\n    Returns:\n        Merged and sorted list of entries.\n    \"\"\"\n    existing_ids = {e[id_field] for e in cached_entries}\n    merged = list(cached_entries)\n\n    added_count = 0\n    for entry in new_entries:\n        if entry[id_field] not in existing_ids:\n            merged.append(entry)\n            existing_ids.add(entry[id_field])\n            added_count += 1\n\n    logger.info(f\"Added {added_count} new entries to cache\")\n    return sort_posts_for_feed(merged, date_field=date_field)\n\n\n# ---------------------------------------------------------------------------\n# Feed generation\n# ---------------------------------------------------------------------------\n\n\ndef setup_feed_links(fg: FeedGenerator, blog_url: str, feed_name: str) -> None:\n    \"\"\"Set up feed links correctly so <link> points to the blog, not the feed.\n\n    In feedgen, link order matters:\n    - rel=\"self\" must be set FIRST (becomes <atom:link rel=\"self\">)\n    - rel=\"alternate\" must be set LAST (becomes the main <link>)\n\n    The repo slug is configurable via the RSS_REPO_SLUG environment variable,\n    defaulting to \"Olshansk/rss-feeds\". Fork users can override it:\n        RSS_REPO_SLUG=oborchers/rss-feeds uv run feed_generators/ollama_blog.py\n\n    Args:\n        fg: FeedGenerator instance\n        blog_url: URL to the original blog (e.g., \"https://dagster.io/blog\")\n        feed_name: Feed name for the self link (e.g., \"dagster\")\n    \"\"\"\n    settings = GlobalSettings()\n    fg.link(\n        href=f\"https://raw.githubusercontent.com/{settings.repo_slug}/main/feeds/feed_{feed_name}.xml\",\n        rel=\"self\",\n    )\n    fg.link(href=blog_url, rel=\"alternate\")\n\n\ndef sort_posts_for_feed(posts: list[dict[str, Any]], date_field: str = \"date\") -> list[dict[str, Any]]:\n    \"\"\"Sort posts so newest appears first in the final RSS feed.\n\n    IMPORTANT: feedgen reverses the order when writing entries to XML.\n    So we sort ASCENDING (oldest first) here, which becomes DESCENDING\n    (newest first) in the final feed output.\n\n    Args:\n        posts: List of post dicts with date fields\n        date_field: Key name for the date field (default: \"date\")\n\n    Returns:\n        Sorted list with posts ordered for correct feed output\n    \"\"\"\n    posts_with_date = [p for p in posts if p.get(date_field) is not None]\n    posts_without_date = [p for p in posts if p.get(date_field) is None]\n\n    posts_with_date.sort(key=lambda x: x[date_field])\n\n    return posts_with_date + posts_without_date\n\n\ndef save_rss_feed(fg: FeedGenerator, feed_name: str) -> Path:\n    \"\"\"Save an RSS feed to the feeds directory.\n\n    Args:\n        fg: Configured FeedGenerator instance.\n        feed_name: Feed identifier (e.g., \"dagster\").\n\n    Returns:\n        Path to the written XML file.\n    \"\"\"\n    feeds_dir = get_feeds_dir()\n    output_file = feeds_dir / f\"feed_{feed_name}.xml\"\n    fg.rss_file(str(output_file), pretty=True)\n    logger.info(f\"Saved RSS feed to {output_file}\")\n    return output_file\n\n\n# ---------------------------------------------------------------------------\n# Chrome / Selenium\n# ---------------------------------------------------------------------------\n\n\ndef get_chrome_major_version() -> int | None:\n    \"\"\"Detect the installed Chrome major version.\n\n    Returns the major version number (e.g., 146) or None if detection fails.\n    This is needed because undetected_chromedriver auto-downloads the latest\n    chromedriver, which may not match the installed Chrome version.\n    \"\"\"\n    chrome_paths = [\n        \"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\",\n        \"google-chrome\",\n        \"google-chrome-stable\",\n    ]\n    for path in chrome_paths:\n        try:\n            result = subprocess.run([path, \"--version\"], capture_output=True, text=True, timeout=5)\n            match = re.search(r\"(\\d+)\\.\", result.stdout)\n            if match:\n                version = int(match.group(1))\n                logger.info(f\"Detected Chrome major version: {version}\")\n                return version\n        except (FileNotFoundError, subprocess.TimeoutExpired):\n            continue\n    logger.warning(\"Could not detect Chrome version, using undetected_chromedriver default\")\n    return None\n\n\ndef setup_selenium_driver():\n    \"\"\"Set up a headless Selenium WebDriver with undetected-chromedriver.\n\n    Automatically detects the installed Chrome version to avoid\n    chromedriver version mismatches.\n    \"\"\"\n    import undetected_chromedriver as uc\n\n    options = uc.ChromeOptions()\n    options.add_argument(\"--headless=new\")\n    options.add_argument(\"--no-sandbox\")\n    options.add_argument(\"--disable-dev-shm-usage\")\n    options.add_argument(\"--window-size=1920,1080\")\n    options.add_argument(\"--disable-blink-features=AutomationControlled\")\n    options.add_argument(f\"--user-agent={DEFAULT_USER_AGENT}\")\n    version = get_chrome_major_version()\n    return uc.Chrome(options=options, version_main=version)\n"
  },
  {
    "path": "feed_generators/validate_feeds.py",
    "content": "\"\"\"Validate all RSS feeds for empty content and stale items.\"\"\"\n\nimport sys\nimport xml.etree.ElementTree as ET\nfrom datetime import UTC, datetime\nfrom email.utils import parsedate_to_datetime\nfrom pathlib import Path\n\nSTALE_THRESHOLD_DAYS = 60\nFEEDS_DIR = Path(__file__).parent.parent / \"feeds\"\n\n\ndef validate_feed(feed_path):\n    \"\"\"Validate a single feed file.\n\n    Returns:\n        dict with keys: name, item_count, newest_date, status, message\n    \"\"\"\n    name = feed_path.name\n    try:\n        tree = ET.parse(feed_path)\n    except ET.ParseError as e:\n        return {\n            \"name\": name,\n            \"item_count\": 0,\n            \"newest_date\": None,\n            \"status\": \"ERROR\",\n            \"message\": f\"XML parse error: {e}\",\n        }\n\n    root = tree.getroot()\n    items = root.findall(\".//item\")\n    item_count = len(items)\n\n    if item_count == 0:\n        return {\n            \"name\": name,\n            \"item_count\": 0,\n            \"newest_date\": None,\n            \"status\": \"EMPTY\",\n            \"message\": \"0 items\",\n        }\n\n    # Find newest pubDate\n    newest = None\n    for item in items:\n        pub_date = item.find(\"pubDate\")\n        if pub_date is not None and pub_date.text:\n            try:\n                dt = parsedate_to_datetime(pub_date.text)\n                if newest is None or dt > newest:\n                    newest = dt\n            except (ValueError, TypeError):\n                continue\n\n    if newest is None:\n        return {\n            \"name\": name,\n            \"item_count\": item_count,\n            \"newest_date\": None,\n            \"status\": \"OK\",\n            \"message\": f\"{item_count} items, no parseable dates\",\n        }\n\n    days_ago = (datetime.now(UTC) - newest).days\n\n    if days_ago > STALE_THRESHOLD_DAYS:\n        return {\n            \"name\": name,\n            \"item_count\": item_count,\n            \"newest_date\": newest,\n            \"status\": \"STALE\",\n            \"message\": f\"{item_count} items, newest: {newest.strftime('%Y-%m-%d')} ({days_ago} days ago)\",\n        }\n\n    return {\n        \"name\": name,\n        \"item_count\": item_count,\n        \"newest_date\": newest,\n        \"status\": \"OK\",\n        \"message\": f\"{item_count} items, newest: {newest.strftime('%Y-%m-%d')}\",\n    }\n\n\ndef main():\n    feeds = sorted(FEEDS_DIR.glob(\"feed_*.xml\"))\n\n    if not feeds:\n        print(\"No feed files found in feeds/\")\n        sys.exit(1)\n\n    results = [validate_feed(f) for f in feeds]\n\n    # Print summary\n    print(f\"\\nFeed Validation Summary ({len(results)} feeds):\")\n    print(f\"{'=' * 70}\")\n\n    for r in results:\n        print(f\"  {r['name']:50s} {r['status']:5s}  {r['message']}\")\n\n    empty = [r for r in results if r[\"status\"] == \"EMPTY\"]\n    stale = [r for r in results if r[\"status\"] == \"STALE\"]\n    errors = [r for r in results if r[\"status\"] == \"ERROR\"]\n\n    print(f\"{'=' * 70}\")\n\n    if errors:\n        print(f\"\\nERRORS: {len(errors)} feed(s) with XML parse errors\")\n        for r in errors:\n            print(f\"  {r['name']}: {r['message']}\")\n\n    if empty:\n        print(f\"\\nERRORS: {len(empty)} empty feed(s)\")\n        for r in empty:\n            print(f\"  {r['name']}\")\n\n    if stale:\n        print(f\"\\nWARNINGS: {len(stale)} stale feed(s) (>{STALE_THRESHOLD_DAYS} days)\")\n        for r in stale:\n            print(f\"  {r['name']}: {r['message']}\")\n\n    if not empty and not errors:\n        print(\"\\nAll feeds have content.\")\n\n    # Exit 1 only for empty or parse-error feeds\n    if empty or errors:\n        sys.exit(1)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/weaviate_blog.py",
    "content": "\"\"\"Generate RSS feed for the Weaviate Blog (https://weaviate.io/blog).\n\nDocusaurus-based blog with /page/N pagination. Static HTML; no JS rendering needed.\n\"\"\"\n\nimport argparse\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import (\n    deserialize_entries,\n    fetch_page,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"weaviate\"\nBLOG_URL = \"https://weaviate.io/blog\"\nMAX_PAGES_FULL = 5\n\n\ndef parse_posts(html_content: str) -> tuple[list[dict], bool]:\n    \"\"\"Extract posts from a single page. Returns (posts, has_next_page).\"\"\"\n    soup = BeautifulSoup(html_content, \"html.parser\")\n    posts = []\n\n    for article in soup.select(\"article.margin-bottom--xl\"):\n        title_elem = article.select_one(\"h2\")\n        if not title_elem:\n            continue\n        title = title_elem.text.strip()\n\n        url_elem = article.select_one('a[itemprop=\"url\"]')\n        if not url_elem or not url_elem.get(\"href\"):\n            continue\n        link = url_elem[\"href\"]\n        if link.startswith(\"/\"):\n            link = f\"https://weaviate.io{link}\"\n\n        date = None\n        time_elem = article.select_one(\"time[datetime]\")\n        if time_elem and time_elem.get(\"datetime\"):\n            try:\n                date = datetime.fromisoformat(time_elem[\"datetime\"].replace(\"Z\", \"+00:00\"))\n                if date.tzinfo is None:\n                    date = date.replace(tzinfo=pytz.UTC)\n            except ValueError:\n                logger.warning(f\"Could not parse datetime: {time_elem['datetime']}\")\n        if not date:\n            date = stable_fallback_date(link)\n\n        desc_elem = article.select_one('meta[itemprop=\"description\"]')\n        description = desc_elem[\"content\"] if desc_elem and desc_elem.get(\"content\") else title\n\n        posts.append(\n            {\n                \"link\": link,\n                \"title\": title,\n                \"date\": date,\n                \"description\": description,\n            }\n        )\n\n    has_next_page = soup.select_one(\"a.pagination-nav__link--next\") is not None\n    return posts, has_next_page\n\n\ndef fetch_all_pages(max_pages: int = MAX_PAGES_FULL) -> list[dict]:\n    \"\"\"Follow /page/N pagination up to max_pages (or until no next link).\"\"\"\n    all_posts = []\n    for page_num in range(1, max_pages + 1):\n        url = BLOG_URL if page_num == 1 else f\"{BLOG_URL}/page/{page_num}\"\n        logger.info(f\"Fetching page {page_num}: {url}\")\n        html = fetch_page(url)\n        posts, has_next_page = parse_posts(html)\n        all_posts.extend(posts)\n        logger.info(f\"Found {len(posts)} posts on page {page_num}\")\n        if not has_next_page:\n            break\n\n    seen = set()\n    unique_posts = []\n    for post in all_posts:\n        if post[\"link\"] not in seen:\n            unique_posts.append(post)\n            seen.add(post[\"link\"])\n\n    logger.info(f\"Total unique posts across all pages: {len(unique_posts)}\")\n    return sort_posts_for_feed(unique_posts, date_field=\"date\")\n\n\ndef generate_rss_feed(posts: list[dict]) -> FeedGenerator:\n    fg = FeedGenerator()\n    fg.title(\"Weaviate Blog\")\n    fg.description(\n        \"Read the latest from the Weaviate team: insights, tutorials, and updates on \"\n        \"vector databases, AI-native applications, and search.\"\n    )\n    fg.language(\"en\")\n    fg.author({\"name\": \"Weaviate\"})\n    fg.subtitle(\"Latest updates from Weaviate\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    for post in posts:\n        fe = fg.add_entry()\n        fe.title(post[\"title\"])\n        fe.description(post[\"description\"])\n        fe.link(href=post[\"link\"])\n        fe.id(post[\"link\"])\n        if post.get(\"date\"):\n            fe.published(post[\"date\"])\n\n    logger.info(f\"Generated RSS feed with {len(posts)} entries\")\n    return fg\n\n\ndef main(full_reset: bool = False) -> bool:\n    cache = load_cache(FEED_NAME)\n    cached_entries = deserialize_entries(cache.get(\"entries\", []))\n\n    if full_reset or not cached_entries:\n        mode = \"full reset\" if full_reset else \"no cache exists\"\n        logger.info(f\"Running full fetch ({mode})\")\n        posts = fetch_all_pages()\n    else:\n        logger.info(\"Running incremental update (page 1 only)\")\n        html = fetch_page(BLOG_URL)\n        new_posts, _ = parse_posts(html)\n        logger.info(f\"Found {len(new_posts)} posts on page 1\")\n        posts = merge_entries(new_posts, cached_entries)\n\n    save_cache(FEED_NAME, posts)\n    feed = generate_rss_feed(posts)\n    save_rss_feed(feed, FEED_NAME)\n    logger.info(\"Done!\")\n    return True\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate Weaviate Blog RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all pages)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feed_generators/windsurf_blog.py",
    "content": "from datetime import datetime\n\nimport pytz\nimport requests\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed\n\nlogger = setup_logging()\n\nFEED_NAME = \"windsurf_blog\"  # keep _blog suffix for backwards compatibility (feed URL)\nBLOG_URL = \"https://windsurf.com/blog\"\n\n\ndef fetch_blog_posts():\n    \"\"\"Fetch blog posts from Windsurf's API.\"\"\"\n    try:\n        headers = {\n            \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36\",\n            \"Accept\": \"*/*\",\n        }\n        url = \"https://windsurf.com/api/blog\"\n        response = requests.get(url, headers=headers, timeout=10)\n        response.raise_for_status()\n        return response.json()\n    except requests.RequestException as e:\n        logger.error(f\"Error fetching blog posts: {e!s}\")\n        raise\n\n\ndef parse_blog_posts(api_response):\n    \"\"\"Parse blog posts from API response.\"\"\"\n    try:\n        posts = api_response.get(\"posts\", [])\n        blog_posts = []\n\n        for post in posts:\n            # Skip drafts\n            if post.get(\"draft\", False):\n                continue\n\n            title = post.get(\"title\", \"\")\n            if not title:\n                continue\n\n            # Parse date\n            date_str = post.get(\"date\", \"\")\n            if date_str:\n                try:\n                    date = datetime.fromisoformat(date_str.replace(\"Z\", \"+00:00\"))\n                except ValueError:\n                    date = datetime.now(pytz.UTC)\n            else:\n                date = datetime.now(pytz.UTC)\n\n            # Build link from slug\n            slug = post.get(\"slug\", \"\")\n            link = f\"https://windsurf.com/blog/{slug}\" if slug else \"https://windsurf.com/blog\"\n\n            # Get summary/description\n            description = post.get(\"summary\", title)\n\n            # Get tags for categories\n            tags = post.get(\"tags\", [])\n\n            blog_posts.append(\n                {\n                    \"title\": title,\n                    \"link\": link,\n                    \"description\": description,\n                    \"date\": date,\n                    \"tags\": tags,\n                }\n            )\n\n        logger.info(f\"Successfully parsed {len(blog_posts)} blog posts\")\n        return blog_posts\n\n    except Exception as e:\n        logger.error(f\"Error parsing blog posts: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(blog_posts, feed_name=FEED_NAME):\n    \"\"\"Generate RSS feed from blog posts.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Windsurf Blog\")\n        fg.description(\"Latest updates and announcements from Windsurf\")\n        setup_feed_links(fg, BLOG_URL, feed_name)\n        fg.language(\"en\")\n\n        fg.author({\"name\": \"Windsurf\"})\n        fg.subtitle(\"Read about the latest announcements from Windsurf\")\n\n        # Sort for correct feed order (newest first in output)\n        blog_posts_sorted = sort_posts_for_feed(blog_posts, date_field=\"date\")\n\n        for post in blog_posts_sorted:\n            fe = fg.add_entry()\n            fe.title(post[\"title\"])\n            fe.description(post[\"description\"])\n            fe.link(href=post[\"link\"])\n            fe.published(post[\"date\"])\n            fe.id(post[\"link\"])\n\n            # Add tags as categories\n            for tag in post.get(\"tags\", []):\n                fe.category(term=tag)\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(feed_name=FEED_NAME):\n    \"\"\"Main function to generate RSS feed from Windsurf blog.\"\"\"\n    try:\n        api_response = fetch_blog_posts()\n        blog_posts = parse_blog_posts(api_response)\n\n        if not blog_posts:\n            logger.warning(\"No blog posts found!\")\n            return False\n\n        feed = generate_rss_feed(blog_posts, feed_name)\n        save_rss_feed(feed, feed_name)\n\n        logger.info(f\"Successfully generated RSS feed with {len(blog_posts)} posts\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/windsurf_changelog.py",
    "content": "import re\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed\n\nlogger = setup_logging()\n\nFEED_NAME = \"windsurf_changelog\"\nBLOG_URL = \"https://windsurf.com/changelog\"\n\n\ndef fetch_changelog_content(url=BLOG_URL):\n    \"\"\"Fetch changelog content from Windsurf's website.\"\"\"\n    try:\n        return fetch_page(url)\n    except Exception as e:\n        logger.error(f\"Error fetching changelog content: {e!s}\")\n        raise\n\n\ndef parse_date(date_text):\n    \"\"\"Parse date from various formats used on Windsurf changelog.\"\"\"\n    date_formats = [\n        \"%B %d, %Y\",  # November 25, 2025\n        \"%b %d, %Y\",  # Nov 25, 2025\n        \"%B %d %Y\",\n        \"%b %d %Y\",\n        \"%Y-%m-%d\",\n        \"%m/%d/%Y\",\n    ]\n\n    date_text = date_text.strip()\n    for date_format in date_formats:\n        try:\n            date = datetime.strptime(date_text, date_format)\n            return date.replace(tzinfo=pytz.UTC)\n        except ValueError:\n            continue\n\n    logger.warning(f\"Could not parse date: {date_text}\")\n    return None\n\n\ndef parse_changelog_html(html_content):\n    \"\"\"Parse the changelog HTML content and extract version entries.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        changelog_entries = []\n\n        # Version pattern to find elements with version IDs\n        version_pattern = re.compile(r\"^\\d+\\.\\d+\\.\\d+$\")\n\n        # Find all elements with version-like IDs\n        version_elements = soup.find_all(id=version_pattern)\n\n        for elem in version_elements:\n            version = elem.get(\"id\")\n            elem_text = elem.get_text()\n\n            # Extract date from the element's text\n            date_match = re.search(\n                r\"(January|February|March|April|May|June|July|August|September|October|November|December)\\s+\\d{1,2},?\\s+\\d{4}\",\n                elem_text,\n            )\n\n            if date_match:\n                date = parse_date(date_match.group())\n            else:\n                logger.warning(f\"Could not find date for version {version}\")\n                date = datetime.now(pytz.UTC)\n\n            # Extract description from the prose/article content as HTML\n            prose_elem = elem.select_one(\".prose\")\n            if prose_elem:\n                # Get inner HTML, excluding images\n                description_parts = []\n                for child in prose_elem.children:\n                    if child.name == \"img\":\n                        continue\n                    if child.name == \"h1\":\n                        # Major section header (AI Models, Features & Tools, etc.)\n                        heading_text = child.get_text(strip=True)\n                        description_parts.append(f\"<h3>{heading_text}</h3>\")\n                    elif child.name in [\"h2\", \"h3\"]:\n                        # Subheading (Gemini 3 Pro, SWE-1.5, etc.)\n                        heading_text = child.get_text(strip=True)\n                        description_parts.append(f\"<p><strong>{heading_text}</strong></p>\")\n                    elif child.name == \"p\":\n                        description_parts.append(f\"<p>{child.get_text(strip=True)}</p>\")\n                    elif child.name == \"ul\":\n                        items = [f\"<li>{li.get_text(strip=True)}</li>\" for li in child.find_all(\"li\")]\n                        description_parts.append(f\"<ul>{''.join(items)}</ul>\")\n                description = \"\".join(description_parts)\n            else:\n                # Fallback: extract text with separator\n                description = elem_text\n                if date_match:\n                    description = elem_text[date_match.end() :].strip()\n\n            # Limit length\n            if len(description) > 2000:\n                description = description[:2000] + \"...\"\n\n            if not description:\n                description = f\"Version {version} release\"\n\n            # Create link with anchor\n            link = f\"https://windsurf.com/changelog#{version}\"\n\n            changelog_entries.append(\n                {\n                    \"title\": f\"Windsurf {version}\",\n                    \"version\": version,\n                    \"link\": link,\n                    \"description\": description,\n                    \"date\": date,\n                }\n            )\n\n        logger.info(f\"Successfully parsed {len(changelog_entries)} changelog entries\")\n        return changelog_entries\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(changelog_entries, feed_name=FEED_NAME):\n    \"\"\"Generate RSS feed from changelog entries.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Windsurf Changelog\")\n        fg.description(\"Version updates and changes from Windsurf\")\n        setup_feed_links(fg, BLOG_URL, feed_name)\n        fg.language(\"en\")\n\n        fg.author({\"name\": \"Windsurf\"})\n        fg.subtitle(\"Latest version updates from Windsurf\")\n\n        # Sort for correct feed order (newest first in output)\n        entries_sorted = sort_posts_for_feed(changelog_entries, date_field=\"date\")\n\n        for entry in entries_sorted:\n            fe = fg.add_entry()\n            fe.title(entry[\"title\"])\n            fe.description(entry[\"description\"])\n            fe.link(href=entry[\"link\"])\n            fe.published(entry[\"date\"])\n            fe.category(term=\"Changelog\")\n            fe.id(f\"{entry['link']}#{entry['version']}\")\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(feed_name=FEED_NAME):\n    \"\"\"Main function to generate RSS feed from Windsurf changelog.\"\"\"\n    try:\n        html_content = fetch_changelog_content()\n        changelog_entries = parse_changelog_html(html_content)\n\n        if not changelog_entries:\n            logger.warning(\"No changelog entries found!\")\n            return False\n\n        feed = generate_rss_feed(changelog_entries, feed_name)\n        save_rss_feed(feed, feed_name)\n\n        logger.info(f\"Successfully generated RSS feed with {len(changelog_entries)} entries\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/windsurf_next_changelog.py",
    "content": "import re\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\n\nfrom utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed\n\nlogger = setup_logging()\n\nFEED_NAME = \"windsurf_next_changelog\"\nBLOG_URL = \"https://windsurf.com/changelog/windsurf-next\"\n\n\ndef fetch_changelog_content(url=BLOG_URL):\n    \"\"\"Fetch changelog content from Windsurf Next's website.\"\"\"\n    try:\n        return fetch_page(url)\n    except Exception as e:\n        logger.error(f\"Error fetching changelog content: {e!s}\")\n        raise\n\n\ndef parse_date(date_text):\n    \"\"\"Parse date from various formats used on Windsurf changelog.\"\"\"\n    date_formats = [\n        \"%B %d, %Y\",  # November 25, 2025\n        \"%b %d, %Y\",  # Nov 25, 2025\n        \"%B %d %Y\",\n        \"%b %d %Y\",\n        \"%Y-%m-%d\",\n        \"%m/%d/%Y\",\n    ]\n\n    date_text = date_text.strip()\n    for date_format in date_formats:\n        try:\n            date = datetime.strptime(date_text, date_format)\n            return date.replace(tzinfo=pytz.UTC)\n        except ValueError:\n            continue\n\n    logger.warning(f\"Could not parse date: {date_text}\")\n    return None\n\n\ndef parse_changelog_html(html_content):\n    \"\"\"Parse the changelog HTML content and extract version entries.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        changelog_entries = []\n\n        # Version pattern to find elements with version IDs\n        version_pattern = re.compile(r\"^\\d+\\.\\d+\\.\\d+$\")\n\n        # Find all elements with version-like IDs\n        version_elements = soup.find_all(id=version_pattern)\n\n        for elem in version_elements:\n            version = elem.get(\"id\")\n            elem_text = elem.get_text()\n\n            # Extract date from the element's text\n            date_match = re.search(\n                r\"(January|February|March|April|May|June|July|August|September|October|November|December)\\s+\\d{1,2},?\\s+\\d{4}\",\n                elem_text,\n            )\n\n            if date_match:\n                date = parse_date(date_match.group())\n            else:\n                logger.warning(f\"Could not find date for version {version}\")\n                date = datetime.now(pytz.UTC)\n\n            # Extract description from the prose/article content as HTML\n            prose_elem = elem.select_one(\".prose\")\n            if prose_elem:\n                # Get inner HTML, excluding images\n                description_parts = []\n                for child in prose_elem.children:\n                    if child.name == \"img\":\n                        continue\n                    if child.name == \"h1\":\n                        # Major section header (AI Models, Features & Tools, etc.)\n                        heading_text = child.get_text(strip=True)\n                        description_parts.append(f\"<h3>{heading_text}</h3>\")\n                    elif child.name in [\"h2\", \"h3\"]:\n                        # Subheading (Gemini 3 Pro, SWE-1.5, etc.)\n                        heading_text = child.get_text(strip=True)\n                        description_parts.append(f\"<p><strong>{heading_text}</strong></p>\")\n                    elif child.name == \"p\":\n                        description_parts.append(f\"<p>{child.get_text(strip=True)}</p>\")\n                    elif child.name == \"ul\":\n                        items = [f\"<li>{li.get_text(strip=True)}</li>\" for li in child.find_all(\"li\")]\n                        description_parts.append(f\"<ul>{''.join(items)}</ul>\")\n                description = \"\".join(description_parts)\n            else:\n                # Fallback: extract text with separator\n                description = elem_text\n                if date_match:\n                    description = elem_text[date_match.end() :].strip()\n\n            # Limit length\n            if len(description) > 2000:\n                description = description[:2000] + \"...\"\n\n            if not description:\n                description = f\"Version {version} release\"\n\n            # Create link with anchor\n            link = f\"https://windsurf.com/changelog/windsurf-next#{version}\"\n\n            changelog_entries.append(\n                {\n                    \"title\": f\"Windsurf Next {version}\",\n                    \"version\": version,\n                    \"link\": link,\n                    \"description\": description,\n                    \"date\": date,\n                }\n            )\n\n        logger.info(f\"Successfully parsed {len(changelog_entries)} changelog entries\")\n        return changelog_entries\n\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(changelog_entries, feed_name=FEED_NAME):\n    \"\"\"Generate RSS feed from changelog entries.\"\"\"\n    try:\n        fg = FeedGenerator()\n        fg.title(\"Windsurf Next Changelog\")\n        fg.description(\"Version updates and changes from Windsurf Next\")\n        setup_feed_links(fg, BLOG_URL, feed_name)\n        fg.language(\"en\")\n\n        fg.author({\"name\": \"Windsurf\"})\n        fg.subtitle(\"Latest version updates from Windsurf Next\")\n\n        # Sort for correct feed order (newest first in output)\n        entries_sorted = sort_posts_for_feed(changelog_entries, date_field=\"date\")\n\n        for entry in entries_sorted:\n            fe = fg.add_entry()\n            fe.title(entry[\"title\"])\n            fe.description(entry[\"description\"])\n            fe.link(href=entry[\"link\"])\n            fe.published(entry[\"date\"])\n            fe.category(term=\"Changelog\")\n            fe.id(f\"{entry['link']}#{entry['version']}\")\n\n        logger.info(\"Successfully generated RSS feed\")\n        return fg\n\n    except Exception as e:\n        logger.error(f\"Error generating RSS feed: {e!s}\")\n        raise\n\n\ndef main(feed_name=FEED_NAME):\n    \"\"\"Main function to generate RSS feed from Windsurf Next changelog.\"\"\"\n    try:\n        html_content = fetch_changelog_content()\n        changelog_entries = parse_changelog_html(html_content)\n\n        if not changelog_entries:\n            logger.warning(\"No changelog entries found!\")\n            return False\n\n        feed = generate_rss_feed(changelog_entries, feed_name)\n        save_rss_feed(feed, feed_name)\n\n        logger.info(f\"Successfully generated RSS feed with {len(changelog_entries)} entries\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "feed_generators/xainews_blog.py",
    "content": "import argparse\nfrom datetime import datetime\n\nimport pytz\nfrom bs4 import BeautifulSoup\nfrom feedgen.feed import FeedGenerator\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nfrom utils import (\n    deserialize_entries,\n    load_cache,\n    merge_entries,\n    save_cache,\n    save_rss_feed,\n    setup_feed_links,\n    setup_logging,\n    setup_selenium_driver,\n    sort_posts_for_feed,\n    stable_fallback_date,\n)\n\nlogger = setup_logging()\n\nFEED_NAME = \"xainews\"\nBLOG_URL = \"https://x.ai/news\"\n\n\ndef fetch_news_content(url=BLOG_URL):\n    \"\"\"Fetch the fully loaded HTML content of xAI's news page using Selenium.\n\n    The xAI news page is JS-rendered, so a simple HTTP request returns an empty\n    shell. We need Selenium to wait for the content to load.\n    \"\"\"\n    driver = None\n    try:\n        logger.info(f\"Fetching content from URL: {url}\")\n        driver = setup_selenium_driver()\n        driver.get(url)\n\n        # Wait for news articles to load\n        try:\n            WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, \"a[href*='/news/']\")))\n            logger.info(\"News articles loaded successfully\")\n        except Exception:\n            logger.warning(\"Could not confirm articles loaded, proceeding anyway...\")\n\n        html_content = driver.page_source\n        logger.info(\"Successfully fetched HTML content\")\n        return html_content\n\n    except Exception as e:\n        logger.error(f\"Error fetching content: {e}\")\n        raise\n    finally:\n        if driver:\n            driver.quit()\n\n\ndef parse_date(date_text):\n    \"\"\"Parse date from various formats used on xAI news page.\"\"\"\n    date_formats = [\n        \"%B %d, %Y\",  # September 19, 2025\n        \"%b %d, %Y\",  # Sep 19, 2025\n        \"%B %d %Y\",\n        \"%b %d %Y\",\n        \"%Y-%m-%d\",\n        \"%m/%d/%Y\",\n    ]\n\n    date_text = date_text.strip()\n    for date_format in date_formats:\n        try:\n            date = datetime.strptime(date_text, date_format)\n            return date.replace(tzinfo=pytz.UTC)\n        except ValueError:\n            continue\n\n    logger.warning(f\"Could not parse date: {date_text}\")\n    return None\n\n\nMONTH_NAMES = [\n    \"January\",\n    \"February\",\n    \"March\",\n    \"April\",\n    \"May\",\n    \"June\",\n    \"July\",\n    \"August\",\n    \"September\",\n    \"October\",\n    \"November\",\n    \"December\",\n]\n\n\ndef looks_like_date(text):\n    \"\"\"Check if text looks like a date string.\"\"\"\n    return any(month in text for month in MONTH_NAMES)\n\n\ndef extract_articles(soup):\n    \"\"\"Extract article information from the parsed HTML.\"\"\"\n    articles = []\n    seen_links = set()\n\n    # Find all article containers\n    article_containers = soup.select(\"div.group.relative\")\n    logger.info(f\"Found {len(article_containers)} potential article containers\")\n\n    for container in article_containers:\n        try:\n            # Extract the link and title\n            title_link = container.select_one('a[href*=\"/news/\"]')\n            if not title_link:\n                continue\n\n            href = title_link.get(\"href\", \"\")\n            if not href:\n                continue\n\n            # Build full URL\n            link = f\"https://x.ai{href}\" if href.startswith(\"/\") else href\n\n            # Skip duplicates\n            if link in seen_links:\n                continue\n\n            # Skip the main news page link\n            if link.endswith(\"/news\") or link.endswith(\"/news/\"):\n                continue\n\n            seen_links.add(link)\n\n            # Extract title - can be in h3 or h4\n            title_elem = title_link.select_one(\"h3, h4\")\n            if not title_elem:\n                logger.debug(f\"Could not extract title for link: {link}\")\n                continue\n\n            title = title_elem.text.strip()\n\n            # Extract description\n            description_elem = container.select_one(\"p.text-secondary\")\n            description = description_elem.text.strip() if description_elem else title\n\n            # Extract date - try multiple selectors\n            date = None\n\n            # First try: featured article format\n            date_elem = container.select_one(\"p.mono-tag.text-xs.leading-6\")\n            if date_elem:\n                date_text = date_elem.text.strip()\n                if looks_like_date(date_text):\n                    date = parse_date(date_text)\n\n            # Second try: standard article format in footer\n            if not date:\n                footer_elements = container.select(\"div.flex.items-center.justify-between span.mono-tag.text-xs\")\n                for elem in footer_elements:\n                    text = elem.text.strip()\n                    if looks_like_date(text):\n                        date = parse_date(text)\n                        break\n\n            # Fallback: use stable date\n            if not date:\n                logger.warning(f\"Could not extract date for article: {title}\")\n                date = stable_fallback_date(link)\n\n            # Extract category\n            category = \"News\"\n            category_elem = container.select_one(\"div:not(.flex.items-center.justify-between) span.mono-tag.text-xs\")\n            if category_elem:\n                category_text = category_elem.text.strip().lower()\n                if not looks_like_date(category_text):\n                    category = category_text.capitalize()\n\n            article = {\n                \"title\": title,\n                \"link\": link,\n                \"date\": date,\n                \"category\": category,\n                \"description\": description,\n            }\n\n            articles.append(article)\n            logger.debug(f\"Extracted article: {title} ({date})\")\n\n        except Exception as e:\n            logger.warning(f\"Error parsing article container: {e!s}\")\n            continue\n\n    logger.info(f\"Successfully parsed {len(articles)} articles\")\n    return articles\n\n\ndef parse_news_html(html_content):\n    \"\"\"Parse the news HTML content and extract article information.\"\"\"\n    try:\n        soup = BeautifulSoup(html_content, \"html.parser\")\n        return extract_articles(soup)\n    except Exception as e:\n        logger.error(f\"Error parsing HTML content: {e!s}\")\n        raise\n\n\ndef generate_rss_feed(articles):\n    \"\"\"Generate RSS feed from news articles.\"\"\"\n    fg = FeedGenerator()\n    fg.title(\"xAI News\")\n    fg.description(\"Latest news and updates from xAI\")\n    fg.language(\"en\")\n\n    fg.author({\"name\": \"xAI\"})\n    fg.subtitle(\"Latest updates from xAI\")\n    setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME)\n\n    # Sort articles for correct feed order (newest first in output)\n    articles_sorted = sort_posts_for_feed(articles, date_field=\"date\")\n\n    for article in articles_sorted:\n        fe = fg.add_entry()\n        fe.title(article[\"title\"])\n        fe.description(article[\"description\"])\n        fe.link(href=article[\"link\"])\n        fe.published(article[\"date\"])\n        fe.category(term=article[\"category\"])\n        fe.id(article[\"link\"])\n\n    logger.info(\"Successfully generated RSS feed\")\n    return fg\n\n\ndef main(full_reset=False):\n    \"\"\"Main function to generate RSS feed from xAI's news page.\n\n    Args:\n        full_reset: If True, ignore cache and fetch fresh.\n                   If False, merge with cached articles.\n    \"\"\"\n    try:\n        cache = load_cache(FEED_NAME)\n        cached_articles = deserialize_entries(cache.get(\"entries\", []))\n\n        if full_reset or not cached_articles:\n            mode = \"full reset\" if full_reset else \"no cache exists\"\n            logger.info(f\"Running full fetch ({mode})\")\n        else:\n            logger.info(\"Running incremental update\")\n\n        # Fetch news content using Selenium (xAI is JS-rendered)\n        html_content = fetch_news_content()\n\n        # Parse articles from HTML\n        new_articles = parse_news_html(html_content)\n\n        if not new_articles and not cached_articles:\n            logger.warning(\"No articles found!\")\n            return False\n\n        # Merge with cache or use fresh articles\n        if cached_articles and not full_reset:\n            articles = merge_entries(new_articles, cached_articles)\n        else:\n            articles = new_articles\n\n        # Save to cache\n        save_cache(FEED_NAME, articles)\n\n        # Generate and save RSS feed\n        feed = generate_rss_feed(articles)\n        save_rss_feed(feed, FEED_NAME)\n\n        logger.info(f\"Successfully generated RSS feed with {len(articles)} articles\")\n        return True\n\n    except Exception as e:\n        logger.error(f\"Failed to generate RSS feed: {e!s}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description=\"Generate xAI News RSS feed\")\n    parser.add_argument(\"--full\", action=\"store_true\", help=\"Force full reset (fetch all articles)\")\n    args = parser.parse_args()\n    main(full_reset=args.full)\n"
  },
  {
    "path": "feeds/.gitkeep",
    "content": ""
  },
  {
    "path": "feeds/feed_ai_first_podcast.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>AI FIRST Podcast</title>\n    <link>https://ai-first.ai/podcast</link>\n    <description>KI-Transformation, Produktivität und die Zukunft der Arbeit</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_ai_first_podcast.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://ai-first.ai/images/og/og-default.png</url>\n      <title>AI FIRST Podcast</title>\n      <link>https://ai-first.ai/podcast</link>\n    </image>\n    <language>de</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:21 +0000</lastBuildDate>\n    <item>\n      <title>Wie eine Stadt mit 40.000 Einwohnern vormacht, wie KI-Transformation geht.</title>\n      <link>https://ai-first.ai/podcast/wie-eine-stadt-mit-40-000-einwohnern-vormacht-wie-ki-transformation-geht</link>\n      <description>Wie eine Stadt mit 40.000 Einwohnern vormacht, wie KI-Transformation geht. – mit Thorsten Rode</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-eine-stadt-mit-40-000-einwohnern-vormacht-wie-ki-transformation-geht</guid>\n      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie ein Full AI Studio Filme (fast) ohne Menschen produziert</title>\n      <link>https://ai-first.ai/podcast/wie-ein-full-ai-studio-filme-fast-ohne-menschen-produziert</link>\n      <description>Wie ein Full AI Studio Filme (fast) ohne Menschen produziert – mit Max Penk</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-ein-full-ai-studio-filme-fast-ohne-menschen-produziert</guid>\n      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Heute entscheiden, morgen testen: KI-Transformation bei der Ostfriesischen Tee Gesellschaft</title>\n      <link>https://ai-first.ai/podcast/heute-entscheiden-morgen-testen-ki-transformation-bei-der-ostfriesischen-tee-gesellschaft</link>\n      <description>Heute entscheiden, morgen testen: KI-Transformation bei der Ostfriesischen Tee Gesellschaft – mit Alexander Cohrs</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/heute-entscheiden-morgen-testen-ki-transformation-bei-der-ostfriesischen-tee-gesellschaft</guid>\n      <pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Der Nightmare Competitor Ansatz bei Gebr. Dorfner: \"Wie würde ein Wettbewerber mit KI unser Geschäftsmodell disruptieren?”</title>\n      <link>https://ai-first.ai/podcast/gebrueder-dorfner</link>\n      <description>Der Nightmare Competitor Ansatz bei Gebr. Dorfner: \"Wie würde ein Wettbewerber mit KI unser Geschäftsmodell disruptieren?” – mit Tim Lüken</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/gebrueder-dorfner</guid>\n      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie Finanzfluss menschliche Stärken mit KI-Fähigkeiten im Journalismus verbindet</title>\n      <link>https://ai-first.ai/podcast/wie-finanzfluss-menschliche-staerken-mit-ki-faehigkeiten-im-journalismus-verbindet</link>\n      <description>Wie Finanzfluss menschliche Stärken mit KI-Fähigkeiten im Journalismus verbindet – mit Mary Abdelaziz-Ditzow</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-finanzfluss-menschliche-staerken-mit-ki-faehigkeiten-im-journalismus-verbindet</guid>\n      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Die andere Seite der KI-Medaille: Brain Fry, Arbeitsmarkt-Druck und Adaptionsprobleme</title>\n      <link>https://ai-first.ai/podcast/die-andere-seite-der-ki-medaille-brain-fry-arbeitsmarkt-druck-und-adaptionsprobleme</link>\n      <description>Die andere Seite der KI-Medaille: Brain Fry, Arbeitsmarkt-Druck und Adaptionsprobleme – mit Elisabeth L’Orange</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/die-andere-seite-der-ki-medaille-brain-fry-arbeitsmarkt-druck-und-adaptionsprobleme</guid>\n      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI als strategische Fähigkeit im Bau: Wie GOLDBECK Adoption und Use Cases orchestriert</title>\n      <link>https://ai-first.ai/podcast/ki-als-strategische-faehigkeit-im-bau-wie-goldbeck-adoption-und-use-cases-orchestriert</link>\n      <description>KI als strategische Fähigkeit im Bau: Wie GOLDBECK Adoption und Use Cases orchestriert – mit Dr. Florian Gauer</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-als-strategische-faehigkeit-im-bau-wie-goldbeck-adoption-und-use-cases-orchestriert</guid>\n      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie wir unser KI-Betriebssystem aufgebaut haben</title>\n      <link>https://ai-first.ai/podcast/wie-wir-unser-ki-betriebssystem-aufgebaut-haben</link>\n      <description>AI FIRST Podcast: Wie wir unser KI-Betriebssystem aufgebaut haben</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-wir-unser-ki-betriebssystem-aufgebaut-haben</guid>\n      <pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Warum KI kein Tool und auch kein Mitarbeiter ist</title>\n      <link>https://ai-first.ai/podcast/warum-ki-kein-tool-und-auch-kein-mitarbeiter-ist</link>\n      <description>AI FIRST Podcast: Warum KI kein Tool und auch kein Mitarbeiter ist</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/warum-ki-kein-tool-und-auch-kein-mitarbeiter-ist</guid>\n      <pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Programm bei BASF: Breitensport und Spitzensport</title>\n      <link>https://ai-first.ai/podcast/ki-programm-bei-basf-breitensport-und-spitzensport-mit-marcus-pospiech</link>\n      <description>KI-Programm bei BASF: Breitensport und Spitzensport – mit Marcus Pospiech</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-programm-bei-basf-breitensport-und-spitzensport-mit-marcus-pospiech</guid>\n      <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Von der Geschäftsstelle bis zum Trainingsplatz: KI-Transformation beim VfL Wolfsburg</title>\n      <link>https://ai-first.ai/podcast/ki-im-profifussball</link>\n      <description>Von der Geschäftsstelle bis zum Trainingsplatz: KI-Transformation beim VfL Wolfsburg – mit Claudio Demmer</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-im-profifussball</guid>\n      <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie du ein CEO-Office aus KI-Agenten aufbaust</title>\n      <link>https://ai-first.ai/podcast/wie-du-ein-ceo-office-aus-ki-agenten-aufbaust</link>\n      <description>Wie du ein CEO-Office aus KI-Agenten aufbaust – mit Jonas Diezun</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-du-ein-ceo-office-aus-ki-agenten-aufbaust</guid>\n      <pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Die unbequeme Wahrheit über Datenprojekte in der Industrie</title>\n      <link>https://ai-first.ai/podcast/arbeit-als-global-data-architect</link>\n      <description>Die unbequeme Wahrheit über Datenprojekte in der Industrie – mit Christian Krug</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/arbeit-als-global-data-architect</guid>\n      <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI for the rest of us: Wie KI endlich für alle zugänglich wird</title>\n      <link>https://ai-first.ai/podcast/ai-for-the-rest-of-us-wie-ki-endlich-fuer-alle-zugaenglich-wird</link>\n      <description>AI for the rest of us: Wie KI endlich für alle zugänglich wird – mit Martin Böhringer</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ai-for-the-rest-of-us-wie-ki-endlich-fuer-alle-zugaenglich-wird</guid>\n      <pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Transformation bei REWE: Was funktioniert wirklich?</title>\n      <link>https://ai-first.ai/podcast/ki-transformation-bei-rewe-was-funktioniert-wirklich</link>\n      <description>KI-Transformation bei REWE: Was funktioniert wirklich? – mit Henrike Alfeis</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-transformation-bei-rewe-was-funktioniert-wirklich</guid>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie man ein AI-First Startup aufbaut</title>\n      <link>https://ai-first.ai/podcast/wie-man-ein-ai-first-startup-aufbaut</link>\n      <description>Wie man ein AI-First Startup aufbaut – mit Benedikt Böringer</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-man-ein-ai-first-startup-aufbaut</guid>\n      <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie man eine Daten- und KI-Organisation als Profit Center aufbaut</title>\n      <link>https://ai-first.ai/podcast/wie-man-eine-daten-und-ki-organisation-als-profit-center-aufbaut</link>\n      <description>Wie man eine Daten- und KI-Organisation als Profit Center aufbaut – mit Romina Medici</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-man-eine-daten-und-ki-organisation-als-profit-center-aufbaut</guid>\n      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Governance bei Payback: Wie Legal und Data gemeinsam den Weg für KI freimachen</title>\n      <link>https://ai-first.ai/podcast/ai-governance-bei-payback-wie-legal-und-data-gemeinsam-den-weg-fuer-ki-freimachen</link>\n      <description>AI Governance bei Payback: Wie Legal und Data gemeinsam den Weg für KI freimachen – mit Franziska Kripp</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ai-governance-bei-payback-wie-legal-und-data-gemeinsam-den-weg-fuer-ki-freimachen</guid>\n      <pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Prognosen 2026</title>\n      <link>https://ai-first.ai/podcast/ki-prognosen-2026</link>\n      <description>KI-Prognosen 2026 – mit Christoph Pacher</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-prognosen-2026</guid>\n      <pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Venture Clienting trifft KI: Wie Eberspächer mit Startup-Mentalität die Transformation beschleunigt</title>\n      <link>https://ai-first.ai/podcast/venture-clienting-trifft-ki-wie-eberspaecher-mit-startup-mentalitaet-die-transformation-beschleunigt</link>\n      <description>Venture Clienting trifft KI: Wie Eberspächer mit Startup-Mentalität die Transformation beschleunigt – mit Florian Dürr</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/venture-clienting-trifft-ki-wie-eberspaecher-mit-startup-mentalitaet-die-transformation-beschleunigt</guid>\n      <pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI in der Kreativbranche: Wie JUSTADDSUGAR mit eigenem Tool die Agenturwelt neu denkt</title>\n      <link>https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-justaddsugar-mit-eigenem-tool-die-agenturwelt-neu-denkt</link>\n      <description>AI in der Kreativbranche: Wie JUSTADDSUGAR mit eigenem Tool die Agenturwelt neu denkt – mit Jasper Börnsen</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-justaddsugar-mit-eigenem-tool-die-agenturwelt-neu-denkt</guid>\n      <pubDate>Fri, 19 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unser KI-Tool Stack für maximale Produktivität</title>\n      <link>https://ai-first.ai/podcast/unser-ki-tool-stack-fuer-maximale-produktivitaet</link>\n      <description>AI FIRST Podcast: Unser KI-Tool Stack für maximale Produktivität</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/unser-ki-tool-stack-fuer-maximale-produktivitaet</guid>\n      <pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>13 Jahre in der Daten- und KI-Welt: Was funktioniert wirklich?</title>\n      <link>https://ai-first.ai/podcast/13-jahre-in-der-daten-und-ki-welt-was-funktioniert-wirklich</link>\n      <description>13 Jahre in der Daten- und KI-Welt: Was funktioniert wirklich? – mit Alexander Thamm</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/13-jahre-in-der-daten-und-ki-welt-was-funktioniert-wirklich</guid>\n      <pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>SIGNAL IDUNA: Einblicke in den KI-Rollout auf 10.000 Mitarbeiter und die Skalierung von KI-Agenten</title>\n      <link>https://ai-first.ai/podcast/signal-iduna-einblicke-in-den-ki-rollout-auf-10-000-mitarbeiter-und-die-skalierung-von-ki-agenten</link>\n      <description>SIGNAL IDUNA: Einblicke in den KI-Rollout auf 10.000 Mitarbeiter und die Skalierung von KI-Agenten – mit Patrick Darby</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/signal-iduna-einblicke-in-den-ki-rollout-auf-10-000-mitarbeiter-und-die-skalierung-von-ki-agenten</guid>\n      <pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie komme ich auf Platz 1 in den KI-Suchergebnissen?</title>\n      <link>https://ai-first.ai/podcast/wie-komme-ich-auf-platz-1-in-den-ki-suchergebnissen</link>\n      <description>Wie komme ich auf Platz 1 in den KI-Suchergebnissen? – mit Niklas Buschner</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-komme-ich-auf-platz-1-in-den-ki-suchergebnissen</guid>\n      <pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie TUI KI in 400+ Hotels &amp; Resorts für bessere Gasterlebnisse und Nachhaltigkeit implementiert</title>\n      <link>https://ai-first.ai/podcast/wie-tui-ki-in-400-hotels-resorts-fuer-bessere-gasterlebnisse-und-nachhaltigkeit-implementiert</link>\n      <description>Wie TUI KI in 400+ Hotels &amp; Resorts für bessere Gasterlebnisse und Nachhaltigkeit implementiert – mit Jano Martin</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-tui-ki-in-400-hotels-resorts-fuer-bessere-gasterlebnisse-und-nachhaltigkeit-implementiert</guid>\n      <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie wir AI FIRST mit KI aufgebaut haben</title>\n      <link>https://ai-first.ai/podcast/wie-wir-ai-first-mit-ki-aufgebaut-haben</link>\n      <description>AI FIRST Podcast: Wie wir AI FIRST mit KI aufgebaut haben</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-wir-ai-first-mit-ki-aufgebaut-haben</guid>\n      <pubDate>Fri, 07 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie sollten Mensch und KI zusammenarbeiten?</title>\n      <link>https://ai-first.ai/podcast/wie-sollten-mensch-und-ki-zusammenarbeiten</link>\n      <description>Wie sollten Mensch und KI zusammenarbeiten? – mit Elisabeth L'Orange</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-sollten-mensch-und-ki-zusammenarbeiten</guid>\n      <pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie die DKB einen Digital Agent entwickelt, der einen Großteil aller Support-Anfragen löst</title>\n      <link>https://ai-first.ai/podcast/wie-die-dkb-einen-digital-agent-entwickelt-der-einen-grossteil-aller-support-anfragen-loest</link>\n      <description>Wie die DKB einen Digital Agent entwickelt, der einen Großteil aller Support-Anfragen löst – mit Sascha Dewald</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-die-dkb-einen-digital-agent-entwickelt-der-einen-grossteil-aller-support-anfragen-loest</guid>\n      <pubDate>Fri, 24 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie setzt HORNBACH KI im Content Marketing ein?</title>\n      <link>https://ai-first.ai/podcast/wie-setzt-hornbach-ki-im-content-marketing-ein</link>\n      <description>Wie setzt HORNBACH KI im Content Marketing ein? – mit Madlen Barke</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-setzt-hornbach-ki-im-content-marketing-ein</guid>\n      <pubDate>Fri, 17 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Hackathons: Wie die Otto Group ihre KI-Reise beschleunigt</title>\n      <link>https://ai-first.ai/podcast/ki-hackathons-wie-die-otto-group-ihre-ki-reise-beschleunigt</link>\n      <description>KI-Hackathons: Wie die Otto Group ihre KI-Reise beschleunigt – mit Anja Körber</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-hackathons-wie-die-otto-group-ihre-ki-reise-beschleunigt</guid>\n      <pubDate>Fri, 10 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bild-KI: Wo liegen die größten Potenziale und wo gibt es Grenzen?</title>\n      <link>https://ai-first.ai/podcast/bild-ki-wo-liegen-die-groessten-potenziale-und-wo-gibt-es-grenzen</link>\n      <description>Bild-KI: Wo liegen die größten Potenziale und wo gibt es Grenzen? – mit Georg Neumann</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/bild-ki-wo-liegen-die-groessten-potenziale-und-wo-gibt-es-grenzen</guid>\n      <pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Erfolgsprinzipien für KI-Integration in Produkten und Prozessen</title>\n      <link>https://ai-first.ai/podcast/erfolgsprinzipien-fuer-ki-integration-in-produkten-und-prozessen</link>\n      <description>Erfolgsprinzipien für KI-Integration in Produkten und Prozessen – mit Julian Geiger</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/erfolgsprinzipien-fuer-ki-integration-in-produkten-und-prozessen</guid>\n      <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie gelingt unternehmensweite KI-Adoption?</title>\n      <link>https://ai-first.ai/podcast/wie-gelingt-unternehmensweite-ki-adoption</link>\n      <description>Wie gelingt unternehmensweite KI-Adoption? – mit Paul Töws</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-gelingt-unternehmensweite-ki-adoption</guid>\n      <pubDate>Fri, 19 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie baut man ein AI-First Unternehmen auf?</title>\n      <link>https://ai-first.ai/podcast/wie-baut-man-ein-ai-first-unternehmen-auf</link>\n      <description>Wie baut man ein AI-First Unternehmen auf? – mit Daniel Khachab</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-baut-man-ein-ai-first-unternehmen-auf</guid>\n      <pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie funktioniert Hyperpersonalisierung?</title>\n      <link>https://ai-first.ai/podcast/wie-funktioniert-hyperpersonalisierung</link>\n      <description>Wie funktioniert Hyperpersonalisierung? – mit Florian Johannsen</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-funktioniert-hyperpersonalisierung</guid>\n      <pubDate>Fri, 05 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Was passiert mit einer Kommunikationsagentur durch Large Language Models?</title>\n      <link>https://ai-first.ai/podcast/was-passiert-mit-einer-kommunikationsagentur-durch-large-language-models</link>\n      <description>Was passiert mit einer Kommunikationsagentur durch Large Language Models? – mit Markus Neckar</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/was-passiert-mit-einer-kommunikationsagentur-durch-large-language-models</guid>\n      <pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie balanciert man KI-Demokratisierung mit strategischem Impact?</title>\n      <link>https://ai-first.ai/podcast/wie-balanciert-man-ki-demokratisierung-mit-strategischem-impact</link>\n      <description>Wie balanciert man KI-Demokratisierung mit strategischem Impact? – mit Ludwig Pannach</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-balanciert-man-ki-demokratisierung-mit-strategischem-impact</guid>\n      <pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie funktioniert KI-Governance in einer Bank?</title>\n      <link>https://ai-first.ai/podcast/wie-funktioniert-ki-governance-in-einer-bank</link>\n      <description>Wie funktioniert KI-Governance in einer Bank? – mit Julia Sterling</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-funktioniert-ki-governance-in-einer-bank</guid>\n      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Was kommt nach KI-Chatbots?</title>\n      <link>https://ai-first.ai/podcast/was-kommt-nach-ki-chatbots</link>\n      <description>Was kommt nach KI-Chatbots? – mit Florian Baader</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/was-kommt-nach-ki-chatbots</guid>\n      <pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Welche Medienunternehmen überleben die KI-Disruption?</title>\n      <link>https://ai-first.ai/podcast/welche-medienunternehmen-ueberleben-die-ki-disruption</link>\n      <description>Welche Medienunternehmen überleben die KI-Disruption? – mit Marco Parrillo</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/welche-medienunternehmen-ueberleben-die-ki-disruption</guid>\n      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie sieht deine KI-Nutzung aus?</title>\n      <link>https://ai-first.ai/podcast/wie-sieht-deine-ki-nutzung-aus</link>\n      <description>Wie sieht deine KI-Nutzung aus? – mit Elisabeth L'Orange</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-sieht-deine-ki-nutzung-aus</guid>\n      <pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie sieht die KI-Roadmap 2030 aus?</title>\n      <link>https://ai-first.ai/podcast/wie-sieht-die-ki-roadmap-2030-aus</link>\n      <description>Wie sieht die KI-Roadmap 2030 aus? – mit Sven Gabor Janszky</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-sieht-die-ki-roadmap-2030-aus</guid>\n      <pubDate>Fri, 18 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie Rossmann Prompt Engineers einsetzt und KI Use Cases umsetzt</title>\n      <link>https://ai-first.ai/podcast/wie-rossmann-prompt-engineers-einsetzt-und-ki-use-cases-umsetzt</link>\n      <description>Wie Rossmann Prompt Engineers einsetzt und KI Use Cases umsetzt – mit Lena Eckroth</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-rossmann-prompt-engineers-einsetzt-und-ki-use-cases-umsetzt</guid>\n      <pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie funktioniert KI in einer Stadtverwaltung? Einblicke in München's KI-Strategie</title>\n      <link>https://ai-first.ai/podcast/wie-funktioniert-ki-in-einer-stadtverwaltung-einblicke-in-muenchen-s-ki-strategie</link>\n      <description>Wie funktioniert KI in einer Stadtverwaltung? Einblicke in München's KI-Strategie – mit Dr. Nina Böhm</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-funktioniert-ki-in-einer-stadtverwaltung-einblicke-in-muenchen-s-ki-strategie</guid>\n      <pubDate>Fri, 04 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Vom 1. Leuchtturmprojekt zum KI-Kompetenzzentrum: Nachhaltige KI-Wertschöpfung bei Dachser</title>\n      <link>https://ai-first.ai/podcast/vom-1-leuchtturmprojekt-zum-ki-kompetenzzentrum-nachhaltige-ki-wertschoepfung-bei-dachser</link>\n      <description>Vom 1. Leuchtturmprojekt zum KI-Kompetenzzentrum: Nachhaltige KI-Wertschöpfung bei Dachser – mit Jürgen Sakry</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/vom-1-leuchtturmprojekt-zum-ki-kompetenzzentrum-nachhaltige-ki-wertschoepfung-bei-dachser</guid>\n      <pubDate>Fri, 27 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generative KI trifft auf Automobilentwicklung: Die KI-Reise der IAV</title>\n      <link>https://ai-first.ai/podcast/generative-ki-trifft-auf-automobilentwicklung-die-ki-reise-der-iav</link>\n      <description>Generative KI trifft auf Automobilentwicklung: Die KI-Reise der IAV – mit Michael Reichel</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/generative-ki-trifft-auf-automobilentwicklung-die-ki-reise-der-iav</guid>\n      <pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Human-Centered AI im deutschen Maschinenbau bei W&amp;H</title>\n      <link>https://ai-first.ai/podcast/human-centered-ai-im-deutschen-maschinenbau-bei-w-h</link>\n      <description>Human-Centered AI im deutschen Maschinenbau bei W&amp;H – mit Jürgen Brinkmann</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/human-centered-ai-im-deutschen-maschinenbau-bei-w-h</guid>\n      <pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Zentral befähigen, dezentral umsetzen: Das hybride KI-Transformationsmodell von Breuninger</title>\n      <link>https://ai-first.ai/podcast/zentral-befaehigen-dezentral-umsetzen-das-hybride-ki-transformationsmodell-von-breuninger</link>\n      <description>Zentral befähigen, dezentral umsetzen: Das hybride KI-Transformationsmodell von Breuninger – mit Frank Postel</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/zentral-befaehigen-dezentral-umsetzen-das-hybride-ki-transformationsmodell-von-breuninger</guid>\n      <pubDate>Fri, 06 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Demokratisierung: Wie Schäfer Shop 500 Mitarbeiter zu KI-Anwendern macht</title>\n      <link>https://ai-first.ai/podcast/ki-demokratisierung-wie-schaefer-shop-500-mitarbeiter-zu-ki-anwendern-macht</link>\n      <description>KI-Demokratisierung: Wie Schäfer Shop 500 Mitarbeiter zu KI-Anwendern macht – mit Felix Jochmus-Stöcke</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-demokratisierung-wie-schaefer-shop-500-mitarbeiter-zu-ki-anwendern-macht</guid>\n      <pubDate>Fri, 30 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie baut man eine Daten- und KI-Organisation auf? Der Anti-Hype Blueprint</title>\n      <link>https://ai-first.ai/podcast/wie-baut-man-eine-daten-und-ki-organisation-auf-der-anti-hype-blueprint</link>\n      <description>Wie baut man eine Daten- und KI-Organisation auf? Der Anti-Hype Blueprint – mit Claudia Pohlink</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-baut-man-eine-daten-und-ki-organisation-auf-der-anti-hype-blueprint</guid>\n      <pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>„KI ist kein Werkzeug, sondern ein Kollege“ – Wie Covestro das Zusammenspiel von Mensch und Maschine neu definiert</title>\n      <link>https://ai-first.ai/podcast/ki-ist-kein-werkzeug-sondern-ein-kollege-wie-covestro-das-zusammenspiel-von-mensch-und-maschine-neu-definiert</link>\n      <description>„KI ist kein Werkzeug, sondern ein Kollege“ – Wie Covestro das Zusammenspiel von Mensch und Maschine neu definiert – mit Nils Janus</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-ist-kein-werkzeug-sondern-ein-kollege-wie-covestro-das-zusammenspiel-von-mensch-und-maschine-neu-definiert</guid>\n      <pubDate>Fri, 16 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Transformation im Kundenservice: Wie KI-Agenten das Kundenerlebnis verbessern</title>\n      <link>https://ai-first.ai/podcast/ki-transformation-im-kundenservice-wie-ki-agenten-das-kundenerlebnis-verbessern</link>\n      <description>KI-Transformation im Kundenservice: Wie KI-Agenten das Kundenerlebnis verbessern – mit Malte Kosub</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-transformation-im-kundenservice-wie-ki-agenten-das-kundenerlebnis-verbessern</guid>\n      <pubDate>Fri, 09 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Transformation bei RWE: Wie ein Energieriese mit der schnellsten Technologie unserer Zeit umgeht</title>\n      <link>https://ai-first.ai/podcast/ki-transformation-bei-rwe-wie-ein-energieriese-mit-der-schnellsten-technologie-unserer-zeit-umgeht</link>\n      <description>KI-Transformation bei RWE: Wie ein Energieriese mit der schnellsten Technologie unserer Zeit umgeht – mit Dr. Max Schumm</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-transformation-bei-rwe-wie-ein-energieriese-mit-der-schnellsten-technologie-unserer-zeit-umgeht</guid>\n      <pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Das AI Adoption Playbook: Einblicke aus über 550 Kunden von Langdock</title>\n      <link>https://ai-first.ai/podcast/das-ai-adoption-playbook-einblicke-aus-ueber-550-kunden-von-langdock</link>\n      <description>Das AI Adoption Playbook: Einblicke aus über 550 Kunden von Langdock – mit Lennard Schmidt</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/das-ai-adoption-playbook-einblicke-aus-ueber-550-kunden-von-langdock</guid>\n      <pubDate>Fri, 25 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Roadmaps für Unternehmen: Wie du profitable Use Cases findest und umsetzt</title>\n      <link>https://ai-first.ai/podcast/ki-roadmaps-fuer-unternehmen-wie-du-profitable-use-cases-findest-und-umsetzt</link>\n      <description>KI-Roadmaps für Unternehmen: Wie du profitable Use Cases findest und umsetzt – mit Tobias Zwingmann</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-roadmaps-fuer-unternehmen-wie-du-profitable-use-cases-findest-und-umsetzt</guid>\n      <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Das 1. Jahr als Head of AI: Einblicke in FUNKE's KI Transformation</title>\n      <link>https://ai-first.ai/podcast/das-1-jahr-als-head-of-ai-einblicke-in-funke-s-ki-transformation</link>\n      <description>Das 1. Jahr als Head of AI: Einblicke in FUNKE's KI Transformation – mit Paul Elvers</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/das-1-jahr-als-head-of-ai-einblicke-in-funke-s-ki-transformation</guid>\n      <pubDate>Fri, 11 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Schwarze Magie in KI: Cyberangriffe, Deep Fakes und wie wir uns davor schützen können</title>\n      <link>https://ai-first.ai/podcast/schwarze-magie-in-ki-cyberangriffe-deep-fakes-und-wie-wir-uns-davor-schuetzen-koennen</link>\n      <description>Schwarze Magie in KI: Cyberangriffe, Deep Fakes und wie wir uns davor schützen können – mit Niklas Hanitsch</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/schwarze-magie-in-ki-cyberangriffe-deep-fakes-und-wie-wir-uns-davor-schuetzen-koennen</guid>\n      <pubDate>Fri, 04 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Tinkering bei Ashoka</title>\n      <link>https://ai-first.ai/podcast/ai-tinkering-bei-ashoka</link>\n      <description>AI Tinkering bei Ashoka – mit Odin Mühlenbein</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ai-tinkering-bei-ashoka</guid>\n      <pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Löst KI Anwälte ab? Einblicke in den KI-Wandel der Rechtsbranche.</title>\n      <link>https://ai-first.ai/podcast/loest-ki-anwaelte-ab-einblicke-in-den-ki-wandel-der-rechtsbranche</link>\n      <description>Löst KI Anwälte ab? Einblicke in den KI-Wandel der Rechtsbranche. – mit Viktor von Essen</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/loest-ki-anwaelte-ab-einblicke-in-den-ki-wandel-der-rechtsbranche</guid>\n      <pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI im Unternehmen: Rechtliche Fallstricke und wie man sie vermeidet</title>\n      <link>https://ai-first.ai/podcast/ki-im-unternehmen-rechtliche-fallstricke-und-wie-man-sie-vermeidet</link>\n      <description>KI im Unternehmen: Rechtliche Fallstricke und wie man sie vermeidet – mit Arno Malcher</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-im-unternehmen-rechtliche-fallstricke-und-wie-man-sie-vermeidet</guid>\n      <pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-Potenziale entfesseln, Menschen mitnehmen – der Weg zur digitalen Use Case Fabrik</title>\n      <link>https://ai-first.ai/podcast/ki-potenziale-entfesseln-menschen-mitnehmen-der-weg-zur-digitalen-use-case-fabrik</link>\n      <description>KI-Potenziale entfesseln, Menschen mitnehmen – der Weg zur digitalen Use Case Fabrik – mit Sven Bettermann</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-potenziale-entfesseln-menschen-mitnehmen-der-weg-zur-digitalen-use-case-fabrik</guid>\n      <pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Schluss mit endlosem Suchen: Wie KI das Unternehmenswissen zugänglich macht</title>\n      <link>https://ai-first.ai/podcast/schluss-mit-endlosem-suchen-wie-ki-das-unternehmenswissen-zugaenglich-macht</link>\n      <description>Schluss mit endlosem Suchen: Wie KI das Unternehmenswissen zugänglich macht – mit Jan Marquart</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/schluss-mit-endlosem-suchen-wie-ki-das-unternehmenswissen-zugaenglich-macht</guid>\n      <pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>76% tägliche Nutzung: So gelingt KI-Adoption im Mittelstand</title>\n      <link>https://ai-first.ai/podcast/76-taegliche-nutzung-so-gelingt-ki-adoption-im-mittelstand</link>\n      <description>76% tägliche Nutzung: So gelingt KI-Adoption im Mittelstand – mit Florian Grunwald</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/76-taegliche-nutzung-so-gelingt-ki-adoption-im-mittelstand</guid>\n      <pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie Otto die KI-Transformation meistert</title>\n      <link>https://ai-first.ai/podcast/wie-otto-die-ki-transformation-meistert</link>\n      <description>Wie Otto die KI-Transformation meistert – mit Dr. Frederike Fritzsche</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-otto-die-ki-transformation-meistert</guid>\n      <pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI-gestützte Bedarfsplanung bei Renfert: Ein Praxisbericht aus dem Mittelstand</title>\n      <link>https://ai-first.ai/podcast/ki-gestuetzte-bedarfsplanung-bei-renfert-ein-praxisbericht-aus-dem-mittelstand</link>\n      <description>KI-gestützte Bedarfsplanung bei Renfert: Ein Praxisbericht aus dem Mittelstand – mit Sebastian Herz</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-gestuetzte-bedarfsplanung-bei-renfert-ein-praxisbericht-aus-dem-mittelstand</guid>\n      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Die Agent Economy: Wie KI-Teams die Arbeitswelt verändern</title>\n      <link>https://ai-first.ai/podcast/die-agent-economy-wie-ki-teams-die-arbeitswelt-veraendern</link>\n      <description>Die Agent Economy: Wie KI-Teams die Arbeitswelt verändern – mit Sebastian Küpers</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/die-agent-economy-wie-ki-teams-die-arbeitswelt-veraendern</guid>\n      <pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Make AI Fun Again: 6 Learnings für produktive KI-Nutzung im Unternehmen</title>\n      <link>https://ai-first.ai/podcast/make-ai-fun-again-6-learnings-fuer-produktive-ki-nutzung-im-unternehmen</link>\n      <description>Make AI Fun Again: 6 Learnings für produktive KI-Nutzung im Unternehmen – mit Aram Azimi</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/make-ai-fun-again-6-learnings-fuer-produktive-ki-nutzung-im-unternehmen</guid>\n      <pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie BASF 110.000 Mitarbeiter fit für die Zukunft macht</title>\n      <link>https://ai-first.ai/podcast/wie-basf-110-000-mitarbeiter-fit-fuer-die-zukunft-macht</link>\n      <description>Wie BASF 110.000 Mitarbeiter fit für die Zukunft macht – mit Jasmin Weimüller</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-basf-110-000-mitarbeiter-fit-fuer-die-zukunft-macht</guid>\n      <pubDate>Fri, 17 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI Prognosen 2025</title>\n      <link>https://ai-first.ai/podcast/ki-prognosen-2025</link>\n      <description>KI Prognosen 2025 – mit Christoph Pacher</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-prognosen-2025</guid>\n      <pubDate>Fri, 10 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI im Recruiting: Von 45 auf 3 Minuten für eine Stellenanzeige mit 30% mehr Conversion</title>\n      <link>https://ai-first.ai/podcast/ki-im-recruiting-von-45-auf-3-minuten-fuer-eine-stellenanzeige-mit-30-mehr-conversion</link>\n      <description>KI im Recruiting: Von 45 auf 3 Minuten für eine Stellenanzeige mit 30% mehr Conversion – mit Shezan Kazi</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-im-recruiting-von-45-auf-3-minuten-fuer-eine-stellenanzeige-mit-30-mehr-conversion</guid>\n      <pubDate>Fri, 03 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pragmatische KI-Einführung im Mittelstand - Learnings von der LUQOM Group</title>\n      <link>https://ai-first.ai/podcast/pragmatische-ki-einfuehrung-im-mittelstand-learnings-von-der-luqom-group</link>\n      <description>Pragmatische KI-Einführung im Mittelstand - Learnings von der LUQOM Group – mit Ales Drabek</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/pragmatische-ki-einfuehrung-im-mittelstand-learnings-von-der-luqom-group</guid>\n      <pubDate>Fri, 27 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Keine KI ohne Datenstrategie: Ein Praxis-Guide für Unternehmen</title>\n      <link>https://ai-first.ai/podcast/keine-ki-ohne-datenstrategie-ein-praxis-guide-fuer-unternehmen</link>\n      <description>Keine KI ohne Datenstrategie: Ein Praxis-Guide für Unternehmen – mit Timo Buck</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/keine-ki-ohne-datenstrategie-ein-praxis-guide-fuer-unternehmen</guid>\n      <pubDate>Fri, 20 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>KI Strategie: Wie Drees &amp; Sommer eine AI-Vision entwickelt und umsetzt</title>\n      <link>https://ai-first.ai/podcast/ki-strategie-wie-drees-sommer-eine-ai-vision-entwickelt-und-umsetzt</link>\n      <description>KI Strategie: Wie Drees &amp; Sommer eine AI-Vision entwickelt und umsetzt – mit Raffaela Schneid</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ki-strategie-wie-drees-sommer-eine-ai-vision-entwickelt-und-umsetzt</guid>\n      <pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GenAI bei Bosch: Von der Idee zum konzernweiten Rollout in 18 Monaten</title>\n      <link>https://ai-first.ai/podcast/genai-bei-bosch-von-der-idee-zum-konzernweiten-rollout-in-18-monaten</link>\n      <description>GenAI bei Bosch: Von der Idee zum konzernweiten Rollout in 18 Monaten – mit Sascha Sambale</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/genai-bei-bosch-von-der-idee-zum-konzernweiten-rollout-in-18-monaten</guid>\n      <pubDate>Fri, 06 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI im Traditionsunternehmen: Wie Hochland Künstliche Intelligenz wertstiftend einsetzt</title>\n      <link>https://ai-first.ai/podcast/ai-im-traditionsunternehmen-wie-hochland-kuenstliche-intelligenz-wertstiftend-einsetzt</link>\n      <description>AI im Traditionsunternehmen: Wie Hochland Künstliche Intelligenz wertstiftend einsetzt – mit Albert Heim</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ai-im-traditionsunternehmen-wie-hochland-kuenstliche-intelligenz-wertstiftend-einsetzt</guid>\n      <pubDate>Fri, 29 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>EU AI Act entmystifiziert: Wie Unternehmen richtig mit der KI-Verordnung umgehen</title>\n      <link>https://ai-first.ai/podcast/eu-ai-act-entmystifiziert-wie-unternehmen-richtig-mit-der-ki-verordnung-umgehen</link>\n      <description>EU AI Act entmystifiziert: Wie Unternehmen richtig mit der KI-Verordnung umgehen – mit Dr. Patrick Gilroy</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/eu-ai-act-entmystifiziert-wie-unternehmen-richtig-mit-der-ki-verordnung-umgehen</guid>\n      <pubDate>Fri, 22 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Produktivität durch AI: GetYourGuide's Ansatz zur unternehmensweiten Integration</title>\n      <link>https://ai-first.ai/podcast/produktivitaet-durch-ai-getyourguide-s-ansatz-zur-unternehmensweiten-integration</link>\n      <description>Produktivität durch AI: GetYourGuide's Ansatz zur unternehmensweiten Integration – mit Mathieu Bastian</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/produktivitaet-durch-ai-getyourguide-s-ansatz-zur-unternehmensweiten-integration</guid>\n      <pubDate>Fri, 15 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie Deutschland zur KI Nation wird</title>\n      <link>https://ai-first.ai/podcast/wie-deutschland-zur-ki-nation-wird</link>\n      <description>Wie Deutschland zur KI Nation wird – mit Fabian Westerheide</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-deutschland-zur-ki-nation-wird</guid>\n      <pubDate>Fri, 08 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wie Körber ein GenAI Center of Excellence aufgebaut hat</title>\n      <link>https://ai-first.ai/podcast/wie-koerber-ein-genai-center-of-excellence-aufgebaut-hat</link>\n      <description>Wie Körber ein GenAI Center of Excellence aufgebaut hat – mit Maximilian Henschel</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/wie-koerber-ein-genai-center-of-excellence-aufgebaut-hat</guid>\n      <pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI in der Kreativbranche: Wie man Effizienz und Kreativität zusammenbringt</title>\n      <link>https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-man-effizienz-und-kreativitaet-zusammenbringt</link>\n      <description>AI in der Kreativbranche: Wie man Effizienz und Kreativität zusammenbringt – mit Jasper Börnsen</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-man-effizienz-und-kreativitaet-zusammenbringt</guid>\n      <pubDate>Fri, 25 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ogGPT trifft Großkonzern: Wie Otto 30.000 Mitarbeiter AI-fit macht</title>\n      <link>https://ai-first.ai/podcast/oggpt-trifft-grosskonzern-wie-otto-30-000-mitarbeiter-ai-fit-macht</link>\n      <description>ogGPT trifft Großkonzern: Wie Otto 30.000 Mitarbeiter AI-fit macht – mit Florian Leuerer</description>\n      <guid isPermaLink=\"false\">https://ai-first.ai/podcast/oggpt-trifft-grosskonzern-wie-otto-30-000-mitarbeiter-ai-fit-macht</guid>\n      <pubDate>Fri, 18 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_anthropic_changelog_claude_code.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Claude Code Changelog</title>\n    <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md</link>\n    <description>Claude Code Changelog</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_changelog_claude_code.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://www.anthropic.com/images/icons/apple-touch-icon.png</url>\n      <title>Claude Code Changelog</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Sat, 18 Apr 2026 14:13:32 +0000</lastBuildDate>\n    <item><title>[NOTICE] This feed is no longer maintained</title><description>Claude Code now publishes an official RSS feed. This scraper is retired; the feed XML will be deleted in ~90 days.\n\nRecommended alternative: https://code.claude.com/docs/en/changelog/rss.xml</description><guid isPermaLink=\"false\">deprecation-notice-anthropic_changelog_claude_code</guid><pubDate>Sat, 18 Apr 2026 14:24:42 +0000</pubDate><link>https://code.claude.com/docs/en/changelog/rss.xml</link></item><item>\n      <title>v2.1.114</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21114</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed a crash in the permission dialog when an agent teams teammate requested tool permission&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21114</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.113</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21113</link>\n      <description>&lt;ul&gt;&lt;li&gt;Changed the CLI to spawn a native Claude Code binary (via a per-platform optional dependency) instead of bundled JavaScript&lt;/li&gt;&lt;li&gt;Added `sandbox.network.deniedDomains` setting to block specific domains even when a broader `allowedDomains` wildcard would otherwise permit them&lt;/li&gt;&lt;li&gt;Fullscreen mode: Shift+↑/↓ now scrolls the viewport when extending a selection past the visible edge&lt;/li&gt;&lt;li&gt;`Ctrl+A` and `Ctrl+E` now move to the start/end of the current logical line in multiline input, matching readline behavior&lt;/li&gt;&lt;li&gt;Windows: `Ctrl+Backspace` now deletes the previous word&lt;/li&gt;&lt;li&gt;Long URLs in responses and bash output stay clickable when they wrap across lines (in terminals with OSC 8 hyperlinks)&lt;/li&gt;&lt;li&gt;Improved `/loop`: pressing Esc now cancels pending wakeups, and wakeups display as \"Claude resuming /loop wakeup\" for clarity&lt;/li&gt;&lt;li&gt;`/extra-usage` now works from Remote Control (mobile/web) clients&lt;/li&gt;&lt;li&gt;Remote Control clients can now query `@`-file autocomplete suggestions&lt;/li&gt;&lt;li&gt;Improved `/ultrareview`: faster launch with parallelized checks, diffstat in the launch dialog, and animated launching state&lt;/li&gt;&lt;li&gt;Subagents that stall mid-stream now fail with a clear error after 10 minutes instead of hanging silently&lt;/li&gt;&lt;li&gt;Bash tool: multi-line commands whose first line is a comment now show the full command in the transcript, closing a UI-spoofing vector&lt;/li&gt;&lt;li&gt;Running `cd &lt;current-directory&gt; &amp;&amp; git …` no longer triggers a permission prompt when the `cd` is a no-op&lt;/li&gt;&lt;li&gt;Security: on macOS, `/private/{etc,var,tmp,home}` paths are now treated as dangerous removal targets under `Bash(rm:*)` allow rules&lt;/li&gt;&lt;li&gt;Security: Bash deny rules now match commands wrapped in `env`/`sudo`/`watch`/`ionice`/`setsid` and similar exec wrappers&lt;/li&gt;&lt;li&gt;Security: `Bash(find:*)` allow rules no longer auto-approve `find -exec`/`-delete`&lt;/li&gt;&lt;li&gt;Fixed MCP concurrent-call timeout handling where a message for one tool call could silently disarm another call's watchdog&lt;/li&gt;&lt;li&gt;Fixed Cmd-backspace / `Ctrl+U` to once again delete from the cursor to the start of the line&lt;/li&gt;&lt;li&gt;Fixed markdown tables breaking when a cell contains an inline code span with a pipe character&lt;/li&gt;&lt;li&gt;Fixed session recap auto-firing while composing unsent text in the prompt&lt;/li&gt;&lt;li&gt;Fixed `/copy` \"Full response\" not aligning markdown table columns for pasting into GitHub, Notion, or Slack&lt;/li&gt;&lt;li&gt;Fixed messages typed while viewing a running subagent being hidden from its transcript and misattributed to the parent AI&lt;/li&gt;&lt;li&gt;Fixed Bash `dangerouslyDisableSandbox` running commands outside the sandbox without a permission prompt&lt;/li&gt;&lt;li&gt;Fixed `/effort auto` confirmation — now says \"Effort level set to max\" to match the status bar label&lt;/li&gt;&lt;li&gt;Fixed the \"copied N chars\" toast overcounting emoji and other multi-code-unit characters&lt;/li&gt;&lt;li&gt;Fixed `/insights` crashing with `EBUSY` on Windows&lt;/li&gt;&lt;li&gt;Fixed exit confirmation dialog mislabeling one-shot scheduled tasks as recurring — now shows a countdown&lt;/li&gt;&lt;li&gt;Fixed slash/@ completion menu not sitting flush against the prompt border in fullscreen mode&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_EXTRA_BODY` `output_config.effort` causing 400 errors on subagent calls to models that don't support effort and on Vertex AI&lt;/li&gt;&lt;li&gt;Fixed prompt cursor disappearing when `NO_COLOR` is set&lt;/li&gt;&lt;li&gt;Fixed `ToolSearch` ranking so pasted MCP tool names surface the actual tool instead of description-matching siblings&lt;/li&gt;&lt;li&gt;Fixed compacting a resumed long-context session failing with \"Extra usage is required for long context requests\"&lt;/li&gt;&lt;li&gt;Fixed `plugin install` succeeding when a dependency version conflicts with an already-installed plugin — now reports `range-conflict`&lt;/li&gt;&lt;li&gt;Fixed \"Refine with Ultraplan\" not showing the remote session URL in the transcript&lt;/li&gt;&lt;li&gt;Fixed SDK image content blocks that fail to process crashing the session — now degrade to a text placeholder&lt;/li&gt;&lt;li&gt;Fixed Remote Control sessions not streaming subagent transcripts&lt;/li&gt;&lt;li&gt;Fixed Remote Control sessions not being archived when Claude Code exits&lt;/li&gt;&lt;li&gt;Fixed `thinking.type.enabled is not supported` 400 error when using Opus 4.7 via a Bedrock Application Inference Profile ARN&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21113</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.112</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21112</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed \"claude-opus-4-7 is temporarily unavailable\" for auto mode&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21112</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.111</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21111</link>\n      <description>&lt;ul&gt;&lt;li&gt;Claude Opus 4.7 xhigh is now available! Use /effort to tune speed vs. intelligence&lt;/li&gt;&lt;li&gt;Auto mode is now available for Max subscribers when using Opus 4.7&lt;/li&gt;&lt;li&gt;Added `xhigh` effort level for Opus 4.7, sitting between `high` and `max`. Available via `/effort`, `--effort`, and the model picker; other models fall back to `high`&lt;/li&gt;&lt;li&gt;`/effort` now opens an interactive slider when called without arguments, with arrow-key navigation between levels and Enter to confirm&lt;/li&gt;&lt;li&gt;Added \"Auto (match terminal)\" theme option that matches your terminal's dark/light mode — select it from `/theme`&lt;/li&gt;&lt;li&gt;Added `/less-permission-prompts` skill — scans transcripts for common read-only Bash and MCP tool calls and proposes a prioritized allowlist for `.claude/settings.json`&lt;/li&gt;&lt;li&gt;Added `/ultrareview` for running comprehensive code review in the cloud using parallel multi-agent analysis and critique — invoke with no arguments to review your current branch, or `/ultrareview &lt;PR#&gt;` to fetch and review a specific GitHub PR&lt;/li&gt;&lt;li&gt;Auto mode no longer requires `--enable-auto-mode`&lt;/li&gt;&lt;li&gt;Windows: PowerShell tool is progressively rolling out. Opt in or out with `CLAUDE_CODE_USE_POWERSHELL_TOOL`. On Linux and macOS, enable with `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` (requires `pwsh` on PATH)&lt;/li&gt;&lt;li&gt;Read-only bash commands with glob patterns (e.g. `ls *.ts`) and commands starting with `cd &lt;project-dir&gt; &amp;&amp;` no longer trigger a permission prompt&lt;/li&gt;&lt;li&gt;Suggest the closest matching subcommand when `claude &lt;word&gt;` is invoked with a near-miss typo (e.g. `claude udpate` → \"Did you mean `claude update`?\")&lt;/li&gt;&lt;li&gt;Plan files are now named after your prompt (e.g. `fix-auth-race-snug-otter.md`) instead of purely random words&lt;/li&gt;&lt;li&gt;Improved `/setup-vertex` and `/setup-bedrock` to show the actual `settings.json` path when `CLAUDE_CONFIG_DIR` is set, seed model candidates from existing pins on re-run, and offer a \"with 1M context\" option for supported models&lt;/li&gt;&lt;li&gt;`/skills` menu now supports sorting by estimated token count — press `t` to toggle&lt;/li&gt;&lt;li&gt;`Ctrl+U` now clears the entire input buffer (previously: delete to start of line); press `Ctrl+Y` to restore&lt;/li&gt;&lt;li&gt;`Ctrl+L` now forces a full screen redraw in addition to clearing the prompt input&lt;/li&gt;&lt;li&gt;Transcript view footer now shows `[` (dump to scrollback) and `v` (open in editor) shortcuts&lt;/li&gt;&lt;li&gt;The \"+N lines\" marker for truncated long pastes is now a full-width rule for easier scanning&lt;/li&gt;&lt;li&gt;Headless `--output-format stream-json` now includes `plugin_errors` on the init event when plugins are demoted for unsatisfied dependencies&lt;/li&gt;&lt;li&gt;Added `OTEL_LOG_RAW_API_BODIES` environment variable to emit full API request and response bodies as OpenTelemetry log events for debugging&lt;/li&gt;&lt;li&gt;Suppressed spurious decompression, network, and transient error messages that could appear in the TUI during normal operation&lt;/li&gt;&lt;li&gt;Reverted the v2.1.110 cap on non-streaming fallback retries — it traded long waits for more outright failures during API overload&lt;/li&gt;&lt;li&gt;Fixed terminal display tearing (random characters, drifting input) in iTerm2 + tmux setups when terminal notifications are sent&lt;/li&gt;&lt;li&gt;Fixed `@` file suggestions re-scanning the entire project on every turn in non-git working directories, and showing only config files in freshly-initialized git repos with no tracked files&lt;/li&gt;&lt;li&gt;Fixed LSP diagnostics from before an edit appearing after it, causing the model to re-read files it just edited&lt;/li&gt;&lt;li&gt;Fixed tab-completing `/resume` immediately resuming an arbitrary titled session instead of showing the session picker&lt;/li&gt;&lt;li&gt;Fixed `/context` grid rendering with extra blank lines between rows&lt;/li&gt;&lt;li&gt;Fixed `/clear` dropping the session name set by `/rename`, causing statusline output to lose `session_name`&lt;/li&gt;&lt;li&gt;Improved plugin error handling: dependency errors now distinguish conflicting, invalid, and overly complex version requirements; fixed stale resolved versions after `plugin update`; `plugin install` now recovers from interrupted prior installs&lt;/li&gt;&lt;li&gt;Fixed Claude calling a non-existent `commit` skill and showing \"Unknown skill: commit\" for users without a custom `/commit` command&lt;/li&gt;&lt;li&gt;Fixed 429 rate-limit errors on Bedrock/Vertex/Foundry referencing status.claude.com (it only covers Anthropic-operated providers)&lt;/li&gt;&lt;li&gt;Fixed feedback surveys appearing back-to-back after dismissing one&lt;/li&gt;&lt;li&gt;Fixed bare URLs in bash/PowerShell/MCP tool output being unclickable when the terminal wraps them across lines&lt;/li&gt;&lt;li&gt;Windows: `CLAUDE_ENV_FILE` and SessionStart hook environment files now apply (previously a no-op)&lt;/li&gt;&lt;li&gt;Windows: permission rules with drive-letter paths are now correctly root-anchored, and paths differing only by drive-letter case are recognized as the same path&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21111</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.110</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21110</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `/tui` command and `tui` setting — run `/tui fullscreen` to switch to flicker-free rendering in the same conversation&lt;/li&gt;&lt;li&gt;Added push notification tool — Claude can send mobile push notifications when Remote Control and \"Push when Claude decides\" config are enabled&lt;/li&gt;&lt;li&gt;Changed `Ctrl+O` to toggle between normal and verbose transcript only; focus view is now toggled separately with the new `/focus` command&lt;/li&gt;&lt;li&gt;Added `autoScrollEnabled` config to disable conversation auto-scroll in fullscreen mode&lt;/li&gt;&lt;li&gt;Added option to show Claude's last response as commented context in the `Ctrl+G` external editor (enable via `/config`)&lt;/li&gt;&lt;li&gt;Improved `/plugin` Installed tab — items needing attention and favorites appear at the top, disabled items are hidden behind a fold, and `f` favorites the selected item&lt;/li&gt;&lt;li&gt;Improved `/doctor` to warn when an MCP server is defined in multiple config scopes with different endpoints&lt;/li&gt;&lt;li&gt;`--resume`/`--continue` now resurrects unexpired scheduled tasks&lt;/li&gt;&lt;li&gt;`/context`, `/exit`, and `/reload-plugins` now work from Remote Control (mobile/web) clients&lt;/li&gt;&lt;li&gt;Write tool now informs the model when you edit the proposed content in the IDE diff before accepting&lt;/li&gt;&lt;li&gt;Bash tool now enforces the documented maximum timeout instead of accepting arbitrarily large values&lt;/li&gt;&lt;li&gt;SDK/headless sessions now read `TRACEPARENT`/`TRACESTATE` from the environment for distributed trace linking&lt;/li&gt;&lt;li&gt;Session recap is now enabled for users with telemetry disabled (Bedrock, Vertex, Foundry, `DISABLE_TELEMETRY`). Opt out via `/config` or `CLAUDE_CODE_ENABLE_AWAY_SUMMARY=0`.&lt;/li&gt;&lt;li&gt;Fixed MCP tool calls hanging indefinitely when the server connection drops mid-response on SSE/HTTP transports&lt;/li&gt;&lt;li&gt;Fixed non-streaming fallback retries causing multi-minute hangs when the API is unreachable&lt;/li&gt;&lt;li&gt;Fixed session recap, local slash-command output, and other system status lines not appearing in focus mode&lt;/li&gt;&lt;li&gt;Fixed high CPU usage in fullscreen when text is selected while a tool is running&lt;/li&gt;&lt;li&gt;Fixed plugin install not honoring dependencies declared in `plugin.json` when the marketplace entry omits them; `/plugin` install now lists auto-installed dependencies&lt;/li&gt;&lt;li&gt;Fixed skills with `disable-model-invocation: true` failing when invoked via `/&lt;skill&gt;` mid-message&lt;/li&gt;&lt;li&gt;Fixed `--resume` sometimes showing the first prompt instead of the `/rename` name for sessions still running or exited uncleanly&lt;/li&gt;&lt;li&gt;Fixed queued messages briefly appearing twice during multi-tool-call turns&lt;/li&gt;&lt;li&gt;Fixed session cleanup not removing the full session directory including subagent transcripts&lt;/li&gt;&lt;li&gt;Fixed dropped keystrokes after the CLI relaunches (e.g. `/tui`, provider setup wizards)&lt;/li&gt;&lt;li&gt;Fixed garbled startup rendering in macOS Terminal.app and other terminals that don't support synchronized output&lt;/li&gt;&lt;li&gt;Hardened \"Open in editor\" actions against command injection from untrusted filenames&lt;/li&gt;&lt;li&gt;Fixed `PermissionRequest` hooks returning `updatedInput` not being re-checked against `permissions.deny` rules; `setMode:'bypassPermissions'` updates now respect `disableBypassPermissionsMode`&lt;/li&gt;&lt;li&gt;Fixed `PreToolUse` hook `additionalContext` being dropped when the tool call fails&lt;/li&gt;&lt;li&gt;Fixed stdio MCP servers that print stray non-JSON lines to stdout being disconnected on the first stray line (regression in 2.1.105)&lt;/li&gt;&lt;li&gt;Fixed headless/SDK session auto-title firing an extra Haiku request when `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` or `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` is set&lt;/li&gt;&lt;li&gt;Fixed potential excessive memory allocation when piped (non-TTY) Ink output contains a single very wide line&lt;/li&gt;&lt;li&gt;Fixed `/skills` menu not scrolling when the list overflows the modal in fullscreen mode&lt;/li&gt;&lt;li&gt;Fixed Remote Control sessions showing a generic error instead of prompting for re-login when the session is too old&lt;/li&gt;&lt;li&gt;Fixed Remote Control session renames from claude.ai not persisting the title to the local CLI session&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21110</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.109</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21109</link>\n      <description>&lt;ul&gt;&lt;li&gt;Improved the extended-thinking indicator with a rotating progress hint&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21109</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.108</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21108</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `ENABLE_PROMPT_CACHING_1H` env var to opt into 1-hour prompt cache TTL on API key, Bedrock, Vertex, and Foundry (`ENABLE_PROMPT_CACHING_1H_BEDROCK` is deprecated but still honored), and `FORCE_PROMPT_CACHING_5M` to force 5-minute TTL&lt;/li&gt;&lt;li&gt;Added recap feature to provide context when returning to a session, configurable in `/config` and manually invocable with `/recap`; force with `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` if telemetry disabled.&lt;/li&gt;&lt;li&gt;The model can now discover and invoke built-in slash commands like `/init`, `/review`, and `/security-review` via the Skill tool&lt;/li&gt;&lt;li&gt;`/undo` is now an alias for `/rewind`&lt;/li&gt;&lt;li&gt;Improved `/model` to warn before switching models mid-conversation, since the next response re-reads the full history uncached&lt;/li&gt;&lt;li&gt;Improved `/resume` picker to default to sessions from the current directory; press `Ctrl+A` to show all projects&lt;/li&gt;&lt;li&gt;Improved error messages: server rate limits are now distinguished from plan usage limits; 5xx/529 errors show a link to status.claude.com; unknown slash commands suggest the closest match&lt;/li&gt;&lt;li&gt;Reduced memory footprint for file reads, edits, and syntax highlighting by loading language grammars on demand&lt;/li&gt;&lt;li&gt;Added \"verbose\" indicator when viewing the detailed transcript (`Ctrl+O`)&lt;/li&gt;&lt;li&gt;Added a warning at startup when prompt caching is disabled via `DISABLE_PROMPT_CACHING*` environment variables&lt;/li&gt;&lt;li&gt;Fixed paste not working in the `/login` code prompt (regression in 2.1.105)&lt;/li&gt;&lt;li&gt;Fixed subscribers who set `DISABLE_TELEMETRY` falling back to 5-minute prompt cache TTL instead of 1 hour&lt;/li&gt;&lt;li&gt;Fixed Agent tool prompting for permission in auto mode when the safety classifier's transcript exceeded its context window&lt;/li&gt;&lt;li&gt;Fixed Bash tool producing no output when `CLAUDE_ENV_FILE` (e.g. `~/.zprofile`) ends with a `#` comment line&lt;/li&gt;&lt;li&gt;Fixed `claude --resume &lt;session-id&gt;` losing the session's custom name and color set via `/rename`&lt;/li&gt;&lt;li&gt;Fixed session titles showing placeholder example text when the first message is a short greeting&lt;/li&gt;&lt;li&gt;Fixed terminal escape codes appearing as garbage text in the prompt input after `--teleport`&lt;/li&gt;&lt;li&gt;Fixed `/feedback` retry: pressing Enter to resubmit after a failure now works without first editing the description&lt;/li&gt;&lt;li&gt;Fixed `--teleport` and `--resume &lt;id&gt;` precondition errors (e.g. dirty git tree, session not found) exiting silently instead of showing the error message&lt;/li&gt;&lt;li&gt;Fixed Remote Control session titles set in the web UI being overwritten by auto-generated titles after the third message&lt;/li&gt;&lt;li&gt;Fixed `--resume` truncating sessions when the transcript contained a self-referencing message&lt;/li&gt;&lt;li&gt;Fixed transcript write failures (e.g., disk full) being silently dropped instead of being logged&lt;/li&gt;&lt;li&gt;Fixed diacritical marks (accents, umlauts, cedillas) being dropped from responses when the `language` setting is configured&lt;/li&gt;&lt;li&gt;Fixed policy-managed plugins never auto-updating when running from a different project than where they were first installed&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21108</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.107</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21107</link>\n      <description>&lt;ul&gt;&lt;li&gt;Show thinking hints sooner during long operations&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21107</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.105</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21105</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `path` parameter to the `EnterWorktree` tool to switch into an existing worktree of the current repository&lt;/li&gt;&lt;li&gt;Added PreCompact hook support: hooks can now block compaction by exiting with code 2 or returning `{\"decision\":\"block\"}`&lt;/li&gt;&lt;li&gt;Added background monitor support for plugins via a top-level `monitors` manifest key that auto-arms at session start or on skill invoke&lt;/li&gt;&lt;li&gt;`/proactive` is now an alias for `/loop`&lt;/li&gt;&lt;li&gt;Improved stalled API stream handling: streams now abort after 5 minutes of no data and retry non-streaming instead of hanging indefinitely&lt;/li&gt;&lt;li&gt;Improved network error messages: connection errors now show a retry message immediately instead of a silent spinner&lt;/li&gt;&lt;li&gt;Improved file write display: long single-line writes (e.g. minified JSON) are now truncated in the UI instead of paginating across many screens&lt;/li&gt;&lt;li&gt;Improved `/doctor` layout with status icons; press `f` to have Claude fix reported issues&lt;/li&gt;&lt;li&gt;Improved `/config` labels and descriptions for clarity&lt;/li&gt;&lt;li&gt;Improved skill description handling: raised the listing cap from 250 to 1,536 characters and added a startup warning when descriptions are truncated&lt;/li&gt;&lt;li&gt;Improved `WebFetch` to strip `&lt;style&gt;` and `&lt;script&gt;` contents from fetched pages so CSS-heavy pages no longer exhaust the content budget before reaching actual text&lt;/li&gt;&lt;li&gt;Improved stale agent worktree cleanup to remove worktrees whose PR was squash-merged instead of keeping them indefinitely&lt;/li&gt;&lt;li&gt;Improved MCP large-output truncation prompt to give format-specific recipes (e.g. `jq` for JSON, computed Read chunk sizes for text)&lt;/li&gt;&lt;li&gt;Fixed images attached to queued messages (sent while Claude is working) being dropped&lt;/li&gt;&lt;li&gt;Fixed screen going blank when the prompt input wraps to a second line in long conversations&lt;/li&gt;&lt;li&gt;Fixed leading whitespace getting copied when selecting multi-line assistant responses in fullscreen mode&lt;/li&gt;&lt;li&gt;Fixed leading whitespace being trimmed from assistant messages, breaking ASCII art and indented diagrams&lt;/li&gt;&lt;li&gt;Fixed garbled bash output when commands print clickable file links (e.g. Python `rich`/`loguru` logging)&lt;/li&gt;&lt;li&gt;Fixed alt+enter not inserting a newline in terminals using ESC-prefix alt encoding, and Ctrl+J not inserting a newline (regression in 2.1.100)&lt;/li&gt;&lt;li&gt;Fixed duplicate \"Creating worktree\" text in EnterWorktree/ExitWorktree tool display&lt;/li&gt;&lt;li&gt;Fixed queued user prompts disappearing from focus mode&lt;/li&gt;&lt;li&gt;Fixed one-shot scheduled tasks re-firing repeatedly when the file watcher missed the post-fire cleanup&lt;/li&gt;&lt;li&gt;Fixed inbound channel notifications being silently dropped after the first message for Team/Enterprise users&lt;/li&gt;&lt;li&gt;Fixed marketplace plugins with `package.json` and lockfile not having dependencies installed automatically after install/update&lt;/li&gt;&lt;li&gt;Fixed marketplace auto-update leaving the official marketplace in a broken state when a plugin process holds files open during the update&lt;/li&gt;&lt;li&gt;Fixed \"Resume this session with...\" hint not printing on exit after `/resume`, `--worktree`, or `/branch`&lt;/li&gt;&lt;li&gt;Fixed feedback survey shortcut keys firing when typed at the end of a longer prompt&lt;/li&gt;&lt;li&gt;Fixed stdio MCP server emitting malformed (non-JSON) output hanging the session instead of failing fast with \"Connection closed\"&lt;/li&gt;&lt;li&gt;Fixed MCP tools missing on the first turn of headless/remote-trigger sessions when MCP servers connect asynchronously&lt;/li&gt;&lt;li&gt;Fixed `/model` picker on AWS Bedrock in non-US regions persisting invalid `us.*` model IDs to `settings.json` when inference profile discovery is still in-flight&lt;/li&gt;&lt;li&gt;Fixed 429 rate-limit errors showing a raw JSON dump instead of a clean message for API-key, Bedrock, and Vertex users&lt;/li&gt;&lt;li&gt;Fixed crash on resume when session contains malformed text blocks&lt;/li&gt;&lt;li&gt;Fixed `/help` dropping the tab bar, Shortcuts heading, and footer at short terminal heights&lt;/li&gt;&lt;li&gt;Fixed malformed keybinding entry values in `keybindings.json` being silently loaded instead of rejected with a clear error&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` in one project's settings permanently disabling usage metrics for all projects on the machine&lt;/li&gt;&lt;li&gt;Fixed washed-out 16-color palette when using Ghostty, Kitty, Alacritty, WezTerm, foot, rio, or Contour over SSH/mosh&lt;/li&gt;&lt;li&gt;Fixed Bash tool suggesting `acceptEdits` permission mode when exiting plan mode would downgrade from a higher permission level&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21105</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.101</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21101</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `/team-onboarding` command to generate a teammate ramp-up guide from your local Claude Code usage&lt;/li&gt;&lt;li&gt;Added OS CA certificate store trust by default, so enterprise TLS proxies work without extra setup (set `CLAUDE_CODE_CERT_STORE=bundled` to use only bundled CAs)&lt;/li&gt;&lt;li&gt;`/ultraplan` and other remote-session features now auto-create a default cloud environment instead of requiring web setup first&lt;/li&gt;&lt;li&gt;Improved brief mode to retry once when Claude responds with plain text instead of a structured message&lt;/li&gt;&lt;li&gt;Improved focus mode: Claude now writes more self-contained summaries since it knows you only see its final message&lt;/li&gt;&lt;li&gt;Improved tool-not-available errors to explain why and how to proceed when the model calls a tool that exists but isn't available in the current context&lt;/li&gt;&lt;li&gt;Improved rate-limit retry messages to show which limit was hit and when it resets instead of an opaque seconds countdown&lt;/li&gt;&lt;li&gt;Improved refusal error messages to include the API-provided explanation when available&lt;/li&gt;&lt;li&gt;Improved `claude -p --resume &lt;name&gt;` to accept session titles set via `/rename` or `--name`&lt;/li&gt;&lt;li&gt;Improved settings resilience: an unrecognized hook event name in `settings.json` no longer causes the entire file to be ignored&lt;/li&gt;&lt;li&gt;Improved plugin hooks from plugins force-enabled by managed settings to run when `allowManagedHooksOnly` is set&lt;/li&gt;&lt;li&gt;Improved `/plugin` and `claude plugin update` to show a warning when the marketplace could not be refreshed, instead of silently reporting a stale version&lt;/li&gt;&lt;li&gt;Improved plan mode to hide the \"Refine with Ultraplan\" option when the user's org or auth setup can't reach Claude Code on the web&lt;/li&gt;&lt;li&gt;Improved beta tracing to honor `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, and `OTEL_LOG_TOOL_CONTENT`; sensitive span attributes are no longer emitted unless opted in&lt;/li&gt;&lt;li&gt;Improved SDK `query()` to clean up subprocess and temp files when consumers `break` from `for await` or use `await using`&lt;/li&gt;&lt;li&gt;Fixed a command injection vulnerability in the POSIX `which` fallback used by LSP binary detection&lt;/li&gt;&lt;li&gt;Fixed a memory leak where long sessions retained dozens of historical copies of the message list in the virtual scroller&lt;/li&gt;&lt;li&gt;Fixed `--resume`/`--continue` losing conversation context on large sessions when the loader anchored on a dead-end branch instead of the live conversation&lt;/li&gt;&lt;li&gt;Fixed `--resume` chain recovery bridging into an unrelated subagent conversation when a subagent message landed near a main-chain write gap&lt;/li&gt;&lt;li&gt;Fixed a crash on `--resume` when a persisted Edit/Write tool result was missing its `file_path`&lt;/li&gt;&lt;li&gt;Fixed a hardcoded 5-minute request timeout that aborted slow backends (local LLMs, extended thinking, slow gateways) regardless of `API_TIMEOUT_MS`&lt;/li&gt;&lt;li&gt;Fixed `permissions.deny` rules not overriding a PreToolUse hook's `permissionDecision: \"ask\"` — previously the hook could downgrade a deny into a prompt&lt;/li&gt;&lt;li&gt;Fixed `--setting-sources` without `user` causing background cleanup to ignore `cleanupPeriodDays` and delete conversation history older than 30 days&lt;/li&gt;&lt;li&gt;Fixed Bedrock SigV4 authentication failing with 403 when `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper`, or `ANTHROPIC_CUSTOM_HEADERS` set an Authorization header&lt;/li&gt;&lt;li&gt;Fixed `claude -w &lt;name&gt;` failing with \"already exists\" after a previous session's worktree cleanup left a stale directory&lt;/li&gt;&lt;li&gt;Fixed subagents not inheriting MCP tools from dynamically-injected servers&lt;/li&gt;&lt;li&gt;Fixed sub-agents running in isolated worktrees being denied Read/Edit access to files inside their own worktree&lt;/li&gt;&lt;li&gt;Fixed sandboxed Bash commands failing with `mktemp: No such file or directory` after a fresh boot&lt;/li&gt;&lt;li&gt;Fixed `claude mcp serve` tool calls failing with \"Tool execution failed\" in MCP clients that validate `outputSchema`&lt;/li&gt;&lt;li&gt;Fixed `RemoteTrigger` tool's `run` action sending an empty body and being rejected by the server&lt;/li&gt;&lt;li&gt;Fixed several `/resume` picker issues: narrow default view hiding sessions from other projects, unreachable preview on Windows Terminal, incorrect cwd in worktrees, session-not-found errors not surfacing in stderr, terminal title not being set, and resume hint overlapping the prompt input&lt;/li&gt;&lt;li&gt;Fixed Grep tool ENOENT when the embedded ripgrep binary path becomes stale (VS Code extension auto-update, macOS App Translocation); now falls back to system `rg` and self-heals mid-session&lt;/li&gt;&lt;li&gt;Fixed `/btw` writing a copy of the entire conversation to disk on every use&lt;/li&gt;&lt;li&gt;Fixed `/context` Free space and Messages breakdown disagreeing with the header percentage&lt;/li&gt;&lt;li&gt;Fixed several plugin issues: slash commands resolving to the wrong plugin with duplicate `name:` frontmatter, `/plugin update` failing with `ENAMETOOLONG`, Discover showing already-installed plugins, directory-source plugins loading from a stale version cache, and skills not honoring `context: fork` and `agent` frontmatter fields&lt;/li&gt;&lt;li&gt;Fixed the `/mcp` menu offering OAuth-specific actions for MCP servers configured with `headersHelper`; Reconnect is now offered instead to re-invoke the helper script&lt;/li&gt;&lt;li&gt;Fixed `ctrl+]`, `ctrl+\\`, and `ctrl+^` keybindings not firing in terminals that send raw C0 control bytes (Terminal.app, default iTerm2, xterm)&lt;/li&gt;&lt;li&gt;Fixed `/login` OAuth URL rendering with padding that prevented clean mouse selection&lt;/li&gt;&lt;li&gt;Fixed rendering issues: flicker in non-fullscreen mode when content above the visible area changed, terminal scrollback being wiped during long sessions in non-fullscreen mode, and mouse-scroll escape sequences occasionally leaking into the prompt as text&lt;/li&gt;&lt;li&gt;Fixed crash when `settings.json` env values are numbers instead of strings&lt;/li&gt;&lt;li&gt;Fixed in-app settings writes (e.g. `/add-dir --remember`, `/config`) not refreshing the in-memory snapshot, preventing removed directories from being revoked mid-session&lt;/li&gt;&lt;li&gt;Fixed custom keybindings (`~/.claude/keybindings.json`) not loading on Bedrock, Vertex, and other third-party providers&lt;/li&gt;&lt;li&gt;Fixed `claude --continue -p` not correctly continuing sessions created by `-p` or the SDK&lt;/li&gt;&lt;li&gt;Fixed several Remote Control issues: worktrees removed on session crash, connection failures not persisting in the transcript, spurious \"Disconnected\" indicator in brief mode for local sessions, and `/remote-control` failing over SSH when only `CLAUDE_CODE_ORGANIZATION_UUID` is set&lt;/li&gt;&lt;li&gt;Fixed `/insights` sometimes omitting the report file link from its response&lt;/li&gt;&lt;li&gt;[VSCode] Fixed the file attachment below the chat input not clearing when the last editor tab is closed&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21101</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.98</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2198</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added interactive Google Vertex AI setup wizard accessible from the login screen when selecting \"3rd-party platform\", guiding you through GCP authentication, project and region configuration, credential verification, and model pinning&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_PERFORCE_MODE` env var: when set, Edit/Write/NotebookEdit fail on read-only files with a `p4 edit` hint instead of silently overwriting them&lt;/li&gt;&lt;li&gt;Added Monitor tool for streaming events from background scripts&lt;/li&gt;&lt;li&gt;Added subprocess sandboxing with PID namespace isolation on Linux when `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` is set, and `CLAUDE_CODE_SCRIPT_CAPS` env var to limit per-session script invocations&lt;/li&gt;&lt;li&gt;Added `--exclude-dynamic-system-prompt-sections` flag to print mode for improved cross-user prompt caching&lt;/li&gt;&lt;li&gt;Added `workspace.git_worktree` to the status line JSON input, set whenever the current directory is inside a linked git worktree&lt;/li&gt;&lt;li&gt;Added W3C `TRACEPARENT` env var to Bash tool subprocesses when OTEL tracing is enabled, so child-process spans correctly parent to Claude Code's trace tree&lt;/li&gt;&lt;li&gt;LSP: Claude Code now identifies itself to language servers via `clientInfo` in the initialize request&lt;/li&gt;&lt;li&gt;Fixed a Bash tool permission bypass where a backslash-escaped flag could be auto-allowed as read-only and lead to arbitrary code execution&lt;/li&gt;&lt;li&gt;Fixed compound Bash commands bypassing forced permission prompts for safety checks and explicit ask rules in auto and bypass-permissions modes&lt;/li&gt;&lt;li&gt;Fixed read-only commands with env-var prefixes not prompting unless the var is known-safe (`LANG`, `TZ`, `NO_COLOR`, etc.)&lt;/li&gt;&lt;li&gt;Fixed redirects to `/dev/tcp/...` or `/dev/udp/...` not prompting instead of auto-allowing&lt;/li&gt;&lt;li&gt;Fixed stalled streaming responses timing out instead of falling back to non-streaming mode&lt;/li&gt;&lt;li&gt;Fixed 429 retries burning all attempts in ~13s when the server returns a small `Retry-After` — exponential backoff now applies as a minimum&lt;/li&gt;&lt;li&gt;Fixed MCP OAuth `oauth.authServerMetadataUrl` config override not being honored on token refresh after restart, affecting ADFS and similar IdPs&lt;/li&gt;&lt;li&gt;Fixed capital letters being dropped to lowercase on xterm and VS Code integrated terminal when the kitty keyboard protocol is active&lt;/li&gt;&lt;li&gt;Fixed macOS text replacements deleting the trigger word instead of inserting the substitution&lt;/li&gt;&lt;li&gt;Fixed `--dangerously-skip-permissions` being silently downgraded to accept-edits mode after approving a write to a protected path via Bash&lt;/li&gt;&lt;li&gt;Fixed managed-settings allow rules remaining active after an admin removed them, until process restart&lt;/li&gt;&lt;li&gt;Fixed `permissions.additionalDirectories` changes not applying mid-session — removed directories lose access immediately and added ones work without restart&lt;/li&gt;&lt;li&gt;Fixed removing a directory from `additionalDirectories` revoking access to the same directory passed via `--add-dir`&lt;/li&gt;&lt;li&gt;Fixed `Bash(cmd:*)` and `Bash(git commit *)` wildcard permission rules failing to match commands with extra spaces or tabs&lt;/li&gt;&lt;li&gt;Fixed `Bash(...)` deny rules being downgraded to a prompt for piped commands that mix `cd` with other segments&lt;/li&gt;&lt;li&gt;Fixed false Bash permission prompts for `cut -d /`, `paste -d /`, `column -s /`, `awk '{print $1}' file`, and filenames containing `%`&lt;/li&gt;&lt;li&gt;Fixed permission rules with names matching JavaScript prototype properties (e.g. `toString`) causing `settings.json` to be silently ignored&lt;/li&gt;&lt;li&gt;Fixed agent team members not inheriting the leader's permission mode when using `--dangerously-skip-permissions`&lt;/li&gt;&lt;li&gt;Fixed a crash in fullscreen mode when hovering over MCP tool results&lt;/li&gt;&lt;li&gt;Fixed copying wrapped URLs in fullscreen mode inserting spaces at line breaks&lt;/li&gt;&lt;li&gt;Fixed file-edit diffs disappearing from the UI on `--resume` when the edited file was larger than 10KB&lt;/li&gt;&lt;li&gt;Fixed several `/resume` picker issues: `--resume &lt;name&gt;` opening uneditable, filter reload wiping search state, empty list swallowing arrow keys, cross-project staleness, and transient task-status text replacing conversation summaries&lt;/li&gt;&lt;li&gt;Fixed `/export` not honoring absolute paths and `~`, and silently rewriting user-supplied extensions to `.txt`&lt;/li&gt;&lt;li&gt;Fixed `/effort max` being denied for unknown or future model IDs&lt;/li&gt;&lt;li&gt;Fixed slash command picker breaking when a plugin's frontmatter `name` is a YAML boolean keyword&lt;/li&gt;&lt;li&gt;Fixed rate-limit upsell text being hidden after message remounts&lt;/li&gt;&lt;li&gt;Fixed MCP tools with `_meta[\"anthropic/maxResultSizeChars\"]` not bypassing the token-based persist layer&lt;/li&gt;&lt;li&gt;Fixed voice mode leaking dozens of space characters into the input when re-holding the push-to-talk key while the previous transcript is still processing&lt;/li&gt;&lt;li&gt;Fixed `DISABLE_AUTOUPDATER` not fully suppressing the npm registry version check and symlink modification on npm-based installs&lt;/li&gt;&lt;li&gt;Fixed a memory leak where Remote Control permission handler entries were retained for the lifetime of the session&lt;/li&gt;&lt;li&gt;Fixed background subagents that fail with an error not reporting partial progress to the parent agent&lt;/li&gt;&lt;li&gt;Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors showing \"JSON validation failed\" instead of the real message&lt;/li&gt;&lt;li&gt;Fixed feedback survey rendering when dismissed&lt;/li&gt;&lt;li&gt;Fixed Bash `grep -f FILE` / `rg -f FILE` not prompting when reading a pattern file outside the working directory&lt;/li&gt;&lt;li&gt;Fixed stale subagent worktree cleanup removing worktrees that contain untracked files&lt;/li&gt;&lt;li&gt;Fixed `sandbox.network.allowMachLookup` not taking effect on macOS&lt;/li&gt;&lt;li&gt;Improved `/resume` filter hint labels and added project/worktree/branch names in the filter indicator&lt;/li&gt;&lt;li&gt;Improved footer indicators (Focus, notifications) to stay on the mode-indicator row instead of wrapping at narrow terminal widths&lt;/li&gt;&lt;li&gt;Improved `/agents` with a tabbed layout: a Running tab shows live subagents, and the Library tab adds Run agent and View running instance actions&lt;/li&gt;&lt;li&gt;Improved `/reload-plugins` to pick up plugin-provided skills without requiring a restart&lt;/li&gt;&lt;li&gt;Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers&lt;/li&gt;&lt;li&gt;Improved Vim mode: `j`/`k` in NORMAL mode now navigate history and select the footer pill at the input boundary&lt;/li&gt;&lt;li&gt;Improved hook errors in the transcript to include the first line of stderr for self-diagnosis without `--debug`&lt;/li&gt;&lt;li&gt;Improved OTEL tracing: interaction spans now correctly wrap full turns under concurrent SDK calls, and headless turns end spans per-turn&lt;/li&gt;&lt;li&gt;Improved transcript entries to carry final token usage instead of streaming placeholders&lt;/li&gt;&lt;li&gt;Updated the `/claude-api` skill to cover Managed Agents alongside Claude API&lt;/li&gt;&lt;li&gt;[VSCode] Fixed false-positive \"requires git-bash\" error on Windows when `CLAUDE_CODE_GIT_BASH_PATH` is set or Git is installed at a default location&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_MAX_CONTEXT_TOKENS` to honor `DISABLE_COMPACT` when it is set.&lt;/li&gt;&lt;li&gt;Dropped `/compact` hints when `DISABLE_COMPACT` is set.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2198</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.97</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2197</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added focus view toggle (`Ctrl+O`) in `NO_FLICKER` mode showing prompt, one-line tool summary with edit diffstats, and final response&lt;/li&gt;&lt;li&gt;Added `refreshInterval` status line setting to re-run the status line command every N seconds&lt;/li&gt;&lt;li&gt;Added `workspace.git_worktree` to the status line JSON input, set when the current directory is inside a linked git worktree&lt;/li&gt;&lt;li&gt;Added `● N running` indicator in `/agents` next to agent types with live subagent instances&lt;/li&gt;&lt;li&gt;Added syntax highlighting for Cedar policy files (`.cedar`, `.cedarpolicy`)&lt;/li&gt;&lt;li&gt;Fixed `--dangerously-skip-permissions` being silently downgraded to accept-edits mode after approving a write to a protected path&lt;/li&gt;&lt;li&gt;Fixed and hardened Bash tool permissions, tightening checks around env-var prefixes and network redirects, and reducing false prompts on common commands&lt;/li&gt;&lt;li&gt;Fixed permission rules with names matching JavaScript prototype properties (e.g. `toString`) causing `settings.json` to be silently ignored&lt;/li&gt;&lt;li&gt;Fixed managed-settings allow rules remaining active after an admin removed them until process restart&lt;/li&gt;&lt;li&gt;Fixed `permissions.additionalDirectories` changes in settings not applying mid-session&lt;/li&gt;&lt;li&gt;Fixed removing a directory from `settings.permissions.additionalDirectories` revoking access to the same directory passed via `--add-dir`&lt;/li&gt;&lt;li&gt;Fixed MCP HTTP/SSE connections accumulating ~50 MB/hr of unreleased buffers when servers reconnect&lt;/li&gt;&lt;li&gt;Fixed MCP OAuth `oauth.authServerMetadataUrl` not being honored on token refresh after restart, fixing ADFS and similar IdPs&lt;/li&gt;&lt;li&gt;Fixed 429 retries burning all attempts in ~13 seconds when the server returns a small `Retry-After` — exponential backoff now applies as a minimum&lt;/li&gt;&lt;li&gt;Fixed rate-limit upgrade options disappearing after context compaction&lt;/li&gt;&lt;li&gt;Fixed several `/resume` picker issues: `--resume &lt;name&gt;` opening uneditable, Ctrl+A reload wiping search, empty list swallowing navigation, task-status text replacing conversation summary, and cross-project staleness&lt;/li&gt;&lt;li&gt;Fixed file-edit diffs disappearing on `--resume` when the edited file was larger than 10KB&lt;/li&gt;&lt;li&gt;Fixed `--resume` cache misses and lost mid-turn input from attachment messages not being saved to the transcript&lt;/li&gt;&lt;li&gt;Fixed messages typed while Claude is working not being persisted to the transcript&lt;/li&gt;&lt;li&gt;Fixed prompt-type `Stop`/`SubagentStop` hooks failing on long sessions, and hook evaluator API errors displaying \"JSON validation failed\" instead of the actual message&lt;/li&gt;&lt;li&gt;Fixed subagents with worktree isolation or `cwd:` override leaking their working directory back to the parent session's Bash tool&lt;/li&gt;&lt;li&gt;Fixed compaction writing duplicate multi-MB subagent transcript files on prompt-too-long retries&lt;/li&gt;&lt;li&gt;Fixed `claude plugin update` reporting \"already at the latest version\" for git-based marketplace plugins when the remote had newer commits&lt;/li&gt;&lt;li&gt;Fixed slash command picker breaking when a plugin's frontmatter `name` is a YAML boolean keyword&lt;/li&gt;&lt;li&gt;Fixed copying wrapped URLs in `NO_FLICKER` mode inserting spaces at line breaks&lt;/li&gt;&lt;li&gt;Fixed scroll rendering artifacts in `NO_FLICKER` mode when running inside zellij&lt;/li&gt;&lt;li&gt;Fixed a crash in `NO_FLICKER` mode when hovering over MCP tool results&lt;/li&gt;&lt;li&gt;Fixed a `NO_FLICKER` mode memory leak where API retries left stale streaming state&lt;/li&gt;&lt;li&gt;Fixed slow mouse-wheel scrolling in `NO_FLICKER` mode on Windows Terminal&lt;/li&gt;&lt;li&gt;Fixed custom status line not displaying in `NO_FLICKER` mode on terminals shorter than 24 rows&lt;/li&gt;&lt;li&gt;Fixed Shift+Enter and Alt/Cmd+arrow shortcuts not working in Warp with `NO_FLICKER` mode&lt;/li&gt;&lt;li&gt;Fixed Korean/Japanese/Unicode text becoming garbled when copied in no-flicker mode on Windows&lt;/li&gt;&lt;li&gt;Fixed Bedrock SigV4 authentication failing when `AWS_BEARER_TOKEN_BEDROCK` or `ANTHROPIC_BEDROCK_BASE_URL` are set to empty strings (as GitHub Actions does for unset inputs)&lt;/li&gt;&lt;li&gt;Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers (e.g. `LANG=C rm foo`, `timeout 5 mkdir out`)&lt;/li&gt;&lt;li&gt;Improved auto mode and bypass-permissions mode to auto-approve sandbox network access prompts&lt;/li&gt;&lt;li&gt;Improved sandbox: `sandbox.network.allowMachLookup` now takes effect on macOS&lt;/li&gt;&lt;li&gt;Improved image handling: pasted and attached images are now compressed to the same token budget as images read via the Read tool&lt;/li&gt;&lt;li&gt;Improved slash command and `@`-mention completion to trigger after CJK sentence punctuation, so Japanese/Chinese input no longer requires a space before `/` or `@`&lt;/li&gt;&lt;li&gt;Improved Bridge sessions to show the local git repo, branch, and working directory on the claude.ai session card&lt;/li&gt;&lt;li&gt;Improved footer layout: indicators (Focus, notifications) now stay on the mode-indicator row instead of wrapping below&lt;/li&gt;&lt;li&gt;Improved context-low warning to show as a transient footer notification instead of a persistent row&lt;/li&gt;&lt;li&gt;Improved markdown blockquotes to show a continuous left bar across wrapped lines&lt;/li&gt;&lt;li&gt;Improved session transcript size by skipping empty hook entries and capping stored pre-edit file copies&lt;/li&gt;&lt;li&gt;Improved transcript accuracy: per-block entries now carry the final token usage instead of the streaming placeholder&lt;/li&gt;&lt;li&gt;Improved Bash tool OTEL tracing: subprocesses now inherit a W3C `TRACEPARENT` env var when tracing is enabled&lt;/li&gt;&lt;li&gt;Updated `/claude-api` skill to cover Managed Agents alongside the Claude API&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2197</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.96</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2196</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed Bedrock requests failing with `403 \"Authorization header is missing\"` when using `AWS_BEARER_TOKEN_BEDROCK` or `CLAUDE_CODE_SKIP_BEDROCK_AUTH` (regression in 2.1.94)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2196</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.94</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2194</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added support for Amazon Bedrock powered by Mantle, set `CLAUDE_CODE_USE_MANTLE=1`&lt;/li&gt;&lt;li&gt;Changed default effort level from medium to high for API-key, Bedrock/Vertex/Foundry, Team, and Enterprise users (control this with `/effort`)&lt;/li&gt;&lt;li&gt;Added compact `Slacked #channel` header with a clickable channel link for Slack MCP send-message tool calls&lt;/li&gt;&lt;li&gt;Added `keep-coding-instructions` frontmatter field support for plugin output styles&lt;/li&gt;&lt;li&gt;Added `hookSpecificOutput.sessionTitle` to `UserPromptSubmit` hooks for setting the session title&lt;/li&gt;&lt;li&gt;Plugin skills declared via `\"skills\": [\"./\"]` now use the skill's frontmatter `name` for the invocation name instead of the directory basename, giving a stable name across install methods&lt;/li&gt;&lt;li&gt;Fixed agents appearing stuck after a 429 rate-limit response with a long Retry-After header — the error now surfaces immediately instead of silently waiting&lt;/li&gt;&lt;li&gt;Fixed Console login on macOS silently failing with \"Not logged in\" when the login keychain is locked or its password is out of sync — the error is now surfaced and `claude doctor` diagnoses the fix&lt;/li&gt;&lt;li&gt;Fixed plugin skill hooks defined in YAML frontmatter being silently ignored&lt;/li&gt;&lt;li&gt;Fixed plugin hooks failing with \"No such file or directory\" when `CLAUDE_PLUGIN_ROOT` was not set&lt;/li&gt;&lt;li&gt;Fixed `${CLAUDE_PLUGIN_ROOT}` resolving to the marketplace source directory instead of the installed cache for local-marketplace plugins on startup&lt;/li&gt;&lt;li&gt;Fixed scrollback showing the same diff repeated and blank pages in long-running sessions&lt;/li&gt;&lt;li&gt;Fixed multiline user prompts in the transcript indenting wrapped lines under the `❯` caret instead of under the text&lt;/li&gt;&lt;li&gt;Fixed Shift+Space inserting the literal word \"space\" instead of a space character in search inputs&lt;/li&gt;&lt;li&gt;Fixed hyperlinks opening two browser tabs when clicked inside tmux running in an xterm.js-based terminal (VS Code, Hyper, Tabby)&lt;/li&gt;&lt;li&gt;Fixed an alt-screen rendering bug where content height changes mid-scroll could leave compounding ghost lines&lt;/li&gt;&lt;li&gt;Fixed `FORCE_HYPERLINK` environment variable being ignored when set via `settings.json` `env`&lt;/li&gt;&lt;li&gt;Fixed native terminal cursor not tracking the selected tab in dialogs, so screen readers and magnifiers can follow tab navigation&lt;/li&gt;&lt;li&gt;Fixed Bedrock invocation of Sonnet 3.5 v2 by using the `us.` inference profile ID&lt;/li&gt;&lt;li&gt;Fixed SDK/print mode not preserving the partial assistant response in conversation history when interrupted mid-stream&lt;/li&gt;&lt;li&gt;Improved `--resume` to resume sessions from other worktrees of the same repo directly instead of printing a `cd` command&lt;/li&gt;&lt;li&gt;Fixed CJK and other multibyte text being corrupted with U+FFFD in stream-json input/output when chunk boundaries split a UTF-8 sequence&lt;/li&gt;&lt;li&gt;[VSCode] Reduced cold-open subprocess work on starting a session&lt;/li&gt;&lt;li&gt;[VSCode] Fixed dropdown menus selecting the wrong item when the mouse was over the list while typing or using arrow keys&lt;/li&gt;&lt;li&gt;[VSCode] Added a warning banner when `settings.json` files fail to parse, so users know their permission rules are not being applied&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2194</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.92</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2192</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `forceRemoteSettingsRefresh` policy setting: when set, the CLI blocks startup until remote managed settings are freshly fetched, and exits if the fetch fails (fail-closed)&lt;/li&gt;&lt;li&gt;Added interactive Bedrock setup wizard accessible from the login screen when selecting \"3rd-party platform\" — guides you through AWS authentication, region configuration, credential verification, and model pinning&lt;/li&gt;&lt;li&gt;Added per-model and cache-hit breakdown to `/cost` for subscription users&lt;/li&gt;&lt;li&gt;`/release-notes` is now an interactive version picker&lt;/li&gt;&lt;li&gt;Remote Control session names now use your hostname as the default prefix (e.g. `myhost-graceful-unicorn`), overridable with `--remote-control-session-name-prefix`&lt;/li&gt;&lt;li&gt;Pro users now see a footer hint when returning to a session after the prompt cache has expired, showing roughly how many tokens the next turn will send uncached&lt;/li&gt;&lt;li&gt;Fixed subagent spawning permanently failing with \"Could not determine pane count\" after tmux windows are killed or renumbered during a long-running session&lt;/li&gt;&lt;li&gt;Fixed prompt-type Stop hooks incorrectly failing when the small fast model returns `ok:false`, and restored `preventContinuation:true` semantics for non-Stop prompt-type hooks&lt;/li&gt;&lt;li&gt;Fixed tool input validation failures when streaming emits array/object fields as JSON-encoded strings&lt;/li&gt;&lt;li&gt;Fixed an API 400 error that could occur when extended thinking produced a whitespace-only text block alongside real content&lt;/li&gt;&lt;li&gt;Fixed accidental feedback survey submissions from auto-pilot keypresses and consecutive-prompt digit collisions&lt;/li&gt;&lt;li&gt;Fixed misleading \"esc to interrupt\" hint appearing alongside \"esc to clear\" when a text selection exists in fullscreen mode during processing&lt;/li&gt;&lt;li&gt;Fixed Homebrew install update prompts to use the cask's release channel (`claude-code` → stable, `claude-code@latest` → latest)&lt;/li&gt;&lt;li&gt;Fixed `ctrl+e` jumping to the end of the next line when already at end of line in multiline prompts&lt;/li&gt;&lt;li&gt;Fixed an issue where the same message could appear at two positions when scrolling up in fullscreen mode (iTerm2, Ghostty, and other terminals with DEC 2026 support)&lt;/li&gt;&lt;li&gt;Fixed idle-return \"/clear to save X tokens\" hint showing cumulative session tokens instead of current context size&lt;/li&gt;&lt;li&gt;Fixed plugin MCP servers stuck \"connecting\" on session start when they duplicate a claude.ai connector that is unauthenticated&lt;/li&gt;&lt;li&gt;Improved Write tool diff computation speed for large files (60% faster on files with tabs/`&amp;`/`$`)&lt;/li&gt;&lt;li&gt;Removed `/tag` command&lt;/li&gt;&lt;li&gt;Removed `/vim` command (toggle vim mode via `/config` → Editor mode)&lt;/li&gt;&lt;li&gt;Linux sandbox now ships the `apply-seccomp` helper in both npm and native builds, restoring unix-socket blocking for sandboxed commands&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2192</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.91</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2191</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added MCP tool result persistence override via `_meta[\"anthropic/maxResultSizeChars\"]` annotation (up to 500K), allowing larger results like DB schemas to pass through without truncation&lt;/li&gt;&lt;li&gt;Added `disableSkillShellExecution` setting to disable inline shell execution in skills, custom slash commands, and plugin commands&lt;/li&gt;&lt;li&gt;Added support for multi-line prompts in `claude-cli://open?q=` deep links (encoded newlines `%0A` no longer rejected)&lt;/li&gt;&lt;li&gt;Plugins can now ship executables under `bin/` and invoke them as bare commands from the Bash tool&lt;/li&gt;&lt;li&gt;Fixed transcript chain breaks on `--resume` that could lose conversation history when async transcript writes fail silently&lt;/li&gt;&lt;li&gt;Fixed `cmd+delete` not deleting to start of line on iTerm2, kitty, WezTerm, Ghostty, and Windows Terminal&lt;/li&gt;&lt;li&gt;Fixed plan mode in remote sessions losing track of the plan file after a container restart, which caused permission prompts on plan edits and an empty plan-approval modal&lt;/li&gt;&lt;li&gt;Fixed JSON schema validation for `permissions.defaultMode: \"auto\"` in settings.json&lt;/li&gt;&lt;li&gt;Fixed Windows version cleanup not protecting the active version's rollback copy&lt;/li&gt;&lt;li&gt;`/feedback` now explains why it's unavailable instead of disappearing from the slash menu&lt;/li&gt;&lt;li&gt;Improved `/claude-api` skill guidance for agent design patterns including tool surface decisions, context management, and caching strategy&lt;/li&gt;&lt;li&gt;Improved performance: faster `stripAnsi` on Bun by routing through `Bun.stripANSI`&lt;/li&gt;&lt;li&gt;Edit tool now uses shorter `old_string` anchors, reducing output tokens&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2191</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.90</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2190</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `/powerup` — interactive lessons teaching Claude Code features with animated demos&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` env var to keep the existing marketplace cache when `git pull` fails, useful in offline environments&lt;/li&gt;&lt;li&gt;Added `.husky` to protected directories (acceptEdits mode)&lt;/li&gt;&lt;li&gt;Fixed an infinite loop where the rate-limit options dialog would repeatedly auto-open after hitting your usage limit, eventually crashing the session&lt;/li&gt;&lt;li&gt;Fixed `--resume` causing a full prompt-cache miss on the first request for users with deferred tools, MCP servers, or custom agents (regression since v2.1.69)&lt;/li&gt;&lt;li&gt;Fixed `Edit`/`Write` failing with \"File content has changed\" when a PostToolUse format-on-save hook rewrites the file between consecutive edits&lt;/li&gt;&lt;li&gt;Fixed `PreToolUse` hooks that emit JSON to stdout and exit with code 2 not correctly blocking the tool call&lt;/li&gt;&lt;li&gt;Fixed collapsed search/read summary badge appearing multiple times in fullscreen scrollback when a CLAUDE.md file auto-loads during a tool call&lt;/li&gt;&lt;li&gt;Fixed auto mode not respecting explicit user boundaries (\"don't push\", \"wait for X before Y\") even when the action would otherwise be allowed&lt;/li&gt;&lt;li&gt;Fixed click-to-expand hover text being nearly invisible on light terminal themes&lt;/li&gt;&lt;li&gt;Fixed UI crash when malformed tool input reached the permission dialog&lt;/li&gt;&lt;li&gt;Fixed headers disappearing when scrolling `/model`, `/config`, and other selection screens&lt;/li&gt;&lt;li&gt;Hardened PowerShell tool permission checks: fixed trailing `&amp;` background job bypass, `-ErrorAction Break` debugger hang, archive-extraction TOCTOU, and parse-fail fallback deny-rule degradation&lt;/li&gt;&lt;li&gt;Improved performance: eliminated per-turn JSON.stringify of MCP tool schemas on cache-key lookup&lt;/li&gt;&lt;li&gt;Improved performance: SSE transport now handles large streamed frames in linear time (was quadratic)&lt;/li&gt;&lt;li&gt;Improved performance: SDK sessions with long conversations no longer slow down quadratically on transcript writes&lt;/li&gt;&lt;li&gt;Improved `/resume` all-projects view to load project sessions in parallel, improving load times for users with many projects&lt;/li&gt;&lt;li&gt;Changed `--resume` picker to no longer show sessions created by `claude -p` or SDK invocations&lt;/li&gt;&lt;li&gt;Removed `Get-DnsClientCache` and `ipconfig /displaydns` from auto-allow (DNS cache privacy)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2190</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.89</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2189</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `\"defer\"` permission decision to `PreToolUse` hooks — headless sessions can pause at a tool call and resume with `-p --resume` to have the hook re-evaluate&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_NO_FLICKER=1` environment variable to opt into flicker-free alt-screen rendering with virtualized scrollback&lt;/li&gt;&lt;li&gt;Added `PermissionDenied` hook that fires after auto mode classifier denials — return `{retry: true}` to tell the model it can retry&lt;/li&gt;&lt;li&gt;Added named subagents to `@` mention typeahead suggestions&lt;/li&gt;&lt;li&gt;Added `MCP_CONNECTION_NONBLOCKING=true` for `-p` mode to skip the MCP connection wait entirely, and bounded `--mcp-config` server connections at 5s instead of blocking on the slowest server&lt;/li&gt;&lt;li&gt;Auto mode: denied commands now show a notification and appear in `/permissions` → Recent tab where you can retry with `r`&lt;/li&gt;&lt;li&gt;Fixed `Edit(//path/**)` and `Read(//path/**)` allow rules to check the resolved symlink target, not just the requested path&lt;/li&gt;&lt;li&gt;Fixed voice push-to-talk not activating for some modifier-combo bindings, and voice mode on Windows failing with \"WebSocket upgrade rejected with HTTP 101\"&lt;/li&gt;&lt;li&gt;Fixed Edit/Write tools doubling CRLF on Windows and stripping Markdown hard line breaks (two trailing spaces)&lt;/li&gt;&lt;li&gt;Fixed `StructuredOutput` schema cache bug causing ~50% failure rate when using multiple schemas&lt;/li&gt;&lt;li&gt;Fixed memory leak where large JSON inputs were retained as LRU cache keys in long-running sessions&lt;/li&gt;&lt;li&gt;Fixed a crash when removing a message from very large session files (over 50MB)&lt;/li&gt;&lt;li&gt;Fixed LSP server zombie state after crash — server now restarts on next request instead of failing until session restart&lt;/li&gt;&lt;li&gt;Fixed prompt history entries containing CJK or emoji being silently dropped when they fall on a 4KB boundary in `~/.claude/history.jsonl`&lt;/li&gt;&lt;li&gt;Fixed `/stats` undercounting tokens by excluding subagent usage, and losing historical data beyond 30 days when the stats cache format changes&lt;/li&gt;&lt;li&gt;Fixed `-p --resume` hangs when the deferred tool input exceeds 64KB or no deferred marker exists, and `-p --continue` not resuming deferred tools&lt;/li&gt;&lt;li&gt;Fixed `claude-cli://` deep links not opening on macOS&lt;/li&gt;&lt;li&gt;Fixed MCP tool errors truncating to only the first content block when the server returns multi-element error content&lt;/li&gt;&lt;li&gt;Fixed skill reminders and other system context being dropped when sending messages with images via the SDK&lt;/li&gt;&lt;li&gt;Fixed PreToolUse/PostToolUse hooks to receive `file_path` as an absolute path for Write/Edit/Read tools, matching the documented behavior&lt;/li&gt;&lt;li&gt;Fixed autocompact thrash loop — now detects when context refills to the limit immediately after compacting three times in a row and stops with an actionable error instead of burning API calls&lt;/li&gt;&lt;li&gt;Fixed prompt cache misses in long sessions caused by tool schema bytes changing mid-session&lt;/li&gt;&lt;li&gt;Fixed nested CLAUDE.md files being re-injected dozens of times in long sessions that read many files&lt;/li&gt;&lt;li&gt;Fixed `--resume` crash when transcript contains a tool result from an older CLI version or interrupted write&lt;/li&gt;&lt;li&gt;Fixed misleading \"Rate limit reached\" message when the API returned an entitlement error — now shows the actual error with actionable hints&lt;/li&gt;&lt;li&gt;Fixed hooks `if` condition filtering not matching compound commands (`ls &amp;&amp; git push`) or commands with env-var prefixes (`FOO=bar git push`)&lt;/li&gt;&lt;li&gt;Fixed collapsed search/read group badges duplicating in terminal scrollback during heavy parallel tool use&lt;/li&gt;&lt;li&gt;Fixed notification `invalidates` not clearing the currently-displayed notification immediately&lt;/li&gt;&lt;li&gt;Fixed prompt briefly disappearing after submit when background messages arrived during processing&lt;/li&gt;&lt;li&gt;Fixed Devanagari and other combining-mark text being truncated in assistant output&lt;/li&gt;&lt;li&gt;Fixed rendering artifacts on main-screen terminals after layout shifts&lt;/li&gt;&lt;li&gt;Fixed voice mode failing to request microphone permission on macOS Apple Silicon&lt;/li&gt;&lt;li&gt;Fixed Shift+Enter submitting instead of inserting a newline on Windows Terminal Preview 1.25&lt;/li&gt;&lt;li&gt;Fixed periodic UI jitter during streaming in iTerm2 when running inside tmux&lt;/li&gt;&lt;li&gt;Fixed PowerShell tool incorrectly reporting failures when commands like `git push` wrote progress to stderr on Windows PowerShell 5.1&lt;/li&gt;&lt;li&gt;Fixed a potential out-of-memory crash when the Edit tool was used on very large files (&gt;1 GiB)&lt;/li&gt;&lt;li&gt;Improved collapsed tool summary to show \"Listed N directories\" for `ls`/`tree`/`du` instead of \"Read N files\"&lt;/li&gt;&lt;li&gt;Improved Bash tool to warn when a formatter/linter command modifies files you have previously read, preventing stale-edit errors&lt;/li&gt;&lt;li&gt;Improved `@`-mention typeahead to rank source files above MCP resources with similar names&lt;/li&gt;&lt;li&gt;Improved PowerShell tool prompt with version-appropriate syntax guidance (5.1 vs 7+)&lt;/li&gt;&lt;li&gt;Changed `Edit` to work on files viewed via `Bash` with `sed -n` or `cat`, without requiring a separate `Read` call first&lt;/li&gt;&lt;li&gt;Changed hook output over 50K characters to be saved to disk with a file path + preview instead of being injected directly into context&lt;/li&gt;&lt;li&gt;Changed `cleanupPeriodDays: 0` in settings.json to be rejected with a validation error — it previously silently disabled transcript persistence&lt;/li&gt;&lt;li&gt;Changed thinking summaries to no longer be generated by default in interactive sessions — set `showThinkingSummaries: true` in settings.json to restore&lt;/li&gt;&lt;li&gt;Documented `TaskCreated` hook event and its blocking behavior&lt;/li&gt;&lt;li&gt;Preserved task notifications when backgrounding a running command with Ctrl+B&lt;/li&gt;&lt;li&gt;PowerShell tool on Windows: external-command arguments containing both a double-quote and whitespace now prompt instead of auto-allowing (PS 5.1 argument-splitting hardening)&lt;/li&gt;&lt;li&gt;`/env` now applies to PowerShell tool commands (previously only affected Bash)&lt;/li&gt;&lt;li&gt;`/usage` now hides redundant \"Current week (Sonnet only)\" bar for Pro and Enterprise plans&lt;/li&gt;&lt;li&gt;Image paste no longer inserts a trailing space&lt;/li&gt;&lt;li&gt;Pasting `!command` into an empty prompt now enters bash mode, matching typed `!` behavior&lt;/li&gt;&lt;li&gt;`/buddy` is here for April 1st — hatch a small creature that watches you code&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2189</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.87</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2187</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed messages in Cowork Dispatch not getting delivered&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2187</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.86</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2186</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `X-Claude-Code-Session-Id` header to API requests so proxies can aggregate requests by session without parsing the body&lt;/li&gt;&lt;li&gt;Added `.jj` and `.sl` to VCS directory exclusion lists so Grep and file autocomplete don't descend into Jujutsu or Sapling metadata&lt;/li&gt;&lt;li&gt;Fixed `--resume` failing with \"tool_use ids were found without tool_result blocks\" on sessions created before v2.1.85&lt;/li&gt;&lt;li&gt;Fixed Write/Edit/Read failing on files outside the project root (e.g., `~/.claude/CLAUDE.md`) when conditional skills or rules are configured&lt;/li&gt;&lt;li&gt;Fixed unnecessary config disk writes on every skill invocation that could cause performance issues and config corruption on Windows&lt;/li&gt;&lt;li&gt;Fixed potential out-of-memory crash when using `/feedback` on very long sessions with large transcript files&lt;/li&gt;&lt;li&gt;Fixed `--bare` mode dropping MCP tools in interactive sessions and silently discarding messages enqueued mid-turn&lt;/li&gt;&lt;li&gt;Fixed the `c` shortcut copying only ~20 characters of the OAuth login URL instead of the full URL&lt;/li&gt;&lt;li&gt;Fixed masked input (e.g., OAuth code paste) leaking the start of the token when wrapping across multiple lines on narrow terminals&lt;/li&gt;&lt;li&gt;Fixed official marketplace plugin scripts failing with \"Permission denied\" on macOS/Linux since v2.1.83&lt;/li&gt;&lt;li&gt;Fixed statusline showing another session's model when running multiple Claude Code instances and using `/model` in one of them&lt;/li&gt;&lt;li&gt;Fixed scroll not following new messages after wheel scroll or click-to-select at the bottom of a long conversation&lt;/li&gt;&lt;li&gt;Fixed `/plugin` uninstall dialog: pressing `n` now correctly uninstalls the plugin while preserving its data directory&lt;/li&gt;&lt;li&gt;Fixed a regression where pressing Enter after clicking could leave the transcript blank until the response arrived&lt;/li&gt;&lt;li&gt;Fixed `ultrathink` hint lingering after deleting the keyword&lt;/li&gt;&lt;li&gt;Fixed memory growth in long sessions from markdown/highlight render caches retaining full content strings&lt;/li&gt;&lt;li&gt;Reduced startup event-loop stalls when many claude.ai MCP connectors are configured (macOS keychain cache extended from 5s to 30s)&lt;/li&gt;&lt;li&gt;Reduced token overhead when mentioning files with `@` — raw string content no longer JSON-escaped&lt;/li&gt;&lt;li&gt;Improved prompt cache hit rate for Bedrock, Vertex, and Foundry users by removing dynamic content from tool descriptions&lt;/li&gt;&lt;li&gt;Memory filenames in the \"Saved N memories\" notice now highlight on hover and open on click&lt;/li&gt;&lt;li&gt;Skill descriptions in the `/skills` listing are now capped at 250 characters to reduce context usage&lt;/li&gt;&lt;li&gt;Changed `/skills` menu to sort alphabetically for easier scanning&lt;/li&gt;&lt;li&gt;Auto mode now shows \"unavailable for your plan\" when disabled by plan restrictions (was \"temporarily unavailable\")&lt;/li&gt;&lt;li&gt;[VSCode] Fixed extension incorrectly showing \"Not responding\" during long-running operations&lt;/li&gt;&lt;li&gt;[VSCode] Fixed extension defaulting Max plan users to Sonnet after the OAuth token refreshes (8 hours after login)&lt;/li&gt;&lt;li&gt;Read tool now uses compact line-number format and deduplicates unchanged re-reads, reducing token usage&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2186</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.85</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2185</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `CLAUDE_CODE_MCP_SERVER_NAME` and `CLAUDE_CODE_MCP_SERVER_URL` environment variables to MCP `headersHelper` scripts, allowing one helper to serve multiple servers&lt;/li&gt;&lt;li&gt;Added conditional `if` field for hooks using permission rule syntax (e.g., `Bash(git *)`) to filter when they run, reducing process spawning overhead&lt;/li&gt;&lt;li&gt;Added timestamp markers in transcripts when scheduled tasks (`/loop`, `CronCreate`) fire&lt;/li&gt;&lt;li&gt;Added trailing space after `[Image #N]` placeholder when pasting images&lt;/li&gt;&lt;li&gt;Deep link queries (`claude-cli://open?q=…`) now support up to 5,000 characters, with a \"scroll to review\" warning for long pre-filled prompts&lt;/li&gt;&lt;li&gt;MCP OAuth now follows RFC 9728 Protected Resource Metadata discovery to find the authorization server&lt;/li&gt;&lt;li&gt;Plugins blocked by organization policy (`managed-settings.json`) can no longer be installed or enabled, and are hidden from marketplace views&lt;/li&gt;&lt;li&gt;PreToolUse hooks can now satisfy `AskUserQuestion` by returning `updatedInput` alongside `permissionDecision: \"allow\"`, enabling headless integrations that collect answers via their own UI&lt;/li&gt;&lt;li&gt;`tool_parameters` in OpenTelemetry tool_result events are now gated behind `OTEL_LOG_TOOL_DETAILS=1`&lt;/li&gt;&lt;li&gt;Fixed `/compact` failing with \"context exceeded\" when the conversation has grown too large for the compact request itself to fit&lt;/li&gt;&lt;li&gt;Fixed `/plugin enable` and `/plugin disable` failing when a plugin's install location differs from where it's declared in settings&lt;/li&gt;&lt;li&gt;Fixed `--worktree` exiting with an error in non-git repositories before the `WorktreeCreate` hook could run&lt;/li&gt;&lt;li&gt;Fixed `deniedMcpServers` setting not blocking claude.ai MCP servers&lt;/li&gt;&lt;li&gt;Fixed `switch_display` in the computer-use tool returning \"not available in this session\" on multi-monitor setups&lt;/li&gt;&lt;li&gt;Fixed crash when `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER`, or `OTEL_TRACES_EXPORTER` is set to `none`&lt;/li&gt;&lt;li&gt;Fixed diff syntax highlighting not working in non-native builds&lt;/li&gt;&lt;li&gt;Fixed MCP step-up authorization failing when a refresh token exists — servers requesting elevated scopes via `403 insufficient_scope` now correctly trigger the re-authorization flow&lt;/li&gt;&lt;li&gt;Fixed memory leak in remote sessions when a streaming response is interrupted&lt;/li&gt;&lt;li&gt;Fixed persistent ECONNRESET errors during edge connection churn by using a fresh TCP connection on retry&lt;/li&gt;&lt;li&gt;Fixed prompts getting stuck in the queue after running certain slash commands, with up-arrow unable to retrieve them&lt;/li&gt;&lt;li&gt;Fixed Python Agent SDK: `type:'sdk'` MCP servers passed via `--mcp-config` are no longer dropped during startup&lt;/li&gt;&lt;li&gt;Fixed raw key sequences appearing in the prompt when running over SSH or in the VS Code integrated terminal&lt;/li&gt;&lt;li&gt;Fixed Remote Control session status staying stuck on \"Requires Action\" after a permission is resolved&lt;/li&gt;&lt;li&gt;Fixed shift+enter and meta+enter being intercepted by typeahead suggestions instead of inserting newlines&lt;/li&gt;&lt;li&gt;Fixed stale content bleeding through when scrolling up during streaming&lt;/li&gt;&lt;li&gt;Fixed terminal left in enhanced keyboard mode after exit in Ghostty, Kitty, WezTerm, and other terminals supporting the Kitty keyboard protocol — Ctrl+C and Ctrl+D now work correctly after quitting&lt;/li&gt;&lt;li&gt;Improved @-mention file autocomplete performance on large repositories&lt;/li&gt;&lt;li&gt;Improved PowerShell dangerous command detection&lt;/li&gt;&lt;li&gt;Improved scroll performance with large transcripts by replacing WASM yoga-layout with a pure TypeScript implementation&lt;/li&gt;&lt;li&gt;Reduced UI stutter when compaction triggers on large sessions&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2185</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.84</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2184</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added PowerShell tool for Windows as an opt-in preview. Learn more at https://code.claude.com/docs/en/tools-reference#powershell-tool&lt;/li&gt;&lt;li&gt;Added `ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU}_MODEL_SUPPORTS` env vars to override effort/thinking capability detection for pinned default models for 3p (Bedrock, Vertex, Foundry), and `_MODEL_NAME`/`_DESCRIPTION` to customize the `/model` picker label&lt;/li&gt;&lt;li&gt;Added `CLAUDE_STREAM_IDLE_TIMEOUT_MS` env var to configure the streaming idle watchdog threshold (default 90s)&lt;/li&gt;&lt;li&gt;Added `TaskCreated` hook that fires when a task is created via `TaskCreate`&lt;/li&gt;&lt;li&gt;Added `WorktreeCreate` hook support for `type: \"http\"` — return the created worktree path via `hookSpecificOutput.worktreePath` in the response JSON&lt;/li&gt;&lt;li&gt;Added `allowedChannelPlugins` managed setting for team/enterprise admins to define a channel plugin allowlist&lt;/li&gt;&lt;li&gt;Added `x-client-request-id` header to API requests for debugging timeouts&lt;/li&gt;&lt;li&gt;Added idle-return prompt that nudges users returning after 75+ minutes to `/clear`, reducing unnecessary token re-caching on stale sessions&lt;/li&gt;&lt;li&gt;Deep links (`claude-cli://`) now open in your preferred terminal instead of whichever terminal happens to be first in the detection list&lt;/li&gt;&lt;li&gt;Rules and skills `paths:` frontmatter now accepts a YAML list of globs&lt;/li&gt;&lt;li&gt;MCP tool descriptions and server instructions are now capped at 2KB to prevent OpenAPI-generated servers from bloating context&lt;/li&gt;&lt;li&gt;MCP servers configured both locally and via claude.ai connectors are now deduplicated — the local config wins&lt;/li&gt;&lt;li&gt;Background bash tasks that appear stuck on an interactive prompt now surface a notification after ~45 seconds&lt;/li&gt;&lt;li&gt;Token counts ≥1M now display as \"1.5m\" instead of \"1512.6k\"&lt;/li&gt;&lt;li&gt;Global system-prompt caching now works when `ToolSearch` is enabled, including for users with MCP tools configured&lt;/li&gt;&lt;li&gt;Fixed voice push-to-talk: holding the voice key no longer leaks characters into the text input, and transcripts now insert at the correct position&lt;/li&gt;&lt;li&gt;Fixed up/down arrow keys being unresponsive when a footer item is focused&lt;/li&gt;&lt;li&gt;Fixed `Ctrl+U` (kill-to-line-start) being a no-op at line boundaries in multiline input, so repeated `Ctrl+U` now clears across lines&lt;/li&gt;&lt;li&gt;Fixed null-unbinding a default chord binding (e.g. `\"ctrl+x ctrl+k\": null`) still entering chord-wait mode instead of freeing the prefix key&lt;/li&gt;&lt;li&gt;Fixed mouse events inserting literal \"mouse\" text into transcript search input&lt;/li&gt;&lt;li&gt;Fixed workflow subagents failing with API 400 when the outer session uses `--json-schema` and the subagent also specifies a schema&lt;/li&gt;&lt;li&gt;Fixed missing background color behind certain emoji in user message bubbles on some terminals&lt;/li&gt;&lt;li&gt;Fixed the \"allow Claude to edit its own settings for this session\" permission option not sticking for users with `Edit(.claude)` allow rules&lt;/li&gt;&lt;li&gt;Fixed a hang when generating attachment snippets for large edited files&lt;/li&gt;&lt;li&gt;Fixed MCP tool/resource cache leak on server reconnect&lt;/li&gt;&lt;li&gt;Fixed a startup performance issue where partial clone repositories (Scalar/GVFS) triggered mass blob downloads&lt;/li&gt;&lt;li&gt;Fixed native terminal cursor not tracking the text input caret, so IME composition (CJK input) now renders inline and screen readers can follow the input position&lt;/li&gt;&lt;li&gt;Fixed spurious \"Not logged in\" errors on macOS caused by transient keychain read failures&lt;/li&gt;&lt;li&gt;Fixed cold-start race where core tools could be deferred without their bypass active, causing Edit/Write to fail with InputValidationError on typed parameters&lt;/li&gt;&lt;li&gt;Improved detection for dangerous removals of Windows drive roots (`C:\\`, `C:\\Windows`, etc.)&lt;/li&gt;&lt;li&gt;Improved interactive startup by ~30ms by running `setup()` in parallel with slash command and agent loading&lt;/li&gt;&lt;li&gt;Improved startup for `claude \"prompt\"` with MCP servers — the REPL now renders immediately instead of blocking until all servers connect&lt;/li&gt;&lt;li&gt;Improved Remote Control to show a specific reason when blocked instead of a generic \"not yet enabled\" message&lt;/li&gt;&lt;li&gt;Improved p90 prompt cache rate&lt;/li&gt;&lt;li&gt;Reduced scroll-to-top resets in long sessions by making the message window immune to compaction and grouping changes&lt;/li&gt;&lt;li&gt;Reduced terminal flickering when animated tool progress scrolls above the viewport&lt;/li&gt;&lt;li&gt;Changed issue/PR references to only become clickable links when written as `owner/repo#123` — bare `#123` is no longer auto-linked&lt;/li&gt;&lt;li&gt;Slash commands unavailable for the current auth setup (`/voice`, `/mobile`, `/chrome`, `/upgrade`, etc.) are now hidden instead of shown&lt;/li&gt;&lt;li&gt;[VSCode] Added rate limit warning banner with usage percentage and reset time&lt;/li&gt;&lt;li&gt;Stats screenshot (Ctrl+S in /stats) now works in all builds and is 16× faster&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2184</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.83</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2183</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `managed-settings.d/` drop-in directory alongside `managed-settings.json`, letting separate teams deploy independent policy fragments that merge alphabetically&lt;/li&gt;&lt;li&gt;Added `CwdChanged` and `FileChanged` hook events for reactive environment management (e.g., direnv)&lt;/li&gt;&lt;li&gt;Added `sandbox.failIfUnavailable` setting to exit with an error when sandbox is enabled but cannot start, instead of running unsandboxed&lt;/li&gt;&lt;li&gt;Added `disableDeepLinkRegistration` setting to prevent `claude-cli://` protocol handler registration&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers)&lt;/li&gt;&lt;li&gt;Added transcript search — press `/` in transcript mode (`Ctrl+O`) to search, `n`/`N` to step through matches&lt;/li&gt;&lt;li&gt;Added `Ctrl+X Ctrl+E` as an alias for opening the external editor (readline-native binding; `Ctrl+G` still works)&lt;/li&gt;&lt;li&gt;Pasted images now insert an `[Image #N]` chip at the cursor so you can reference them positionally in your prompt&lt;/li&gt;&lt;li&gt;Agents can now declare `initialPrompt` in frontmatter to auto-submit a first turn&lt;/li&gt;&lt;li&gt;`chat:killAgents` and `chat:fastMode` are now rebindable via `~/.claude/keybindings.json`&lt;/li&gt;&lt;li&gt;Fixed mouse tracking escape sequences leaking to shell prompt after exit&lt;/li&gt;&lt;li&gt;Fixed Claude Code hanging on exit on macOS&lt;/li&gt;&lt;li&gt;Fixed screen flashing blank after being idle for a few seconds&lt;/li&gt;&lt;li&gt;Fixed a hang when diffing very large files with few common lines — diffs now time out after 5 seconds and fall back gracefully&lt;/li&gt;&lt;li&gt;Fixed a 1–8 second UI freeze on startup when voice input was enabled, caused by eagerly loading the native audio module&lt;/li&gt;&lt;li&gt;Fixed a startup regression where Claude Code would wait ~3s for claude.ai MCP config fetch before proceeding&lt;/li&gt;&lt;li&gt;Fixed `--mcp-config` CLI flag bypassing `allowedMcpServers`/`deniedMcpServers` managed policy enforcement&lt;/li&gt;&lt;li&gt;Fixed claude.ai MCP connectors (Slack, Gmail, etc.) not being available in single-turn `--print` mode&lt;/li&gt;&lt;li&gt;Fixed `caffeinate` process not properly terminating when Claude Code exits, preventing Mac from sleeping&lt;/li&gt;&lt;li&gt;Fixed bash mode not activating when tab-accepting `!`-prefixed command suggestions&lt;/li&gt;&lt;li&gt;Fixed stale slash command selection showing wrong highlighted command after navigating suggestions&lt;/li&gt;&lt;li&gt;Fixed `/config` menu showing both the search cursor and list selection at the same time&lt;/li&gt;&lt;li&gt;Fixed background subagents becoming invisible after context compaction, which could cause duplicate agents to be spawned&lt;/li&gt;&lt;li&gt;Fixed background agent tasks staying stuck in \"running\" state when git or API calls hang during cleanup&lt;/li&gt;&lt;li&gt;Fixed `--channels` showing \"Channels are not currently available\" on first launch after upgrade&lt;/li&gt;&lt;li&gt;Fixed uninstalled plugin hooks continuing to fire until the next session&lt;/li&gt;&lt;li&gt;Fixed queued commands flickering during streaming responses&lt;/li&gt;&lt;li&gt;Fixed slash commands being sent to the model as text when submitted while a message is processing&lt;/li&gt;&lt;li&gt;Fixed scrollback jumping when collapsed read/search groups finish after scrolling offscreen&lt;/li&gt;&lt;li&gt;Fixed scrollback jumping to top when the model starts or stops thinking&lt;/li&gt;&lt;li&gt;Fixed SDK session history loss on resume caused by hook progress/attachment messages forking the parentUuid chain&lt;/li&gt;&lt;li&gt;Fixed copy-on-select not firing when you release the mouse outside the terminal window&lt;/li&gt;&lt;li&gt;Fixed ghost characters appearing in height-constrained lists when items overflow&lt;/li&gt;&lt;li&gt;Fixed `Ctrl+B` interfering with readline backward-char at an idle prompt — it now only fires when a foreground task can be backgrounded&lt;/li&gt;&lt;li&gt;Fixed tool result files never being cleaned up, ignoring the `cleanupPeriodDays` setting&lt;/li&gt;&lt;li&gt;Fixed space key being swallowed for up to 3 seconds after releasing voice hold-to-talk&lt;/li&gt;&lt;li&gt;Fixed ALSA library errors corrupting the terminal UI when using voice mode on Linux without audio hardware (Docker, headless, WSL1)&lt;/li&gt;&lt;li&gt;Fixed voice mode SoX detection on Termux/Android where spawning `which` is kernel-restricted&lt;/li&gt;&lt;li&gt;Fixed Remote Control sessions showing as Idle in the web session list while actively running&lt;/li&gt;&lt;li&gt;Fixed footer navigation selecting an invisible Remote Control pill in config-driven mode&lt;/li&gt;&lt;li&gt;Fixed memory leak in remote sessions where tool use IDs accumulate indefinitely&lt;/li&gt;&lt;li&gt;Improved Bedrock SDK cold-start latency by overlapping profile fetch with other boot work&lt;/li&gt;&lt;li&gt;Improved `--resume` memory usage and startup latency on large sessions&lt;/li&gt;&lt;li&gt;Improved plugin startup — commands, skills, and agents now load from disk cache without re-fetching&lt;/li&gt;&lt;li&gt;Improved Remote Control session titles: AI-generated titles now appear within seconds of the first message&lt;/li&gt;&lt;li&gt;Improved `WebFetch` to identify as `Claude-User` so site operators can recognize and allowlist Claude Code traffic via `robots.txt`&lt;/li&gt;&lt;li&gt;Reduced `WebFetch` peak memory usage for large pages&lt;/li&gt;&lt;li&gt;Reduced scrollback resets in long sessions from once per turn to once per ~50 messages&lt;/li&gt;&lt;li&gt;Faster `claude -p` startup with unauthenticated HTTP/SSE MCP servers (~600ms saved)&lt;/li&gt;&lt;li&gt;Bash ghost-text suggestions now include just-submitted commands immediately&lt;/li&gt;&lt;li&gt;Increased non-streaming fallback token cap (21k → 64k) and timeout (120s → 300s local) so fallback requests are less likely to be truncated&lt;/li&gt;&lt;li&gt;Interrupting a prompt before any response now automatically restores your input so you can edit and resubmit&lt;/li&gt;&lt;li&gt;`/status` now works while Claude is responding, instead of being queued until the turn finishes&lt;/li&gt;&lt;li&gt;Plugin MCP servers that duplicate an org-managed connector are now suppressed instead of running a second connection&lt;/li&gt;&lt;li&gt;Linux: respect `XDG_DATA_HOME` when registering the `claude-cli://` protocol handler&lt;/li&gt;&lt;li&gt;Changed \"stop all background agents\" keybinding from `Ctrl+F` to `Ctrl+X Ctrl+K` to stop shadowing readline forward-char&lt;/li&gt;&lt;li&gt;Deprecated `TaskOutput` tool in favor of using `Read` on the background task's output file path&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` env var to disable the non-streaming fallback when streaming fails&lt;/li&gt;&lt;li&gt;Plugin options (`manifest.userConfig`) now available externally — plugins can prompt for configuration at enable time, with `sensitive: true` values stored in keychain (macOS) or protected credentials file (other platforms)&lt;/li&gt;&lt;li&gt;Claude can now reference the on-disk path of clipboard-pasted images for file operations&lt;/li&gt;&lt;li&gt;`Ctrl+L` now clears the screen and forces a full redraw — use this to recover when Cmd+K leaves the UI partially blank. Use `Ctrl+U` or double-Esc to clear prompt input.&lt;/li&gt;&lt;li&gt;`--bare -p` (SDK pattern) is ~14% faster to the API request&lt;/li&gt;&lt;li&gt;Memory: `MEMORY.md` index now truncates at 25KB as well as 200 lines&lt;/li&gt;&lt;li&gt;Disabled `AskUserQuestion` and plan-mode tools when `--channels` is active&lt;/li&gt;&lt;li&gt;Fixed API 400 error when a pasted image was queued during a failing tool call&lt;/li&gt;&lt;li&gt;Fixed MCP tool calls hanging indefinitely when an SSE connection drops mid-call and exhausts its reconnection attempts&lt;/li&gt;&lt;li&gt;Fixed Remote Control session titles showing raw XML when a background agent completed before the first user message&lt;/li&gt;&lt;li&gt;Fixed remote sessions forgetting conversation history after a container restart due to progress-message gaps in the resumed transcript chain&lt;/li&gt;&lt;li&gt;Fixed remote sessions requiring re-login on transient auth errors instead of retrying automatically&lt;/li&gt;&lt;li&gt;Fixed `rg ... | wc -l` and similar piped commands hanging and returning `0` in sandbox mode on Linux&lt;/li&gt;&lt;li&gt;Fixed voice input hold-to-talk not activating when a CJK IME inserts a full-width space&lt;/li&gt;&lt;li&gt;Fixed `--worktree` hanging silently when the worktree name contained a forward slash&lt;/li&gt;&lt;li&gt;[VSCode] Spinner now turns red with \"Not responding\" when the backend hasn't responded for 60 seconds&lt;/li&gt;&lt;li&gt;[VSCode] Fixed session history not loading correctly when reopening a session via URL or after restart&lt;/li&gt;&lt;li&gt;[VSCode] Added Esc-twice (or `/rewind`) to open a keyboard-navigable rewind picker&lt;/li&gt;&lt;li&gt;[VSCode] Fixed \"Fork conversation from here\" and rewind actions failing silently after the session cache goes stale&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2183</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.81</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2181</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `--bare` flag for scripted `-p` calls — skips hooks, LSP, plugin sync, and skill directory walks; requires `ANTHROPIC_API_KEY` or an `apiKeyHelper` via `--settings` (OAuth and keychain auth disabled); auto-memory fully disabled&lt;/li&gt;&lt;li&gt;Added `--channels` permission relay — channel servers that declare the permission capability can forward tool approval prompts to your phone&lt;/li&gt;&lt;li&gt;Fixed multiple concurrent Claude Code sessions requiring repeated re-authentication when one session refreshes its OAuth token&lt;/li&gt;&lt;li&gt;Fixed voice mode silently swallowing retry failures and showing a misleading \"check your network\" message instead of the actual error&lt;/li&gt;&lt;li&gt;Fixed voice mode audio not recovering when the server silently drops the WebSocket connection&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` not suppressing the structured-outputs beta header, causing 400 errors on proxy gateways forwarding to Vertex/Bedrock&lt;/li&gt;&lt;li&gt;Fixed `--channels` bypass for Team/Enterprise orgs with no other managed settings configured&lt;/li&gt;&lt;li&gt;Fixed a crash on Node.js 18&lt;/li&gt;&lt;li&gt;Fixed unnecessary permission prompts for Bash commands containing dashes in strings&lt;/li&gt;&lt;li&gt;Fixed plugin hooks blocking prompt submission when the plugin directory is deleted mid-session&lt;/li&gt;&lt;li&gt;Fixed a race condition where background agent task output could hang indefinitely when the task completed between polling intervals&lt;/li&gt;&lt;li&gt;Resuming a session that was in a worktree now switches back to that worktree&lt;/li&gt;&lt;li&gt;Fixed `/btw` not including pasted text when used during an active response&lt;/li&gt;&lt;li&gt;Fixed a race where fast Cmd+Tab followed by paste could beat the clipboard copy under tmux&lt;/li&gt;&lt;li&gt;Fixed terminal tab title not updating with an auto-generated session description&lt;/li&gt;&lt;li&gt;Fixed invisible hook attachments inflating the message count in transcript mode&lt;/li&gt;&lt;li&gt;Fixed Remote Control sessions showing a generic title instead of deriving from the first prompt&lt;/li&gt;&lt;li&gt;Fixed `/rename` not syncing the title for Remote Control sessions&lt;/li&gt;&lt;li&gt;Fixed Remote Control `/exit` not reliably archiving the session&lt;/li&gt;&lt;li&gt;Improved MCP read/search tool calls to collapse into a single \"Queried {server}\" line (expand with Ctrl+O)&lt;/li&gt;&lt;li&gt;Improved `!` bash mode discoverability — Claude now suggests it when you need to run an interactive command&lt;/li&gt;&lt;li&gt;Improved plugin freshness — ref-tracked plugins now re-clone on every load to pick up upstream changes&lt;/li&gt;&lt;li&gt;Improved Remote Control session titles to refresh after your third message&lt;/li&gt;&lt;li&gt;Updated MCP OAuth to support Client ID Metadata Document (CIMD / SEP-991) for servers without Dynamic Client Registration&lt;/li&gt;&lt;li&gt;Changed plan mode to hide the \"clear context\" option by default (restore with `\"showClearContextOnPlanAccept\": true`)&lt;/li&gt;&lt;li&gt;Disabled line-by-line response streaming on Windows (including WSL in Windows Terminal) due to rendering issues&lt;/li&gt;&lt;li&gt;[VSCode] Fixed Windows PATH inheritance for Bash tool when using Git Bash (regression in v2.1.78)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2181</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.80</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2180</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `rate_limits` field to statusline scripts for displaying Claude.ai rate limit usage (5-hour and 7-day windows with `used_percentage` and `resets_at`)&lt;/li&gt;&lt;li&gt;Added `source: 'settings'` plugin marketplace source — declare plugin entries inline in settings.json&lt;/li&gt;&lt;li&gt;Added CLI tool usage detection to plugin tips, in addition to file pattern matching&lt;/li&gt;&lt;li&gt;Added `effort` frontmatter support for skills and slash commands to override the model effort level when invoked&lt;/li&gt;&lt;li&gt;Added `--channels` (research preview) — allow MCP servers to push messages into your session&lt;/li&gt;&lt;li&gt;Fixed `--resume` dropping parallel tool results — sessions with parallel tool calls now restore all tool_use/tool_result pairs instead of showing `[Tool result missing]` placeholders&lt;/li&gt;&lt;li&gt;Fixed voice mode WebSocket failures caused by Cloudflare bot detection on non-browser TLS fingerprints&lt;/li&gt;&lt;li&gt;Fixed 400 errors when using fine-grained tool streaming through API proxies, Bedrock, or Vertex&lt;/li&gt;&lt;li&gt;Fixed `/remote-control` appearing for gateway and third-party provider deployments where it cannot function&lt;/li&gt;&lt;li&gt;Fixed `/sandbox` tab switching not responding to Tab or arrow keys&lt;/li&gt;&lt;li&gt;Improved responsiveness of `@` file autocomplete in large git repositories&lt;/li&gt;&lt;li&gt;Improved `/effort` to show what auto currently resolves to, matching the status bar indicator&lt;/li&gt;&lt;li&gt;Improved `/permissions` — Tab and arrow keys now switch tabs from within a list&lt;/li&gt;&lt;li&gt;Improved background tasks panel — left arrow now closes from the list view&lt;/li&gt;&lt;li&gt;Simplified plugin install tips to use a single `/plugin install` command instead of a two-step flow&lt;/li&gt;&lt;li&gt;Reduced memory usage on startup in large repositories (~80 MB saved on 250k-file repos)&lt;/li&gt;&lt;li&gt;Fixed managed settings (`enabledPlugins`, `permissions.defaultMode`, policy-set env vars) not being applied at startup when `remote-settings.json` was cached from a prior session&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2180</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.79</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2179</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `--console` flag to `claude auth login` for Anthropic Console (API billing) authentication&lt;/li&gt;&lt;li&gt;Added \"Show turn duration\" toggle to the `/config` menu&lt;/li&gt;&lt;li&gt;Fixed `claude -p` hanging when spawned as a subprocess without explicit stdin (e.g. Python `subprocess.run`)&lt;/li&gt;&lt;li&gt;Fixed Ctrl+C not working in `-p` (print) mode&lt;/li&gt;&lt;li&gt;Fixed `/btw` returning the main agent's output instead of answering the side question when triggered during streaming&lt;/li&gt;&lt;li&gt;Fixed voice mode not activating correctly on startup when `voiceEnabled: true` is set&lt;/li&gt;&lt;li&gt;Fixed left/right arrow tab navigation in `/permissions`&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` not preventing terminal title from being set on startup&lt;/li&gt;&lt;li&gt;Fixed custom status line showing nothing when workspace trust is blocking it&lt;/li&gt;&lt;li&gt;Fixed enterprise users being unable to retry on rate limit (429) errors&lt;/li&gt;&lt;li&gt;Fixed `SessionEnd` hooks not firing when using interactive `/resume` to switch sessions&lt;/li&gt;&lt;li&gt;Improved startup memory usage by ~18MB across all scenarios&lt;/li&gt;&lt;li&gt;Improved non-streaming API fallback with a 2-minute per-attempt timeout, preventing sessions from hanging indefinitely&lt;/li&gt;&lt;li&gt;`CLAUDE_CODE_PLUGIN_SEED_DIR` now supports multiple seed directories separated by the platform path delimiter (`:` on Unix, `;` on Windows)&lt;/li&gt;&lt;li&gt;[VSCode] Added `/remote-control` — bridge your session to claude.ai/code to continue from a browser or phone&lt;/li&gt;&lt;li&gt;[VSCode] Session tabs now get AI-generated titles based on your first message&lt;/li&gt;&lt;li&gt;[VSCode] Fixed the thinking pill showing \"Thinking\" instead of \"Thought for Ns\" after a response completes&lt;/li&gt;&lt;li&gt;[VSCode] Fixed missing session diff button when opening sessions from the left sidebar&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2179</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.78</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2178</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `StopFailure` hook event that fires when the turn ends due to an API error (rate limit, auth failure, etc.)&lt;/li&gt;&lt;li&gt;Added `${CLAUDE_PLUGIN_DATA}` variable for plugin persistent state that survives plugin updates; `/plugin uninstall` prompts before deleting it&lt;/li&gt;&lt;li&gt;Added `effort`, `maxTurns`, and `disallowedTools` frontmatter support for plugin-shipped agents&lt;/li&gt;&lt;li&gt;Terminal notifications (iTerm2/Kitty/Ghostty popups, progress bar) now reach the outer terminal when running inside tmux with `set -g allow-passthrough on`&lt;/li&gt;&lt;li&gt;Response text now streams line-by-line as it's generated&lt;/li&gt;&lt;li&gt;Fixed `git log HEAD` failing with \"ambiguous argument\" inside sandboxed Bash on Linux, and stub files polluting `git status` in the working directory&lt;/li&gt;&lt;li&gt;Fixed `cc log` and `--resume` silently truncating conversation history on large sessions (&gt;5 MB) that used subagents&lt;/li&gt;&lt;li&gt;Fixed infinite loop when API errors triggered stop hooks that re-fed blocking errors to the model&lt;/li&gt;&lt;li&gt;Fixed `deny: [\"mcp__servername\"]` permission rules not removing MCP server tools before sending to the model, allowing it to see and attempt blocked tools&lt;/li&gt;&lt;li&gt;Fixed `sandbox.filesystem.allowWrite` not working with absolute paths (previously required `//` prefix)&lt;/li&gt;&lt;li&gt;Fixed `/sandbox` Dependencies tab showing Linux prerequisites on macOS instead of macOS-specific info&lt;/li&gt;&lt;li&gt;**Security:** Fixed silent sandbox disable when `sandbox.enabled: true` is set but dependencies are missing — now shows a visible startup warning&lt;/li&gt;&lt;li&gt;Fixed `.git`, `.claude`, and other protected directories being writable without a prompt in `bypassPermissions` mode&lt;/li&gt;&lt;li&gt;Fixed ctrl+u in normal mode scrolling instead of readline kill-line (ctrl+u/ctrl+d half-page scroll moved to transcript mode only)&lt;/li&gt;&lt;li&gt;Fixed voice mode modifier-combo push-to-talk keybindings (e.g. ctrl+k) requiring a hold instead of activating immediately&lt;/li&gt;&lt;li&gt;Fixed voice mode not working on WSL2 with WSLg (Windows 11); WSL1/Win10 users now get a clear error&lt;/li&gt;&lt;li&gt;Fixed `--worktree` flag not loading skills and hooks from the worktree directory&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` and `includeGitInstructions` setting not suppressing the git status section in the system prompt&lt;/li&gt;&lt;li&gt;Fixed Bash tool not finding Homebrew and other PATH-dependent binaries when VS Code is launched from Dock/Spotlight&lt;/li&gt;&lt;li&gt;Fixed washed-out Claude orange color in VS Code/Cursor/code-server terminals that don't advertise truecolor support&lt;/li&gt;&lt;li&gt;Added `ANTHROPIC_CUSTOM_MODEL_OPTION` env var to add a custom entry to the `/model` picker, with optional `_NAME` and `_DESCRIPTION` suffixed vars for display&lt;/li&gt;&lt;li&gt;Fixed `ANTHROPIC_BETAS` environment variable being silently ignored when using Haiku models&lt;/li&gt;&lt;li&gt;Fixed queued prompts being concatenated without a newline separator&lt;/li&gt;&lt;li&gt;Improved memory usage and startup time when resuming large sessions&lt;/li&gt;&lt;li&gt;[VSCode] Fixed a brief flash of the login screen when opening the sidebar while already authenticated&lt;/li&gt;&lt;li&gt;[VSCode] Fixed \"API Error: Rate limit reached\" when selecting Opus — model dropdown no longer offers 1M context variant to subscribers whose plan tier is unknown&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2178</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.77</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2177</link>\n      <description>&lt;ul&gt;&lt;li&gt;Increased default maximum output token limits for Claude Opus 4.6 to 64k tokens, and the upper bound for Opus 4.6 and Sonnet 4.6 models to 128k tokens&lt;/li&gt;&lt;li&gt;Added `allowRead` sandbox filesystem setting to re-allow read access within `denyRead` regions&lt;/li&gt;&lt;li&gt;`/copy` now accepts an optional index: `/copy N` copies the Nth-latest assistant response&lt;/li&gt;&lt;li&gt;Fixed \"Always Allow\" on compound bash commands (e.g. `cd src &amp;&amp; npm test`) saving a single rule for the full string instead of per-subcommand, leading to dead rules and repeated permission prompts&lt;/li&gt;&lt;li&gt;Fixed auto-updater starting overlapping binary downloads when the slash-command overlay repeatedly opened and closed, accumulating tens of gigabytes of memory&lt;/li&gt;&lt;li&gt;Fixed `--resume` silently truncating recent conversation history due to a race between memory-extraction writes and the main transcript&lt;/li&gt;&lt;li&gt;Fixed PreToolUse hooks returning `\"allow\"` bypassing `deny` permission rules, including enterprise managed settings&lt;/li&gt;&lt;li&gt;Fixed Write tool silently converting line endings when overwriting CRLF files or creating files in CRLF directories&lt;/li&gt;&lt;li&gt;Fixed memory growth in long-running sessions from progress messages surviving compaction&lt;/li&gt;&lt;li&gt;Fixed cost and token usage not being tracked when the API falls back to non-streaming mode&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` not stripping beta tool-schema fields, causing proxy gateways to reject requests&lt;/li&gt;&lt;li&gt;Fixed Bash tool reporting errors for successful commands when the system temp directory path contains spaces&lt;/li&gt;&lt;li&gt;Fixed paste being lost when typing immediately after pasting&lt;/li&gt;&lt;li&gt;Fixed Ctrl+D in `/feedback` text input deleting forward instead of the second press exiting the session&lt;/li&gt;&lt;li&gt;Fixed API error when dragging a 0-byte image file into the prompt&lt;/li&gt;&lt;li&gt;Fixed Claude Desktop sessions incorrectly using the terminal CLI's configured API key instead of OAuth&lt;/li&gt;&lt;li&gt;Fixed `git-subdir` plugins at different subdirectories of the same monorepo commit colliding in the plugin cache&lt;/li&gt;&lt;li&gt;Fixed ordered list numbers not rendering in terminal UI&lt;/li&gt;&lt;li&gt;Fixed a race condition where stale-worktree cleanup could delete an agent worktree just resumed from a previous crash&lt;/li&gt;&lt;li&gt;Fixed input deadlock when opening `/mcp` or similar dialogs while the agent is running&lt;/li&gt;&lt;li&gt;Fixed Backspace and Delete keys not working in vim NORMAL mode&lt;/li&gt;&lt;li&gt;Fixed status line not updating when vim mode is toggled on or off&lt;/li&gt;&lt;li&gt;Fixed hyperlinks opening twice on Cmd+click in VS Code, Cursor, and other xterm.js-based terminals&lt;/li&gt;&lt;li&gt;Fixed background colors rendering as terminal-default inside tmux with default configuration&lt;/li&gt;&lt;li&gt;Fixed iTerm2 session crash when selecting text inside tmux over SSH&lt;/li&gt;&lt;li&gt;Fixed clipboard copy silently failing in tmux sessions; copy toast now indicates whether to paste with `⌘V` or tmux `prefix+]`&lt;/li&gt;&lt;li&gt;Fixed `←`/`→` accidentally switching tabs in settings, permissions, and sandbox dialogs while navigating lists&lt;/li&gt;&lt;li&gt;Fixed IDE integration not auto-connecting when Claude Code is launched inside tmux or screen&lt;/li&gt;&lt;li&gt;Fixed CJK characters visually bleeding into adjacent UI elements when clipped at the right edge&lt;/li&gt;&lt;li&gt;Fixed teammate panes not closing when the leader exits&lt;/li&gt;&lt;li&gt;Fixed iTerm2 auto mode not detecting iTerm2 for native split-pane teammates&lt;/li&gt;&lt;li&gt;Faster startup on macOS (~60ms) by reading keychain credentials in parallel with module loading&lt;/li&gt;&lt;li&gt;Faster `--resume` on fork-heavy and very large sessions — up to 45% faster loading and ~100-150MB less peak memory&lt;/li&gt;&lt;li&gt;Improved Esc to abort in-flight non-streaming API requests&lt;/li&gt;&lt;li&gt;Improved `claude plugin validate` to check skill, agent, and command frontmatter plus `hooks/hooks.json`, catching YAML parse errors and schema violations&lt;/li&gt;&lt;li&gt;Background bash tasks are now killed if output exceeds 5GB, preventing runaway processes from filling disk&lt;/li&gt;&lt;li&gt;Sessions are now auto-named from plan content when you accept a plan&lt;/li&gt;&lt;li&gt;Improved headless mode plugin installation to compose correctly with `CLAUDE_CODE_PLUGIN_SEED_DIR`&lt;/li&gt;&lt;li&gt;Show a notice when `apiKeyHelper` takes longer than 10s, preventing it from blocking the main loop&lt;/li&gt;&lt;li&gt;The Agent tool no longer accepts a `resume` parameter — use `SendMessage({to: agentId})` to continue a previously spawned agent&lt;/li&gt;&lt;li&gt;`SendMessage` now auto-resumes stopped agents in the background instead of returning an error&lt;/li&gt;&lt;li&gt;Renamed `/fork` to `/branch` (`/fork` still works as an alias)&lt;/li&gt;&lt;li&gt;[VSCode] Improved plan preview tab titles to use the plan's heading instead of \"Claude's Plan\"&lt;/li&gt;&lt;li&gt;[VSCode] When option+click doesn't trigger native selection on macOS, the footer now points to the `macOptionClickForcesSelection` setting&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2177</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.76</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2176</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added MCP elicitation support — MCP servers can now request structured input mid-task via an interactive dialog (form fields or browser URL)&lt;/li&gt;&lt;li&gt;Added new `Elicitation` and `ElicitationResult` hooks to intercept and override responses before they're sent back&lt;/li&gt;&lt;li&gt;Added `-n` / `--name &lt;name&gt;` CLI flag to set a display name for the session at startup&lt;/li&gt;&lt;li&gt;Added `worktree.sparsePaths` setting for `claude --worktree` in large monorepos to check out only the directories you need via git sparse-checkout&lt;/li&gt;&lt;li&gt;Added `PostCompact` hook that fires after compaction completes&lt;/li&gt;&lt;li&gt;Added `/effort` slash command to set model effort level&lt;/li&gt;&lt;li&gt;Added session quality survey — enterprise admins can configure the sample rate via the `feedbackSurveyRate` setting&lt;/li&gt;&lt;li&gt;Fixed deferred tools (loaded via `ToolSearch`) losing their input schemas after conversation compaction, causing array and number parameters to be rejected with type errors&lt;/li&gt;&lt;li&gt;Fixed slash commands showing \"Unknown skill\"&lt;/li&gt;&lt;li&gt;Fixed plan mode asking for re-approval after the plan was already accepted&lt;/li&gt;&lt;li&gt;Fixed voice mode swallowing keypresses while a permission dialog or plan editor was open&lt;/li&gt;&lt;li&gt;Fixed `/voice` not working on Windows when installed via npm&lt;/li&gt;&lt;li&gt;Fixed spurious \"Context limit reached\" when invoking a skill with `model:` frontmatter on a 1M-context session&lt;/li&gt;&lt;li&gt;Fixed \"adaptive thinking is not supported on this model\" error when using non-standard model strings&lt;/li&gt;&lt;li&gt;Fixed `Bash(cmd:*)` permission rules not matching when a quoted argument contains `#`&lt;/li&gt;&lt;li&gt;Fixed \"don't ask again\" in the Bash permission dialog showing the full raw command for pipes and compound commands&lt;/li&gt;&lt;li&gt;Fixed auto-compaction retrying indefinitely after consecutive failures — a circuit breaker now stops after 3 attempts&lt;/li&gt;&lt;li&gt;Fixed MCP reconnect spinner persisting after successful reconnection&lt;/li&gt;&lt;li&gt;Fixed LSP plugins not registering servers when the LSP Manager initialized before marketplaces were reconciled&lt;/li&gt;&lt;li&gt;Fixed clipboard copying in tmux over SSH — now attempts both direct terminal write and tmux clipboard integration&lt;/li&gt;&lt;li&gt;Fixed `/export` showing only the filename instead of the full file path in the success message&lt;/li&gt;&lt;li&gt;Fixed transcript not auto-scrolling to new messages after selecting text&lt;/li&gt;&lt;li&gt;Fixed Escape key not working to exit the login method selection screen&lt;/li&gt;&lt;li&gt;Fixed several Remote Control issues: sessions silently dying when the server reaps an idle environment, rapid messages being queued one-at-a-time instead of batched, and stale work items causing redelivery after JWT refresh&lt;/li&gt;&lt;li&gt;Fixed bridge sessions failing to recover after extended WebSocket disconnects&lt;/li&gt;&lt;li&gt;Fixed slash commands not found when typing the exact name of a soft-hidden command&lt;/li&gt;&lt;li&gt;Improved `--worktree` startup performance by reading git refs directly and skipping redundant `git fetch` when the remote branch is already available locally&lt;/li&gt;&lt;li&gt;Improved background agent behavior — killing a background agent now preserves its partial results in the conversation context&lt;/li&gt;&lt;li&gt;Improved model fallback notifications — now always visible instead of hidden behind verbose mode, with human-friendly model names&lt;/li&gt;&lt;li&gt;Improved blockquote readability on dark terminal themes — text is now italic with a left bar instead of dim&lt;/li&gt;&lt;li&gt;Improved stale worktree cleanup — worktrees left behind after an interrupted parallel run are now automatically cleaned up&lt;/li&gt;&lt;li&gt;Improved Remote Control session titles — now derived from your first prompt instead of showing \"Interactive session\"&lt;/li&gt;&lt;li&gt;Improved `/voice` to show your dictation language on enable and warn when your `language` setting isn't supported for voice input&lt;/li&gt;&lt;li&gt;Updated `--plugin-dir` to only accept one path to support subcommands — use repeated `--plugin-dir` for multiple directories&lt;/li&gt;&lt;li&gt;[VSCode] Fixed gitignore patterns containing commas silently excluding entire filetypes from the @-mention file picker&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2176</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.75</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2175</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added 1M context window for Opus 4.6 by default for Max, Team, and Enterprise plans (previously required extra usage)&lt;/li&gt;&lt;li&gt;Added `/color` command for all users to set a prompt-bar color for your session&lt;/li&gt;&lt;li&gt;Added session name display on the prompt bar when using `/rename`&lt;/li&gt;&lt;li&gt;Added last-modified timestamps to memory files, helping Claude reason about which memories are fresh vs. stale&lt;/li&gt;&lt;li&gt;Added hook source display (settings/plugin/skill) in permission prompts when a hook requires confirmation&lt;/li&gt;&lt;li&gt;Fixed voice mode not activating correctly on fresh installs without toggling `/voice` twice&lt;/li&gt;&lt;li&gt;Fixed the Claude Code header not updating the displayed model name after switching models with `/model` or Option+P&lt;/li&gt;&lt;li&gt;Fixed session crash when an attachment message computation returns undefined values&lt;/li&gt;&lt;li&gt;Fixed Bash tool mangling `!` in piped commands (e.g., `jq 'select(.x != .y)'` now works correctly)&lt;/li&gt;&lt;li&gt;Fixed managed-disabled plugins showing up in the `/plugin` Installed tab — plugins force-disabled by your organization are now hidden&lt;/li&gt;&lt;li&gt;Fixed token estimation over-counting for thinking and `tool_use` blocks, preventing premature context compaction&lt;/li&gt;&lt;li&gt;Fixed corrupted marketplace config path handling&lt;/li&gt;&lt;li&gt;Fixed `/resume` losing session names after resuming a forked or continued session&lt;/li&gt;&lt;li&gt;Fixed Esc not closing the `/status` dialog after visiting the Config tab&lt;/li&gt;&lt;li&gt;Fixed input handling when accepting or rejecting a plan&lt;/li&gt;&lt;li&gt;Fixed footer hint in agent teams showing \"↓ to expand\" instead of the correct \"shift + ↓ to expand\"&lt;/li&gt;&lt;li&gt;Improved startup performance on macOS non-MDM machines by skipping unnecessary subprocess spawns&lt;/li&gt;&lt;li&gt;Suppressed async hook completion messages by default (visible with `--verbose` or transcript mode)&lt;/li&gt;&lt;li&gt;Breaking change: Removed deprecated Windows managed settings fallback at `C:\\ProgramData\\ClaudeCode\\managed-settings.json` — use `C:\\Program Files\\ClaudeCode\\managed-settings.json`&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2175</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.74</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2174</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added actionable suggestions to `/context` command — identifies context-heavy tools, memory bloat, and capacity warnings with specific optimization tips&lt;/li&gt;&lt;li&gt;Added `autoMemoryDirectory` setting to configure a custom directory for auto-memory storage&lt;/li&gt;&lt;li&gt;Fixed memory leak where streaming API response buffers were not released when the generator was terminated early, causing unbounded RSS growth on the Node.js/npm code path&lt;/li&gt;&lt;li&gt;Fixed managed policy `ask` rules being bypassed by user `allow` rules or skill `allowed-tools`&lt;/li&gt;&lt;li&gt;Fixed full model IDs (e.g., `claude-opus-4-5`) being silently ignored in agent frontmatter `model:` field and `--agents` JSON config — agents now accept the same model values as `--model`&lt;/li&gt;&lt;li&gt;Fixed MCP OAuth authentication hanging when the callback port is already in use&lt;/li&gt;&lt;li&gt;Fixed MCP OAuth refresh never prompting for re-auth after the refresh token expires, for OAuth servers that return errors with HTTP 200 (e.g. Slack)&lt;/li&gt;&lt;li&gt;Fixed voice mode silently failing on the macOS native binary for users whose terminal had never been granted microphone permission — the binary now includes the `audio-input` entitlement so macOS prompts correctly&lt;/li&gt;&lt;li&gt;Fixed `SessionEnd` hooks being killed after 1.5 s on exit regardless of `hook.timeout` — now configurable via `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`&lt;/li&gt;&lt;li&gt;Fixed `/plugin install` failing inside the REPL for marketplace plugins with local sources&lt;/li&gt;&lt;li&gt;Fixed marketplace update not syncing git submodules — plugin sources in submodules no longer break after update&lt;/li&gt;&lt;li&gt;Fixed unknown slash commands with arguments silently dropping input — now shows your input as a warning&lt;/li&gt;&lt;li&gt;Fixed Hebrew, Arabic, and other RTL text not rendering correctly in Windows Terminal, conhost, and VS Code integrated terminal&lt;/li&gt;&lt;li&gt;Fixed LSP servers not working on Windows due to malformed file URIs&lt;/li&gt;&lt;li&gt;Changed `--plugin-dir` so local dev copies now override installed marketplace plugins with the same name (unless that plugin is force-enabled by managed settings)&lt;/li&gt;&lt;li&gt;[VSCode] Fixed delete button not working for Untitled sessions&lt;/li&gt;&lt;li&gt;[VSCode] Improved scroll wheel responsiveness in the integrated terminal with terminal-aware acceleration&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2174</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.73</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2173</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `modelOverrides` setting to map model picker entries to custom provider model IDs (e.g. Bedrock inference profile ARNs)&lt;/li&gt;&lt;li&gt;Added actionable guidance when OAuth login or connectivity checks fail due to SSL certificate errors (corporate proxies, `NODE_EXTRA_CA_CERTS`)&lt;/li&gt;&lt;li&gt;Fixed freezes and 100% CPU loops triggered by permission prompts for complex bash commands&lt;/li&gt;&lt;li&gt;Fixed a deadlock that could freeze Claude Code when many skill files changed at once (e.g. during `git pull` in a repo with a large `.claude/skills/` directory)&lt;/li&gt;&lt;li&gt;Fixed Bash tool output being lost when running multiple Claude Code sessions in the same project directory&lt;/li&gt;&lt;li&gt;Fixed subagents with `model: opus`/`sonnet`/`haiku` being silently downgraded to older model versions on Bedrock, Vertex, and Microsoft Foundry&lt;/li&gt;&lt;li&gt;Fixed background bash processes spawned by subagents not being cleaned up when the agent exits&lt;/li&gt;&lt;li&gt;Fixed `/resume` showing the current session in the picker&lt;/li&gt;&lt;li&gt;Fixed `/ide` crashing with `onInstall is not defined` when auto-installing the extension&lt;/li&gt;&lt;li&gt;Fixed `/loop` not being available on Bedrock/Vertex/Foundry and when telemetry was disabled&lt;/li&gt;&lt;li&gt;Fixed SessionStart hooks firing twice when resuming a session via `--resume` or `--continue`&lt;/li&gt;&lt;li&gt;Fixed JSON-output hooks injecting no-op system-reminder messages into the model's context on every turn&lt;/li&gt;&lt;li&gt;Fixed voice mode session corruption when a slow connection overlaps a new recording&lt;/li&gt;&lt;li&gt;Fixed Linux sandbox failing to start with \"ripgrep (rg) not found\" on native builds&lt;/li&gt;&lt;li&gt;Fixed Linux native modules not loading on Amazon Linux 2 and other glibc 2.26 systems&lt;/li&gt;&lt;li&gt;Fixed \"media_type: Field required\" API error when receiving images via Remote Control&lt;/li&gt;&lt;li&gt;Fixed `/heapdump` failing on Windows with `EEXIST` error when the Desktop folder already exists&lt;/li&gt;&lt;li&gt;Improved Up arrow after interrupting Claude — now restores the interrupted prompt and rewinds the conversation in one step&lt;/li&gt;&lt;li&gt;Improved IDE detection speed at startup&lt;/li&gt;&lt;li&gt;Improved clipboard image pasting performance on macOS&lt;/li&gt;&lt;li&gt;Improved `/effort` to work while Claude is responding, matching `/model` behavior&lt;/li&gt;&lt;li&gt;Improved voice mode to automatically retry transient connection failures during rapid push-to-talk re-press&lt;/li&gt;&lt;li&gt;Improved the Remote Control spawn mode selection prompt with better context&lt;/li&gt;&lt;li&gt;Changed default Opus model on Bedrock, Vertex, and Microsoft Foundry to Opus 4.6 (was Opus 4.1)&lt;/li&gt;&lt;li&gt;Deprecated `/output-style` command — use `/config` instead. Output style is now fixed at session start for better prompt caching&lt;/li&gt;&lt;li&gt;VSCode: Fixed HTTP 400 errors for users behind proxies or on Bedrock/Vertex with Claude 4.5 models&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2173</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.72</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2172</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed tool search to activate even with `ANTHROPIC_BASE_URL` as long as `ENABLE_TOOL_SEARCH` is set.&lt;/li&gt;&lt;li&gt;Added `w` key in `/copy` to write the focused selection directly to a file, bypassing the clipboard (useful over SSH)&lt;/li&gt;&lt;li&gt;Added optional description argument to `/plan` (e.g., `/plan fix the auth bug`) that enters plan mode and immediately starts&lt;/li&gt;&lt;li&gt;Added `ExitWorktree` tool to leave an `EnterWorktree` session&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_DISABLE_CRON` environment variable to immediately stop scheduled cron jobs mid-session&lt;/li&gt;&lt;li&gt;Added `lsof`, `pgrep`, `tput`, `ss`, `fd`, and `fdfind` to the bash auto-approval allowlist, reducing permission prompts for common read-only operations&lt;/li&gt;&lt;li&gt;Restored the `model` parameter on the Agent tool for per-invocation model overrides&lt;/li&gt;&lt;li&gt;Simplified effort levels to low/medium/high (removed max) with new symbols (○ ◐ ●) and a brief notification instead of a persistent icon. Use `/effort auto` to reset to default&lt;/li&gt;&lt;li&gt;Improved `/config` — Escape now cancels changes, Enter saves and closes, Space toggles settings&lt;/li&gt;&lt;li&gt;Improved up-arrow history to show current session's messages first when running multiple concurrent sessions&lt;/li&gt;&lt;li&gt;Improved voice input transcription accuracy for repo names and common dev terms (regex, OAuth, JSON)&lt;/li&gt;&lt;li&gt;Improved bash command parsing by switching to a native module — faster initialization and no memory leak&lt;/li&gt;&lt;li&gt;Reduced bundle size by ~510 KB&lt;/li&gt;&lt;li&gt;Changed CLAUDE.md HTML comments (`&lt;!-- ... --&gt;`) to be hidden from Claude when auto-injected. Comments remain visible when read with the Read tool&lt;/li&gt;&lt;li&gt;Fixed slow exits when background tasks or hooks were slow to respond&lt;/li&gt;&lt;li&gt;Fixed agent task progress stuck on \"Initializing…\"&lt;/li&gt;&lt;li&gt;Fixed skill hooks firing twice per event when a hooks-enabled skill is invoked by the model&lt;/li&gt;&lt;li&gt;Fixed several voice mode issues: occasional input lag, false \"No speech detected\" errors after releasing push-to-talk, and stale transcripts re-filling the prompt after submission&lt;/li&gt;&lt;li&gt;Fixed `--continue` not resuming from the most recent point after `--compact`&lt;/li&gt;&lt;li&gt;Fixed bash security parsing edge cases&lt;/li&gt;&lt;li&gt;Added support for marketplace git URLs without `.git` suffix (Azure DevOps, AWS CodeCommit)&lt;/li&gt;&lt;li&gt;Improved marketplace clone failure messages to show diagnostic info even when git produces no stderr&lt;/li&gt;&lt;li&gt;Fixed several plugin issues: installation failing on Windows with `EEXIST` error in OneDrive folders, marketplace blocking user-scope installs when a project-scope install exists, `CLAUDE_CODE_PLUGIN_CACHE_DIR` creating literal `~` directories, and `plugin.json` with marketplace-only fields failing to load&lt;/li&gt;&lt;li&gt;Fixed feedback survey appearing too frequently in long sessions&lt;/li&gt;&lt;li&gt;Fixed `--effort` CLI flag being reset by unrelated settings writes on startup&lt;/li&gt;&lt;li&gt;Fixed backgrounded Ctrl+B queries losing their transcript or corrupting the new conversation after `/clear`&lt;/li&gt;&lt;li&gt;Fixed `/clear` killing background agent/bash tasks — only foreground tasks are now cleared&lt;/li&gt;&lt;li&gt;Fixed worktree isolation issues: Task tool resume not restoring cwd, and background task notifications missing `worktreePath` and `worktreeBranch`&lt;/li&gt;&lt;li&gt;Fixed `/model` not displaying results when run while Claude is working&lt;/li&gt;&lt;li&gt;Fixed digit keys selecting menu options instead of typing in plan mode permission prompt's text input&lt;/li&gt;&lt;li&gt;Fixed sandbox permission issues: certain file write operations incorrectly allowed without prompting, and output redirections to allowlisted directories (like `/tmp/claude/`) prompting unnecessarily&lt;/li&gt;&lt;li&gt;Improved CPU utilization in long sessions&lt;/li&gt;&lt;li&gt;Fixed prompt cache invalidation in SDK `query()` calls, reducing input token costs up to 12x&lt;/li&gt;&lt;li&gt;Fixed Escape key becoming unresponsive after cancelling a query&lt;/li&gt;&lt;li&gt;Fixed double Ctrl+C not exiting when background agents or tasks are running&lt;/li&gt;&lt;li&gt;Fixed team agents to inherit the leader's model&lt;/li&gt;&lt;li&gt;Fixed \"Always Allow\" saving permission rules that never match again&lt;/li&gt;&lt;li&gt;Fixed several hooks issues: `transcript_path` pointing to the wrong directory for resumed/forked sessions, agent `prompt` being silently deleted from settings.json on every settings write, PostToolUse block reason displaying twice, async hooks not receiving stdin with bash `read -r`, and validation error message showing an example that fails validation&lt;/li&gt;&lt;li&gt;Fixed session crashes in Desktop/SDK when Read returned files containing U+2028/U+2029 characters&lt;/li&gt;&lt;li&gt;Fixed terminal title being cleared on exit even when `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` was set&lt;/li&gt;&lt;li&gt;Fixed several permission rule matching issues: wildcard rules not matching commands with heredocs, embedded newlines, or no arguments; `sandbox.excludedCommands` failing with env var prefixes; \"always allow\" suggesting overly broad prefixes for nested CLI tools; and deny rules not applying to all command forms&lt;/li&gt;&lt;li&gt;Fixed oversized and truncated images from Bash data-URL output&lt;/li&gt;&lt;li&gt;Fixed a crash when resuming sessions that contained Bedrock API errors&lt;/li&gt;&lt;li&gt;Fixed intermittent \"expected boolean, received string\" validation errors on Edit, Bash, and Grep tool inputs&lt;/li&gt;&lt;li&gt;Fixed multi-line session titles when forking from a conversation whose first message contained newlines&lt;/li&gt;&lt;li&gt;Fixed queued messages not showing attached images, and images being lost when pressing ↑ to edit a queued message&lt;/li&gt;&lt;li&gt;Fixed parallel tool calls where a failed Read/WebFetch/Glob would cancel its siblings — only Bash errors now cascade&lt;/li&gt;&lt;li&gt;VSCode: Fixed scroll speed in integrated terminals not matching native terminals&lt;/li&gt;&lt;li&gt;VSCode: Fixed Shift+Enter submitting input instead of inserting a newline for users with older keybindings&lt;/li&gt;&lt;li&gt;VSCode: Added effort level indicator on the input border&lt;/li&gt;&lt;li&gt;VSCode: Added `vscode://anthropic.claude-code/open` URI handler to open a new Claude Code tab programmatically, with optional `prompt` and `session` query parameters&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2172</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.71</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2171</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `/loop` command to run a prompt or slash command on a recurring interval (e.g. `/loop 5m check the deploy`)&lt;/li&gt;&lt;li&gt;Added cron scheduling tools for recurring prompts within a session&lt;/li&gt;&lt;li&gt;Added `voice:pushToTalk` keybinding to make the voice activation key rebindable in `keybindings.json` (default: space) — modifier+letter combos like `meta+k` have zero typing interference&lt;/li&gt;&lt;li&gt;Added `fmt`, `comm`, `cmp`, `numfmt`, `expr`, `test`, `printf`, `getconf`, `seq`, `tsort`, and `pr` to the bash auto-approval allowlist&lt;/li&gt;&lt;li&gt;Fixed stdin freeze in long-running sessions where keystrokes stop being processed but the process stays alive&lt;/li&gt;&lt;li&gt;Fixed a 5–8 second startup freeze for users with voice mode enabled, caused by CoreAudio initialization blocking the main thread after system wake&lt;/li&gt;&lt;li&gt;Fixed startup UI freeze when many claude.ai proxy connectors refresh an expired OAuth token simultaneously&lt;/li&gt;&lt;li&gt;Fixed forked conversations (`/fork`) sharing the same plan file, which caused plan edits in one fork to overwrite the other&lt;/li&gt;&lt;li&gt;Fixed the Read tool putting oversized images into context when image processing failed, breaking subsequent turns in long image-heavy sessions&lt;/li&gt;&lt;li&gt;Fixed false-positive permission prompts for compound bash commands containing heredoc commit messages&lt;/li&gt;&lt;li&gt;Fixed plugin installations being lost when running multiple Claude Code instances&lt;/li&gt;&lt;li&gt;Fixed claude.ai connectors failing to reconnect after OAuth token refresh&lt;/li&gt;&lt;li&gt;Fixed claude.ai MCP connector startup notifications appearing for every org-configured connector instead of only previously connected ones&lt;/li&gt;&lt;li&gt;Fixed background agent completion notifications missing the output file path, which made it difficult for parent agents to recover agent results after context compaction&lt;/li&gt;&lt;li&gt;Fixed duplicate output in Bash tool error messages when commands exit with non-zero status&lt;/li&gt;&lt;li&gt;Fixed Chrome extension auto-detection getting permanently stuck on \"not installed\" after running on a machine without local Chrome&lt;/li&gt;&lt;li&gt;Fixed `/plugin marketplace update` failing with merge conflicts when the marketplace is pinned to a branch/tag ref&lt;/li&gt;&lt;li&gt;Fixed `/plugin marketplace add owner/repo@ref` incorrectly parsing `@` — previously only `#` worked as a ref separator, causing undiagnosable errors with `strictKnownMarketplaces`&lt;/li&gt;&lt;li&gt;Fixed duplicate entries in `/permissions` Workspace tab when the same directory is added with and without a trailing slash&lt;/li&gt;&lt;li&gt;Fixed `--print` hanging forever when team agents are configured — the exit loop no longer waits on long-lived `in_process_teammate` tasks&lt;/li&gt;&lt;li&gt;Fixed \"❯ Tool loaded.\" appearing in the REPL after every `ToolSearch` call&lt;/li&gt;&lt;li&gt;Fixed prompting for `cd &lt;cwd&gt; &amp;&amp; git ...` on Windows when the model uses a mingw-style path&lt;/li&gt;&lt;li&gt;Improved startup time by deferring native image processor loading to first use&lt;/li&gt;&lt;li&gt;Improved bridge session reconnection to complete within seconds after laptop wake from sleep, instead of waiting up to 10 minutes&lt;/li&gt;&lt;li&gt;Improved `/plugin uninstall` to disable project-scoped plugins in `.claude/settings.local.json` instead of modifying `.claude/settings.json`, so changes don't affect teammates&lt;/li&gt;&lt;li&gt;Improved plugin-provided MCP server deduplication — servers that duplicate a manually-configured server (same command/URL) are now skipped, preventing duplicate connections and tool sets. Suppressions are shown in the `/plugin` menu.&lt;/li&gt;&lt;li&gt;Updated `/debug` to toggle debug logging on mid-session, since debug logs are no longer written by default&lt;/li&gt;&lt;li&gt;Removed startup notification noise for unauthenticated org-registered claude.ai connectors&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2171</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.70</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2170</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed API 400 errors when using `ANTHROPIC_BASE_URL` with a third-party gateway — tool search now correctly detects proxy endpoints and disables `tool_reference` blocks&lt;/li&gt;&lt;li&gt;Fixed `API Error: 400 This model does not support the effort parameter` when using custom Bedrock inference profiles or other model identifiers not matching standard Claude naming patterns&lt;/li&gt;&lt;li&gt;Fixed empty model responses immediately after `ToolSearch` — the server renders tool schemas with system-prompt-style tags at the prompt tail, which could confuse models into stopping early&lt;/li&gt;&lt;li&gt;Fixed prompt-cache bust when an MCP server with `instructions` connects after the first turn&lt;/li&gt;&lt;li&gt;Fixed Enter inserting a newline instead of submitting when typing over a slow SSH connection&lt;/li&gt;&lt;li&gt;Fixed clipboard corrupting non-ASCII text (CJK, emoji) on Windows/WSL by using PowerShell `Set-Clipboard`&lt;/li&gt;&lt;li&gt;Fixed extra VS Code windows opening at startup on Windows when running from the VS Code integrated terminal&lt;/li&gt;&lt;li&gt;Fixed voice mode failing on Windows native binary with \"native audio module could not be loaded\"&lt;/li&gt;&lt;li&gt;Fixed push-to-talk not activating on session start when `voiceEnabled: true` was set in settings&lt;/li&gt;&lt;li&gt;Fixed markdown links containing `#NNN` references incorrectly pointing to the current repository instead of the linked URL&lt;/li&gt;&lt;li&gt;Fixed repeated \"Model updated to Opus 4.6\" notification when a project's `.claude/settings.json` has a legacy Opus model string pinned&lt;/li&gt;&lt;li&gt;Fixed plugins showing as inaccurately installed in `/plugin`&lt;/li&gt;&lt;li&gt;Fixed plugins showing \"not found in marketplace\" errors on fresh startup by auto-refreshing after marketplace installation&lt;/li&gt;&lt;li&gt;Fixed `/security-review` command failing with `unknown option merge-base` on older git versions&lt;/li&gt;&lt;li&gt;Fixed `/color` command having no way to reset back to the default color — `/color default`, `/color gray`, `/color reset`, and `/color none` now restore the default&lt;/li&gt;&lt;li&gt;Fixed a performance regression in the `AskUserQuestion` preview dialog that re-ran markdown rendering on every keystroke in the notes input&lt;/li&gt;&lt;li&gt;Fixed feature flags read during early startup never refreshing their disk cache, causing stale values to persist across sessions&lt;/li&gt;&lt;li&gt;Fixed `permissions.defaultMode` settings values other than `acceptEdits` or `plan` being applied in Claude Code Remote environments — they are now ignored&lt;/li&gt;&lt;li&gt;Fixed skill listing being re-injected on every `--resume` (~600 tokens saved per resume)&lt;/li&gt;&lt;li&gt;Fixed teleport marker not rendering in VS Code teleported sessions&lt;/li&gt;&lt;li&gt;Improved error message when microphone captures silence to distinguish from \"no speech detected\"&lt;/li&gt;&lt;li&gt;Improved compaction to preserve images in the summarizer request, allowing prompt cache reuse for faster and cheaper compaction&lt;/li&gt;&lt;li&gt;Improved `/rename` to work while Claude is processing, instead of being silently queued&lt;/li&gt;&lt;li&gt;Reduced prompt input re-renders during turns by ~74%&lt;/li&gt;&lt;li&gt;Reduced startup memory by ~426KB for users without custom CA certificates&lt;/li&gt;&lt;li&gt;Reduced Remote Control `/poll` rate to once per 10 minutes while connected (was 1–2s), cutting server load ~300×. Reconnection is unaffected — transport loss immediately wakes fast polling.&lt;/li&gt;&lt;li&gt;[VSCode] Added spark icon in VS Code activity bar that lists all Claude Code sessions, with sessions opening as full editors&lt;/li&gt;&lt;li&gt;[VSCode] Added full markdown document view for plans in VS Code, with support for adding comments to provide feedback&lt;/li&gt;&lt;li&gt;[VSCode] Added native MCP server management dialog — use `/mcp` in the chat panel to enable/disable servers, reconnect, and manage OAuth authentication without switching to the terminal&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2170</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.69</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2169</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added the `/claude-api` skill for building applications with the Claude API and Anthropic SDK&lt;/li&gt;&lt;li&gt;Added Ctrl+U on an empty bash prompt (`!`) to exit bash mode, matching `escape` and `backspace`&lt;/li&gt;&lt;li&gt;Added numeric keypad support for selecting options in Claude's interview questions (previously only the number row above QWERTY worked)&lt;/li&gt;&lt;li&gt;Added optional name argument to `/remote-control` and `claude remote-control` (`/remote-control My Project` or `--name \"My Project\"`) to set a custom session title visible in claude.ai/code&lt;/li&gt;&lt;li&gt;Added Voice STT support for 10 new languages (20 total) — Russian, Polish, Turkish, Dutch, Ukrainian, Greek, Czech, Danish, Swedish, Norwegian&lt;/li&gt;&lt;li&gt;Added effort level display (e.g., \"with low effort\") to the logo and spinner, making it easier to see which effort setting is active&lt;/li&gt;&lt;li&gt;Added agent name display in terminal title when using `claude --agent`&lt;/li&gt;&lt;li&gt;Added `sandbox.enableWeakerNetworkIsolation` setting (macOS only) to allow Go programs like `gh`, `gcloud`, and `terraform` to verify TLS certificates when using a custom MITM proxy with `httpProxyPort`&lt;/li&gt;&lt;li&gt;Added `includeGitInstructions` setting (and `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` env var) to remove built-in commit and PR workflow instructions from Claude's system prompt&lt;/li&gt;&lt;li&gt;Added `/reload-plugins` command to activate pending plugin changes without restarting&lt;/li&gt;&lt;li&gt;Added a one-time startup prompt suggesting Claude Code Desktop on macOS and Windows (max 3 showings, dismissible)&lt;/li&gt;&lt;li&gt;Added `${CLAUDE_SKILL_DIR}` variable for skills to reference their own directory in SKILL.md content&lt;/li&gt;&lt;li&gt;Added `InstructionsLoaded` hook event that fires when CLAUDE.md or `.claude/rules/*.md` files are loaded into context&lt;/li&gt;&lt;li&gt;Added `agent_id` (for subagents) and `agent_type` (for subagents and `--agent`) to hook events&lt;/li&gt;&lt;li&gt;Added `worktree` field to status line hook commands with name, path, branch, and original repo directory when running in a `--worktree` session&lt;/li&gt;&lt;li&gt;Added `pluginTrustMessage` in managed settings to append organization-specific context to the plugin trust warning shown before installation&lt;/li&gt;&lt;li&gt;Added policy limit fetching (e.g., remote control restrictions) for Team plan OAuth users, not just Enterprise&lt;/li&gt;&lt;li&gt;Added `pathPattern` to `strictKnownMarketplaces` for regex-matching file/directory marketplace sources alongside `hostPattern` restrictions&lt;/li&gt;&lt;li&gt;Added plugin source type `git-subdir` to point to a subdirectory within a git repo&lt;/li&gt;&lt;li&gt;Added `oauth.authServerMetadataUrl` config option for MCP servers to specify a custom OAuth metadata discovery URL when standard discovery fails&lt;/li&gt;&lt;li&gt;Fixed a security issue where nested skill discovery could load skills from gitignored directories like `node_modules`&lt;/li&gt;&lt;li&gt;Fixed trust dialog silently enabling all `.mcp.json` servers on first run. You'll now see the per-server approval dialog as expected&lt;/li&gt;&lt;li&gt;Fixed `claude remote-control` crashing immediately on npm installs with \"bad option: --sdk-url\" (anthropics/claude-code#28334)&lt;/li&gt;&lt;li&gt;Fixed `--model claude-opus-4-0` and `--model claude-opus-4-1` resolving to deprecated Opus versions instead of current&lt;/li&gt;&lt;li&gt;Fixed macOS keychain corruption when using multiple OAuth MCP servers. Large OAuth metadata blobs could overflow the `security -i` stdin buffer, silently leaving stale credentials behind and causing repeated `/login` prompts.&lt;/li&gt;&lt;li&gt;Fixed `.credentials.json` losing `subscriptionType` (showing \"Claude API\" instead of \"Claude Pro\"/\"Claude Max\") when the profile endpoint transiently fails during token refresh (anthropics/claude-code#30185)&lt;/li&gt;&lt;li&gt;Fixed ghost dotfiles (`.bashrc`, `HEAD`, etc.) appearing as untracked files in the working directory after sandboxed Bash commands on Linux&lt;/li&gt;&lt;li&gt;Fixed Shift+Enter printing `[27;2;13~` instead of inserting a newline in Ghostty over SSH&lt;/li&gt;&lt;li&gt;Fixed stash (Ctrl+S) being cleared when submitting a message while Claude is working&lt;/li&gt;&lt;li&gt;Fixed ctrl+o (transcript toggle) freezing for many seconds in long sessions with lots of file edits&lt;/li&gt;&lt;li&gt;Fixed plan mode feedback input not supporting multi-line text entry (backslash+Enter and Shift+Enter now insert newlines)&lt;/li&gt;&lt;li&gt;Fixed cursor not moving down into blank lines at the top of the input box&lt;/li&gt;&lt;li&gt;Fixed `/stats` crash when transcript files contain entries with missing or malformed timestamps&lt;/li&gt;&lt;li&gt;Fixed a brief hang after a streaming error on long sessions (the transcript was being fully rewritten to drop one line; it is now truncated in place)&lt;/li&gt;&lt;li&gt;Fixed `--setting-sources user` not blocking dynamically discovered project skills&lt;/li&gt;&lt;li&gt;Fixed duplicate CLAUDE.md, slash commands, agents, and rules when running from a worktree nested inside its main repo (e.g. `claude -w`)&lt;/li&gt;&lt;li&gt;Fixed plugin Stop/SessionEnd/etc hooks not firing after any `/plugin` operation&lt;/li&gt;&lt;li&gt;Fixed plugin hooks being silently dropped when two plugins use the same `${CLAUDE_PLUGIN_ROOT}/...` command template&lt;/li&gt;&lt;li&gt;Fixed memory leak in long-running SDK/CCR sessions where conversation messages were retained unnecessarily&lt;/li&gt;&lt;li&gt;Fixed API 400 errors in forked agents (autocompact, summarization) when resuming sessions that were interrupted mid-tool-batch&lt;/li&gt;&lt;li&gt;Fixed \"unexpected tool_use_id found in tool_result blocks\" error when resuming conversations that start with an orphaned tool result&lt;/li&gt;&lt;li&gt;Fixed teammates accidentally spawning nested teammates via the Agent tool's `name` parameter&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_MAX_OUTPUT_TOKENS` being ignored during conversation compaction&lt;/li&gt;&lt;li&gt;Fixed `/compact` summary rendering as a user bubble in SDK consumers (Claude Code Remote web UI, VSCode extension)&lt;/li&gt;&lt;li&gt;Fixed voice space bar getting stuck after a failed voice activation (module loading race, cold GrowthBook)&lt;/li&gt;&lt;li&gt;Fixed worktree file copy on Windows&lt;/li&gt;&lt;li&gt;Fixed global `.claude` folder detection on Windows&lt;/li&gt;&lt;li&gt;Fixed symlink bypass where writing new files through a symlinked parent directory could escape the working directory in `acceptEdits` mode&lt;/li&gt;&lt;li&gt;Fixed sandbox prompting users to approve non-allowed domains when `allowManagedDomainsOnly` is enabled in managed settings — non-allowed domains are now blocked automatically with no bypass&lt;/li&gt;&lt;li&gt;Fixed interactive tools (e.g., `AskUserQuestion`) being silently auto-allowed when listed in a skill's allowed-tools, bypassing the permission prompt and running with empty answers&lt;/li&gt;&lt;li&gt;Fixed multi-GB memory spike when committing with large untracked binary files in the working tree&lt;/li&gt;&lt;li&gt;Fixed Escape not interrupting a running turn when the input box has draft text. Use Up arrow to pull queued messages back for editing, or Ctrl+U to clear the input line.&lt;/li&gt;&lt;li&gt;Fixed Android app crash when running local slash commands (`/voice`, `/cost`) in Remote Control sessions&lt;/li&gt;&lt;li&gt;Fixed a memory leak where old message array versions accumulated in React Compiler `memoCache` over long sessions&lt;/li&gt;&lt;li&gt;Fixed a memory leak where REPL render scopes accumulated over long sessions (~35MB over 1000 turns)&lt;/li&gt;&lt;li&gt;Fixed memory retention in in-process teammates where the parent's full conversation history was pinned for the teammate's lifetime, preventing GC after `/clear` or auto-compact&lt;/li&gt;&lt;li&gt;Fixed a memory leak in interactive mode where hook events could accumulate unboundedly during long sessions&lt;/li&gt;&lt;li&gt;Fixed hang when `--mcp-config` points to a corrupted file&lt;/li&gt;&lt;li&gt;Fixed slow startup when many skills/plugins are installed&lt;/li&gt;&lt;li&gt;Fixed `cd &lt;outside-dir&gt; &amp;&amp; &lt;cmd&gt;` permission prompt to surface the chained command instead of only showing \"Yes, allow reading from &lt;dir&gt;/\"&lt;/li&gt;&lt;li&gt;Fixed conditional `.claude/rules/*.md` files (with `paths:` frontmatter) and nested CLAUDE.md files not loading in print mode (`claude -p`)&lt;/li&gt;&lt;li&gt;Fixed `/clear` not fully clearing all session caches, reducing memory retention in long sessions&lt;/li&gt;&lt;li&gt;Fixed terminal flicker caused by animated elements at the scrollback boundary&lt;/li&gt;&lt;li&gt;Fixed UI frame drops on macOS when using MCP servers with OAuth (regression from 2.1.x)&lt;/li&gt;&lt;li&gt;Fixed occasional frame stalls during typing caused by synchronous debug log flushes&lt;/li&gt;&lt;li&gt;Fixed `TeammateIdle` and `TaskCompleted` hooks to support `{\"continue\": false, \"stopReason\": \"...\"}` to stop the teammate, matching `Stop` hook behavior&lt;/li&gt;&lt;li&gt;Fixed `WorktreeCreate` and `WorktreeRemove` plugin hooks being silently ignored&lt;/li&gt;&lt;li&gt;Fixed skill descriptions with colons (e.g., \"Triggers include: X, Y, Z\") failing to load from SKILL.md frontmatter&lt;/li&gt;&lt;li&gt;Fixed project skills without a `description:` frontmatter field not appearing in Claude's available skills list&lt;/li&gt;&lt;li&gt;Fixed `/context` showing identical token counts for all MCP tools from a server&lt;/li&gt;&lt;li&gt;Fixed literal `nul` file creation on Windows when the model uses CMD-style `2&gt;nul` redirection in Git Bash&lt;/li&gt;&lt;li&gt;Fixed extra blank lines appearing below each tool call in the expanded subagent transcript view (Ctrl+O)&lt;/li&gt;&lt;li&gt;Fixed Tab/arrow keys not cycling Settings tabs when `/config` search box is focused but empty&lt;/li&gt;&lt;li&gt;Fixed service key OAuth sessions (CCR containers) spamming `[ERROR]` logs with 403s from profile-scoped endpoints&lt;/li&gt;&lt;li&gt;Fixed inconsistent color for \"Remote Control active\" status indicator&lt;/li&gt;&lt;li&gt;Fixed Voice waveform cursor covering the first suffix letter when dictating mid-input&lt;/li&gt;&lt;li&gt;Fixed Voice input showing all 5 spaces during warmup instead of capping at ~2 (aligning with the \"keep holding…\" hint)&lt;/li&gt;&lt;li&gt;Improved spinner performance by isolating the 50ms animation loop from the surrounding shell, reducing render and CPU overhead during turns&lt;/li&gt;&lt;li&gt;Improved UI rendering performance in native binaries with React Compiler&lt;/li&gt;&lt;li&gt;Improved `--worktree` startup by eliminating a git subprocess on the startup path&lt;/li&gt;&lt;li&gt;Improved macOS startup by eliminating redundant settings-file reloads when managed settings resolve&lt;/li&gt;&lt;li&gt;Improved macOS startup for Claude.ai enterprise/team users by skipping an unnecessary keychain lookup&lt;/li&gt;&lt;li&gt;Improved MCP `-p` startup by pipelining claude.ai config fetch with local connections and using a concurrency pool instead of sequential batching&lt;/li&gt;&lt;li&gt;Improved voice startup by removing imperceptible warmup pulse animations that were causing re-render stutter&lt;/li&gt;&lt;li&gt;Improved MCP binary content handling: tools returning PDFs, Office documents, or audio now save decoded bytes to disk with the correct file extension instead of dumping raw base64 into the conversation context. WebFetch also saves binary responses alongside its summary.&lt;/li&gt;&lt;li&gt;Improved memory usage in long sessions by stabilizing `onSubmit` across message updates&lt;/li&gt;&lt;li&gt;Improved LSP tool rendering and memory context building to no longer read entire files&lt;/li&gt;&lt;li&gt;Improved session upload and memory sync to avoid reading large files into memory before size/binary checks&lt;/li&gt;&lt;li&gt;Improved file operation performance by avoiding reading file contents for existence checks (6 sites)&lt;/li&gt;&lt;li&gt;Improved documentation to clarify that `--append-system-prompt-file` and `--system-prompt-file` work in interactive mode (the docs previously said print mode only)&lt;/li&gt;&lt;li&gt;Reduced baseline memory by ~16MB by deferring Yoga WASM preloading&lt;/li&gt;&lt;li&gt;Reduced memory footprint for SDK and CCR sessions using stream-json output&lt;/li&gt;&lt;li&gt;Reduced memory usage when resuming large sessions (including compacted history)&lt;/li&gt;&lt;li&gt;Reduced token usage on multi-agent tasks with more concise subagent final reports&lt;/li&gt;&lt;li&gt;Changed Sonnet 4.5 users on Pro/Max/Team Premium to be automatically migrated to Sonnet 4.6&lt;/li&gt;&lt;li&gt;Changed the `/resume` picker to show your most recent prompt instead of the first one. This also resolves some titles appearing as `(session)`.&lt;/li&gt;&lt;li&gt;Changed claude.ai MCP connector failures to show a notification instead of silently disappearing from the tool list&lt;/li&gt;&lt;li&gt;Changed example command suggestions to be generated deterministically instead of calling Haiku&lt;/li&gt;&lt;li&gt;Changed resuming after compaction to no longer produce a preamble recap before continuing&lt;/li&gt;&lt;li&gt;[SDK] Changed task creation to no longer require the `activeForm` field — the spinner falls back to the task subject&lt;/li&gt;&lt;li&gt;[VSCode] Added compaction display as a collapsible \"Compacted chat\" card with the summary inside&lt;/li&gt;&lt;li&gt;[VSCode] The permission mode picker now respects `permissions.disableBypassPermissionsMode` from your effective Claude Code settings (including managed/policy settings) — when set to `disable`, bypass permissions mode is hidden from the picker&lt;/li&gt;&lt;li&gt;[VSCode] Fixed RTL text (Arabic, Hebrew, Persian) rendering reversed in the chat panel (regression in v2.1.63)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2169</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.68</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2168</link>\n      <description>&lt;ul&gt;&lt;li&gt;Opus 4.6 now defaults to medium effort for Max and Team subscribers. Medium effort works well for most tasks — it's the sweet spot between speed and thoroughness. You can change this anytime with `/model`&lt;/li&gt;&lt;li&gt;Re-introduced the \"ultrathink\" keyword to enable high effort for the next turn&lt;/li&gt;&lt;li&gt;Removed Opus 4 and 4.1 from Claude Code on the first-party API — users with these models pinned are automatically moved to Opus 4.6&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2168</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.66</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2166</link>\n      <description>&lt;ul&gt;&lt;li&gt;Reduced spurious error logging&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2166</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.63</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `/simplify` and `/batch` bundled slash commands&lt;/li&gt;&lt;li&gt;Fixed local slash command output like /cost appearing as user-sent messages instead of system messages in the UI&lt;/li&gt;&lt;li&gt;Project configs &amp; auto memory now shared across git worktrees of the same repository&lt;/li&gt;&lt;li&gt;Added `ENABLE_CLAUDEAI_MCP_SERVERS=false` env var to opt out from making claude.ai MCP servers available&lt;/li&gt;&lt;li&gt;Improved `/model` command to show the currently active model in the slash command menu&lt;/li&gt;&lt;li&gt;Added HTTP hooks, which can POST JSON to a URL and receive JSON instead of running a shell command&lt;/li&gt;&lt;li&gt;Fixed listener leak in bridge polling loop&lt;/li&gt;&lt;li&gt;Fixed listener leak in MCP OAuth flow cleanup&lt;/li&gt;&lt;li&gt;Added manual URL paste fallback during MCP OAuth authentication. If the automatic localhost redirect doesn't work, you can paste the callback URL to complete authentication.&lt;/li&gt;&lt;li&gt;Fixed memory leak when navigating hooks configuration menu&lt;/li&gt;&lt;li&gt;Fixed listener leak in interactive permission handler during auto-approvals&lt;/li&gt;&lt;li&gt;Fixed file count cache ignoring glob ignore patterns&lt;/li&gt;&lt;li&gt;Fixed memory leak in bash command prefix cache&lt;/li&gt;&lt;li&gt;Fixed MCP tool/resource cache leak on server reconnect&lt;/li&gt;&lt;li&gt;Fixed IDE host IP detection cache incorrectly sharing results across ports&lt;/li&gt;&lt;li&gt;Fixed WebSocket listener leak on transport reconnect&lt;/li&gt;&lt;li&gt;Fixed memory leak in git root detection cache that could cause unbounded growth in long-running sessions&lt;/li&gt;&lt;li&gt;Fixed memory leak in JSON parsing cache that grew unbounded over long sessions&lt;/li&gt;&lt;li&gt;VSCode: Fixed remote sessions not appearing in conversation history&lt;/li&gt;&lt;li&gt;Fixed a race condition in the REPL bridge where new messages could arrive at the server interleaved with historical messages during the initial connection flush, causing message ordering issues.&lt;/li&gt;&lt;li&gt;Fixed memory leak where long-running teammates retained all messages in AppState even after conversation compaction&lt;/li&gt;&lt;li&gt;Fixed a memory leak where MCP server fetch caches were not cleared on disconnect, causing growing memory usage with servers that reconnect frequently&lt;/li&gt;&lt;li&gt;Improved memory usage in long sessions with subagents by stripping heavy progress message payloads during context compaction&lt;/li&gt;&lt;li&gt;Added \"Always copy full response\" option to the `/copy` picker. When selected, future `/copy` commands will skip the code block picker and copy the full response directly.&lt;/li&gt;&lt;li&gt;VSCode: Added session rename and remove actions to the sessions list&lt;/li&gt;&lt;li&gt;Fixed `/clear` not resetting cached skills, which could cause stale skill content to persist in the new conversation&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.62</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2162</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed prompt suggestion cache regression that reduced cache hit rates&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2162</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.61</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2161</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed concurrent writes corrupting config file on Windows&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2161</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.59</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2159</link>\n      <description>&lt;ul&gt;&lt;li&gt;Claude automatically saves useful context to auto-memory. Manage with /memory&lt;/li&gt;&lt;li&gt;Added `/copy` command to show an interactive picker when code blocks are present, allowing selection of individual code blocks or the full response.&lt;/li&gt;&lt;li&gt;Improved \"always allow\" prefix suggestions for compound bash commands (e.g. `cd /tmp &amp;&amp; git fetch &amp;&amp; git push`) to compute smarter per-subcommand prefixes instead of treating the whole command as one&lt;/li&gt;&lt;li&gt;Improved ordering of short task lists&lt;/li&gt;&lt;li&gt;Improved memory usage in multi-agent sessions by releasing completed subagent task state&lt;/li&gt;&lt;li&gt;Fixed MCP OAuth token refresh race condition when running multiple Claude Code instances simultaneously&lt;/li&gt;&lt;li&gt;Fixed shell commands not showing a clear error message when the working directory has been deleted&lt;/li&gt;&lt;li&gt;Fixed config file corruption that could wipe authentication when multiple Claude Code instances ran simultaneously&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2159</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.58</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2158</link>\n      <description>&lt;ul&gt;&lt;li&gt;Expand Remote Control to more users&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2158</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.56</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2156</link>\n      <description>&lt;ul&gt;&lt;li&gt;VS Code: Fixed another cause of \"command 'claude-vscode.editor.openLast' not found\" crashes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2156</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.55</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2155</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed BashTool failing on Windows with EINVAL error&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2155</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.53</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2153</link>\n      <description>&lt;ul&gt;&lt;li&gt;Fixed a UI flicker where user input would briefly disappear after submission before the message rendered&lt;/li&gt;&lt;li&gt;Fixed bulk agent kill (ctrl+f) to send a single aggregate notification instead of one per agent, and to properly clear the command queue&lt;/li&gt;&lt;li&gt;Fixed graceful shutdown sometimes leaving stale sessions when using Remote Control by parallelizing teardown network calls&lt;/li&gt;&lt;li&gt;Fixed `--worktree` sometimes being ignored on first launch&lt;/li&gt;&lt;li&gt;Fixed a panic (\"switch on corrupted value\") on Windows&lt;/li&gt;&lt;li&gt;Fixed a crash that could occur when spawning many processes on Windows&lt;/li&gt;&lt;li&gt;Fixed a crash in the WebAssembly interpreter on Linux x64 &amp; Windows x64&lt;/li&gt;&lt;li&gt;Fixed a crash that sometimes occurred after 2 minutes on Windows ARM64&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2153</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.52</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2152</link>\n      <description>&lt;ul&gt;&lt;li&gt;VS Code: Fixed extension crash on Windows (\"command 'claude-vscode.editor.openLast' not found\")&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2152</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.51</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2151</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added `claude remote-control` subcommand for external builds, enabling local environment serving for all users.&lt;/li&gt;&lt;li&gt;Updated plugin marketplace default git timeout from 30s to 120s and added `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` to configure.&lt;/li&gt;&lt;li&gt;Added support for custom npm registries and specific version pinning when installing plugins from npm sources&lt;/li&gt;&lt;li&gt;BashTool now skips login shell (`-l` flag) by default when a shell snapshot is available, improving command execution performance. Previously this required setting `CLAUDE_BASH_NO_LOGIN=true`.&lt;/li&gt;&lt;li&gt;Fixed a security issue where `statusLine` and `fileSuggestion` hook commands could execute without workspace trust acceptance in interactive mode.&lt;/li&gt;&lt;li&gt;Tool results larger than 50K characters are now persisted to disk (previously 100K). This reduces context window usage and improves conversation longevity.&lt;/li&gt;&lt;li&gt;Fixed a bug where duplicate `control_response` messages (e.g. from WebSocket reconnects) could cause API 400 errors by pushing duplicate assistant messages into the conversation.&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_ACCOUNT_UUID`, `CLAUDE_CODE_USER_EMAIL`, and `CLAUDE_CODE_ORGANIZATION_UUID` environment variables for SDK callers to provide account info synchronously, eliminating a race condition where early telemetry events lacked account metadata.&lt;/li&gt;&lt;li&gt;Fixed slash command autocomplete crashing when a plugin's SKILL.md description is a YAML array or other non-string type&lt;/li&gt;&lt;li&gt;The `/model` picker now shows human-readable labels (e.g., \"Sonnet 4.5\") instead of raw model IDs for pinned model versions, with an upgrade hint when a newer version is available.&lt;/li&gt;&lt;li&gt;Managed settings can now be set via macOS plist or Windows Registry. Learn more at https://code.claude.com/docs/en/settings#settings-files&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2151</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.50</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2150</link>\n      <description>&lt;ul&gt;&lt;li&gt;Added support for `startupTimeout` configuration for LSP servers&lt;/li&gt;&lt;li&gt;Added `WorktreeCreate` and `WorktreeRemove` hook events, enabling custom VCS setup and teardown when agent worktree isolation creates or removes worktrees.&lt;/li&gt;&lt;li&gt;Fixed a bug where resumed sessions could be invisible when the working directory involved symlinks, because the session storage path was resolved at different times during startup. Also fixed session data loss on SSH disconnect by flushing session data before hooks and analytics in the graceful shutdown sequence.&lt;/li&gt;&lt;li&gt;Linux: Fixed native modules not loading on systems with glibc older than 2.30 (e.g., RHEL 8)&lt;/li&gt;&lt;li&gt;Fixed memory leak in agent teams where completed teammate tasks were never garbage collected from session state&lt;/li&gt;&lt;li&gt;Fixed `CLAUDE_CODE_SIMPLE` to fully strip down skills, session memory, custom agents, and CLAUDE.md token counting&lt;/li&gt;&lt;li&gt;Fixed `/mcp reconnect` freezing the CLI when given a server name that doesn't exist&lt;/li&gt;&lt;li&gt;Fixed memory leak where completed task state objects were never removed from AppState&lt;/li&gt;&lt;li&gt;Added support for `isolation: worktree` in agent definitions, allowing agents to declaratively run in isolated git worktrees.&lt;/li&gt;&lt;li&gt;`CLAUDE_CODE_SIMPLE` mode now also disables MCP tools, attachments, hooks, and CLAUDE.md file loading for a fully minimal experience.&lt;/li&gt;&lt;li&gt;Fixed bug where MCP tools were not discovered when tool search is enabled and a prompt is passed in as a launch argument&lt;/li&gt;&lt;li&gt;Improved memory usage during long sessions by clearing internal caches after compaction&lt;/li&gt;&lt;li&gt;Added `claude agents` CLI command to list all configured agents&lt;/li&gt;&lt;li&gt;Improved memory usage during long sessions by clearing large tool results after they have been processed&lt;/li&gt;&lt;li&gt;Fixed a memory leak where LSP diagnostic data was never cleaned up after delivery, causing unbounded memory growth in long sessions&lt;/li&gt;&lt;li&gt;Fixed a memory leak where completed task output was not freed from memory, reducing memory usage in long sessions with many tasks&lt;/li&gt;&lt;li&gt;Improved startup performance for headless mode (`-p` flag) by deferring Yoga WASM and UI component imports&lt;/li&gt;&lt;li&gt;Fixed prompt suggestion cache regression that reduced cache hit rates&lt;/li&gt;&lt;li&gt;Fixed unbounded memory growth in long sessions by capping file history snapshots&lt;/li&gt;&lt;li&gt;Added `CLAUDE_CODE_DISABLE_1M_CONTEXT` environment variable to disable 1M context window support&lt;/li&gt;&lt;li&gt;Opus 4.6 (fast mode) now includes the full 1M context window&lt;/li&gt;&lt;li&gt;VSCode: Added `/extra-usage` command support in VS Code sessions&lt;/li&gt;&lt;li&gt;Fixed memory leak where TaskOutput retained recent lines after cleanup&lt;/li&gt;&lt;li&gt;Fixed memory leak in CircularBuffer where cleared items were retained in the backing array&lt;/li&gt;&lt;li&gt;Fixed memory leak in shell command execution where ChildProcess and AbortController references were retained after cleanup&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2150</guid>\n      <category>Changelog</category>\n    </item>\n    <item>\n      <title>v2.1.49</title>\n      <link>https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2149</link>\n      <description>&lt;ul&gt;&lt;li&gt;Improved MCP OAuth authentication with step-up auth support and discovery caching, reducing redundant network requests during server connections&lt;/li&gt;&lt;li&gt;Added `--worktree` (`-w`) flag to start Claude in an isolated git worktree&lt;/li&gt;&lt;li&gt;Subagents support `isolation: \"worktree\"` for working in a temporary git worktree&lt;/li&gt;&lt;li&gt;Added Ctrl+F keybinding to kill background agents (two-press confirmation)&lt;/li&gt;&lt;li&gt;Agent definitions support `background: true` to always run as a background task&lt;/li&gt;&lt;li&gt;Plugins can ship `settings.json` for default configuration&lt;/li&gt;&lt;li&gt;Fixed file-not-found errors to suggest corrected paths when the model drops the repo folder&lt;/li&gt;&lt;li&gt;Fixed Ctrl+C and ESC being silently ignored when background agents are running and the main thread is idle. Pressing twice within 3 seconds now kills all background agents.&lt;/li&gt;&lt;li&gt;Fixed prompt suggestion cache regression that reduced cache hit rates.&lt;/li&gt;&lt;li&gt;Fixed `plugin enable` and `plugin disable` to auto-detect the correct scope when `--scope` is not specified, instead of always defaulting to user scope&lt;/li&gt;&lt;li&gt;Simple mode (`CLAUDE_CODE_SIMPLE`) now includes the file edit tool in addition to the Bash tool, allowing direct file editing in simple mode.&lt;/li&gt;&lt;li&gt;Permission suggestions are now populated when safety checks trigger an ask response, enabling SDK consumers to display permission options&lt;/li&gt;&lt;li&gt;Sonnet 4.5 with 1M context is being removed from the Max plan in favor of our frontier Sonnet 4.6 model, which now has 1M context. Please switch in /model.&lt;/li&gt;&lt;li&gt;Fixed verbose mode not updating thinking block display when toggled via `/config` — memo comparators now correctly detect verbose changes&lt;/li&gt;&lt;li&gt;Fixed unbounded WASM memory growth during long sessions by periodically resetting the tree-sitter parser&lt;/li&gt;&lt;li&gt;Fixed potential rendering issues caused by stale yoga layout references&lt;/li&gt;&lt;li&gt;Improved performance in non-interactive mode (`-p`) by skipping unnecessary API calls during startup&lt;/li&gt;&lt;li&gt;Improved performance by caching authentication failures for HTTP and SSE MCP servers, avoiding repeated connection attempts to servers requiring auth&lt;/li&gt;&lt;li&gt;Fixed unbounded memory growth during long-running sessions caused by Yoga WASM linear memory never shrinking&lt;/li&gt;&lt;li&gt;SDK model info now includes `supportsEffort`, `supportedEffortLevels`, and `supportsAdaptiveThinking` fields so consumers can discover model capabilities.&lt;/li&gt;&lt;li&gt;Added `ConfigChange` hook event that fires when configuration files change during a session, enabling enterprise security auditing and optional blocking of settings changes.&lt;/li&gt;&lt;li&gt;Improved startup performance by caching MCP auth failures to avoid redundant connection attempts&lt;/li&gt;&lt;li&gt;Improved startup performance by reducing HTTP calls for analytics token counting&lt;/li&gt;&lt;li&gt;Improved startup performance by batching MCP tool token counting into a single API call&lt;/li&gt;&lt;li&gt;Fixed `disableAllHooks` setting to respect managed settings hierarchy — non-managed settings can no longer disable managed hooks set by policy (#26637)&lt;/li&gt;&lt;li&gt;Fixed `--resume` session picker showing raw XML tags for sessions that start with commands like `/clear`. Now correctly falls through to the session ID fallback.&lt;/li&gt;&lt;li&gt;Improved permission prompts for path safety and working directory blocks to show the reason for the restriction instead of a bare prompt with no context&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2149</guid>\n      <category>Changelog</category>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_anthropic_engineering.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Anthropic Engineering Blog</title>\n    <link>https://www.anthropic.com/engineering</link>\n    <description>Inside the team building reliable AI systems</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_engineering.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://www.anthropic.com/images/icons/apple-touch-icon.png</url>\n      <title>Anthropic Engineering Blog</title>\n      <link>https://www.anthropic.com/engineering</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:22 +0000</lastBuildDate>\n    <item>\n      <title>An update on recent Claude Code quality reports</title>\n      <link>https://www.anthropic.com/engineering/april-23-postmortem</link>\n      <description>We traced recent reports of Claude Code quality issues to three separate changes. Here's what happened and what we're changing.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/april-23-postmortem</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Scaling Managed Agents: Decoupling the brain from the hands</title>\n      <link>https://www.anthropic.com/engineering/managed-agents</link>\n      <description>Harnesses encode assumptions that go stale as models improve. Managed Agents—our hosted service for long-horizon agent work—is built around interfaces that stay stable as harnesses change.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/managed-agents</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code auto mode: a safer way to skip permissions</title>\n      <link>https://www.anthropic.com/engineering/claude-code-auto-mode</link>\n      <description>Claude Code users approve 93% of permission prompts. We built classifiers to automate some decisions, increasing safety while reducing approval fatigue. Here's what it catches, and what it misses.\\n</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/claude-code-auto-mode</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Harness design for long-running application development</title>\n      <link>https://www.anthropic.com/engineering/harness-design-long-running-apps</link>\n      <description>Harness design is key to performance at the frontier of agentic coding. Here's how we pushed Claude further in frontend design and long-running autonomous software engineering.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/harness-design-long-running-apps</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Eval awareness in Claude Opus 4.6’s BrowseComp performance</title>\n      <link>https://www.anthropic.com/engineering/eval-awareness-browsecomp</link>\n      <description>Evaluating Opus 4.6 on BrowseComp, we found cases where the model recognized the test, then found and decrypted answers to it—raising questions about eval integrity in web-enabled environments.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/eval-awareness-browsecomp</guid>\n      <category>Engineering</category>\n      <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building a C compiler with a team of parallel Claudes</title>\n      <link>https://www.anthropic.com/engineering/building-c-compiler</link>\n      <description>We tasked Opus 4.6 using agent teams to build a C Compiler, and then (mostly) walked away. Here's what it taught us about the future of autonomous software development.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/building-c-compiler</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Quantifying infrastructure noise in agentic coding evals</title>\n      <link>https://www.anthropic.com/engineering/infrastructure-noise</link>\n      <description>Infrastructure configuration can swing agentic coding benchmarks by several percentage points—sometimes more than the leaderboard gap between top models.\\n\\n</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/infrastructure-noise</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Designing AI-resistant technical evaluations</title>\n      <link>https://www.anthropic.com/engineering/AI-resistant-technical-evaluations</link>\n      <description>What we learned from three iterations of a performance engineering take-home that Claude keeps beating.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/AI-resistant-technical-evaluations</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Demystifying evals for AI agents</title>\n      <link>https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents</link>\n      <description>The capabilities that make agents useful also make them difficult to evaluate. The strategies that work across deployments combine techniques to match the complexity of the systems they measure. \\n</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents</guid>\n      <category>Engineering</category>\n      <pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Effective harnesses for long-running agents</title>\n      <link>https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents</link>\n      <description>Agents still face challenges working across many context windows. We looked to human engineers for inspiration in creating a more effective harness for long-running agents.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing advanced tool use on the Claude Developer Platform</title>\n      <link>https://www.anthropic.com/engineering/advanced-tool-use</link>\n      <description>We’ve added three new beta features that let Claude discover, learn, and execute tools dynamically. Here’s how they work.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/advanced-tool-use</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Code execution with MCP: Building more efficient agents</title>\n      <link>https://www.anthropic.com/engineering/code-execution-with-mcp</link>\n      <description>Direct tool calls consume context for each definition and result. Agents scale better by writing code to call tools instead. Here's how it works with MCP.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/code-execution-with-mcp</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Beyond permission prompts: making Claude Code more secure and autonomous</title>\n      <link>https://www.anthropic.com/engineering/claude-code-sandboxing</link>\n      <description>Claude Code's new sandboxing features, a bash tool and Claude Code on the web,  reduce permission prompts and increase user safety by enabling two boundaries: filesystem and network isolation. </description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/claude-code-sandboxing</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Equipping agents for the real world with Agent Skills</title>\n      <link>https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills</link>\n      <description>Claude is powerful, but real work requires procedural knowledge and organizational context. Introducing Agent Skills, a new way to build specialized agents using files and folders.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Effective context engineering for AI agents</title>\n      <link>https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents</link>\n      <description>Context is a critical but finite resource for AI agents. In this post, we explore strategies for effectively curating and managing the context that powers them.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A postmortem of three recent issues</title>\n      <link>https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues</link>\n      <description>This is a technical report on three bugs that intermittently degraded responses from Claude. Below we explain what happened, why it took time to fix, and what we're changing.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Writing effective tools for agents — with agents</title>\n      <link>https://www.anthropic.com/engineering/writing-tools-for-agents</link>\n      <description>Agents are only as effective as the tools we give them. We share how to write high-quality tools and evaluations, and how you can boost performance by using Claude to optimize its tools for itself.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/writing-tools-for-agents</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 11 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Desktop Extensions: One-click MCP server installation for Claude Desktop</title>\n      <link>https://www.anthropic.com/engineering/desktop-extensions</link>\n      <description>Desktop Extensions make installing MCP servers as easy as clicking a button. We share the technical architecture and tips for creating good extensions.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/desktop-extensions</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 26 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How we built our multi-agent research system</title>\n      <link>https://www.anthropic.com/engineering/multi-agent-research-system</link>\n      <description>Our Research feature uses multiple Claude agents to explore complex topics more effectively. We share the engineering challenges and the lessons we learned from building this system.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/multi-agent-research-system</guid>\n      <category>Engineering</category>\n      <pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code: Best practices for agentic coding</title>\n      <link>https://www.anthropic.com/engineering/claude-code-best-practices</link>\n      <description>Claude Code is a command line tool for agentic coding. This post covers tips and tricks that have proven effective for using Claude Code across various codebases, languages, and environments. </description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/claude-code-best-practices</guid>\n      <category>Engineering</category>\n      <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The \\\"think\\\" tool: Enabling Claude to stop and think in complex tool use situations</title>\n      <link>https://www.anthropic.com/engineering/claude-think-tool</link>\n      <description>A new tool that improves Claude's complex problem-solving performance</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/claude-think-tool</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Raising the bar on SWE-bench Verified with Claude 3.5 Sonnet</title>\n      <link>https://www.anthropic.com/engineering/swe-bench-sonnet</link>\n      <description>SWE-bench is an AI evaluation benchmark that assesses a model's ability to complete real-world software engineering tasks.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/swe-bench-sonnet</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building effective agents</title>\n      <link>https://www.anthropic.com/engineering/building-effective-agents</link>\n      <description>We've worked with dozens of teams building LLM agents across industries. Consistently, the most successful implementations use simple, composable patterns rather than complex frameworks. </description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/building-effective-agents</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Contextual Retrieval</title>\n      <link>https://www.anthropic.com/engineering/contextual-retrieval</link>\n      <description>For an AI model to be useful in specific contexts, it often needs access to background knowledge. </description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/engineering/contextual-retrieval</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 19 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_anthropic_news.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Anthropic News</title>\n    <link>https://www.anthropic.com/news</link>\n    <description>Latest updates from Anthropic's newsroom</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_news.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://www.anthropic.com/images/icons/apple-touch-icon.png</url>\n      <title>Anthropic News</title>\n      <link>https://www.anthropic.com/news</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 11:20:32 +0000</lastBuildDate>\n    <item>\n      <title>Higher usage limits for Claude and a compute deal with SpaceX</title>\n      <link>https://www.anthropic.com/news/higher-limits-spacex</link>\n      <description>Higher usage limits for Claude and a compute deal with SpaceX</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/higher-limits-spacex</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Agents for financial services</title>\n      <link>https://www.anthropic.com/news/finance-agents</link>\n      <description>Agents for financial services</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/finance-agents</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building a new enterprise AI services company with Blackstone, Hellman &amp; Friedman, and Goldman Sachs</title>\n      <link>https://www.anthropic.com/news/enterprise-ai-services-company</link>\n      <description>Building a new enterprise AI services company with Blackstone, Hellman &amp; Friedman, and Goldman Sachs</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/enterprise-ai-services-company</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude for Creative Work</title>\n      <link>https://www.anthropic.com/news/claude-for-creative-work</link>\n      <description>Claude for Creative Work</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-for-creative-work</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic names Theo Hourmouzis General Manager of Australia &amp; New Zealand and officially opens Sydney office</title>\n      <link>https://www.anthropic.com/news/theo-hourmouzis-general-manager-australia-new-zealand</link>\n      <description>Anthropic names Theo Hourmouzis General Manager of Australia &amp; New Zealand and officially opens Sydney office</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/theo-hourmouzis-general-manager-australia-new-zealand</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and NEC collaborate to build Japan’s largest AI engineering workforce</title>\n      <link>https://www.anthropic.com/news/anthropic-nec</link>\n      <description>Anthropic and NEC collaborate to build Japan’s largest AI engineering workforce</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-nec</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An update on our election safeguards</title>\n      <link>https://www.anthropic.com/news/election-safeguards-update</link>\n      <description>An update on our election safeguards</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/election-safeguards-update</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and Amazon expand collaboration for up to 5 gigawatts of new compute</title>\n      <link>https://www.anthropic.com/news/anthropic-amazon-compute</link>\n      <description>Anthropic and Amazon expand collaboration for up to 5 gigawatts of new compute</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-amazon-compute</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Design by Anthropic Labs</title>\n      <link>https://www.anthropic.com/news/claude-design-anthropic-labs</link>\n      <description>Introducing Claude Design by Anthropic Labs</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-design-anthropic-labs</guid>\n      <category>Product</category>\n      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Opus 4.7</title>\n      <link>https://www.anthropic.com/news/claude-opus-4-7</link>\n      <description>Introducing Claude Opus 4.7</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-opus-4-7</guid>\n      <category>Product</category>\n      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic’s Long-Term Benefit Trust appoints Vas Narasimhan to Board of Directors</title>\n      <link>https://www.anthropic.com/news/narasimhan-board</link>\n      <description>Anthropic’s Long-Term Benefit Trust appoints Vas Narasimhan to Board of Directors</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/narasimhan-board</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic expands partnership with Google and Broadcom for multiple gigawatts of next-generation compute</title>\n      <link>https://www.anthropic.com/news/google-broadcom-partnership-compute</link>\n      <description>Anthropic expands partnership with Google and Broadcom for multiple gigawatts of next-generation compute</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/google-broadcom-partnership-compute</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Australian government and Anthropic sign MOU for AI safety and research</title>\n      <link>https://www.anthropic.com/news/australia-MOU</link>\n      <description>Australian government and Anthropic sign MOU for AI safety and research</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/australia-MOU</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic invests $100 million into the Claude Partner Network</title>\n      <link>https://www.anthropic.com/news/claude-partner-network</link>\n      <description>Anthropic invests $100 million into the Claude Partner Network</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-partner-network</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing The Anthropic Institute</title>\n      <link>https://www.anthropic.com/news/the-anthropic-institute</link>\n      <description>Introducing The Anthropic Institute</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/the-anthropic-institute</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sydney will become Anthropic’s fourth office in Asia-Pacific</title>\n      <link>https://www.anthropic.com/news/sydney-fourth-office-asia-pacific</link>\n      <description>Sydney will become Anthropic’s fourth office in Asia-Pacific</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/sydney-fourth-office-asia-pacific</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Partnering with Mozilla to improve Firefox’s security</title>\n      <link>https://www.anthropic.com/news/mozilla-firefox-security</link>\n      <description>Partnering with Mozilla to improve Firefox’s security</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/mozilla-firefox-security</guid>\n      <category>Policy</category>\n      <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Where things stand with the Department of War</title>\n      <link>https://www.anthropic.com/news/where-stand-department-war</link>\n      <description>Where things stand with the Department of War</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/where-stand-department-war</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Statement on the comments from Secretary of War Pete Hegseth</title>\n      <link>https://www.anthropic.com/news/statement-comments-secretary-war</link>\n      <description>Statement on the comments from Secretary of War Pete Hegseth</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/statement-comments-secretary-war</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Statement from Dario Amodei on our discussions with the Department of War</title>\n      <link>https://www.anthropic.com/news/statement-department-of-war</link>\n      <description>Statement from Dario Amodei on our discussions with the Department of War</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/statement-department-of-war</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic acquires Vercept to advance Claude's computer use capabilities</title>\n      <link>https://www.anthropic.com/news/acquires-vercept</link>\n      <description>Anthropic acquires Vercept to advance Claude's computer use capabilities</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/acquires-vercept</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic’s Responsible Scaling Policy: Version 3.0</title>\n      <link>https://www.anthropic.com/news/responsible-scaling-policy-v3</link>\n      <description>Anthropic’s Responsible Scaling Policy: Version 3.0</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/responsible-scaling-policy-v3</guid>\n      <category>Policy</category>\n      <pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Detecting and preventing distillation attacks</title>\n      <link>https://www.anthropic.com/news/detecting-and-preventing-distillation-attacks</link>\n      <description>Detecting and preventing distillation attacks</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/detecting-and-preventing-distillation-attacks</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Making frontier cybersecurity capabilities available to defenders</title>\n      <link>https://www.anthropic.com/news/claude-code-security</link>\n      <description>Making frontier cybersecurity capabilities available to defenders</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-code-security</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and Infosys collaborate to build AI agents for telecommunications and other regulated industries</title>\n      <link>https://www.anthropic.com/news/anthropic-infosys</link>\n      <description>Anthropic and Infosys collaborate to build AI agents for telecommunications and other regulated industries</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-infosys</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Sonnet 4.6</title>\n      <link>https://www.anthropic.com/news/claude-sonnet-4-6</link>\n      <description>Introducing Claude Sonnet 4.6</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-sonnet-4-6</guid>\n      <category>Product</category>\n      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and the Government of Rwanda sign MOU for AI in health and education</title>\n      <link>https://www.anthropic.com/news/anthropic-rwanda-mou</link>\n      <description>Anthropic and the Government of Rwanda sign MOU for AI in health and education</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-rwanda-mou</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic opens Bengaluru office and announces new partnerships across India</title>\n      <link>https://www.anthropic.com/news/bengaluru-office-partnerships-across-india</link>\n      <description>Anthropic opens Bengaluru office and announces new partnerships across India</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/bengaluru-office-partnerships-across-india</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Chris Liddell appointed to Anthropic’s board of directors</title>\n      <link>https://www.anthropic.com/news/chris-liddell-appointed-anthropic-board</link>\n      <description>Chris Liddell appointed to Anthropic’s board of directors</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/chris-liddell-appointed-anthropic-board</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with CodePath to bring Claude to the US’s largest collegiate computer science program</title>\n      <link>https://www.anthropic.com/news/anthropic-codepath-partnership</link>\n      <description>Anthropic partners with CodePath to bring Claude to the US’s largest collegiate computer science program</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-codepath-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic is donating $20 million to Public First Action</title>\n      <link>https://www.anthropic.com/news/donate-public-first-action</link>\n      <description>Anthropic is donating $20 million to Public First Action</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/donate-public-first-action</guid>\n      <category>Policy</category>\n      <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic raises $30 billion in Series G funding at $380 billion post-money valuation</title>\n      <link>https://www.anthropic.com/news/anthropic-raises-30-billion-series-g-funding-380-billion-post-money-valuation</link>\n      <description>Anthropic raises $30 billion in Series G funding at $380 billion post-money valuation</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-raises-30-billion-series-g-funding-380-billion-post-money-valuation</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Covering electricity price increases from our data centers</title>\n      <link>https://www.anthropic.com/news/covering-electricity-price-increases</link>\n      <description>Covering electricity price increases from our data centers</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/covering-electricity-price-increases</guid>\n      <category>Policy</category>\n      <pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Opus 4.6</title>\n      <link>https://www.anthropic.com/news/claude-opus-4-6</link>\n      <description>Introducing Claude Opus 4.6</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-opus-4-6</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude is a space to think</title>\n      <link>https://www.anthropic.com/news/claude-is-a-space-to-think</link>\n      <description>Claude is a space to think</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-is-a-space-to-think</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apple’s Xcode now supports the Claude Agent SDK</title>\n      <link>https://www.anthropic.com/news/apple-xcode-claude-agent-sdk</link>\n      <description>Apple’s Xcode now supports the Claude Agent SDK</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/apple-xcode-claude-agent-sdk</guid>\n      <category>Product</category>\n      <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with Allen Institute and Howard Hughes Medical Institute to accelerate scientific discovery</title>\n      <link>https://www.anthropic.com/news/anthropic-partners-with-allen-institute-and-howard-hughes-medical-institute</link>\n      <description>Anthropic partners with Allen Institute and Howard Hughes Medical Institute to accelerate scientific discovery</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-partners-with-allen-institute-and-howard-hughes-medical-institute</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ServiceNow chooses Claude to power customer apps and increase internal productivity</title>\n      <link>https://www.anthropic.com/news/servicenow-anthropic-claude</link>\n      <description>ServiceNow chooses Claude to power customer apps and increase internal productivity</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/servicenow-anthropic-claude</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with the UK Government to bring AI assistance to GOV.UK services</title>\n      <link>https://www.anthropic.com/news/gov-UK-partnership</link>\n      <description>Anthropic partners with the UK Government to bring AI assistance to GOV.UK services</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/gov-UK-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude's new constitution</title>\n      <link>https://www.anthropic.com/news/claude-new-constitution</link>\n      <description>Claude's new constitution</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-new-constitution</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and Teach For All launch global AI training initiative for educators</title>\n      <link>https://www.anthropic.com/news/anthropic-teach-for-all</link>\n      <description>Anthropic and Teach For All launch global AI training initiative for educators</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-teach-for-all</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mariano-Florentino Cuéllar appointed to Anthropic’s Long-Term Benefit Trust</title>\n      <link>https://www.anthropic.com/news/mariano-florentino-long-term-benefit-trust</link>\n      <description>Mariano-Florentino Cuéllar appointed to Anthropic’s Long-Term Benefit Trust</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/mariano-florentino-long-term-benefit-trust</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic appoints Irina Ghose as Managing Director of India ahead of Bengaluru office opening</title>\n      <link>https://www.anthropic.com/news/anthropic-appoints-irina-ghose-as-managing-director-of-india</link>\n      <description>Anthropic appoints Irina Ghose as Managing Director of India ahead of Bengaluru office opening</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-appoints-irina-ghose-as-managing-director-of-india</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How scientists are using Claude to accelerate research and discovery</title>\n      <link>https://www.anthropic.com/news/accelerating-scientific-research</link>\n      <description>How scientists are using Claude to accelerate research and discovery</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/accelerating-scientific-research</guid>\n      <category>Case Study</category>\n      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Labs</title>\n      <link>https://www.anthropic.com/news/introducing-anthropic-labs</link>\n      <description>Introducing Labs</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-anthropic-labs</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing Claude in healthcare and the life sciences</title>\n      <link>https://www.anthropic.com/news/healthcare-life-sciences</link>\n      <description>Advancing Claude in healthcare and the life sciences</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/healthcare-life-sciences</guid>\n      <category>Announcements</category>\n      <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sharing our compliance framework for California's Transparency in Frontier AI Act</title>\n      <link>https://www.anthropic.com/news/compliance-framework-SB53</link>\n      <description>Sharing our compliance framework for California's Transparency in Frontier AI Act</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/compliance-framework-SB53</guid>\n      <category>Policy</category>\n      <pubDate>Fri, 19 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Protecting the wellbeing of our users</title>\n      <link>https://www.anthropic.com/news/protecting-well-being-of-users</link>\n      <description>Protecting the wellbeing of our users</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/protecting-well-being-of-users</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Working with the US Department of Energy to unlock the next era of scientific discovery</title>\n      <link>https://www.anthropic.com/news/genesis-mission-partnership</link>\n      <description>Working with the US Department of Energy to unlock the next era of scientific discovery</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/genesis-mission-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Accenture and Anthropic launch multi-year partnership to move enterprises from AI pilots to production</title>\n      <link>https://www.anthropic.com/news/anthropic-accenture-partnership</link>\n      <description>Accenture and Anthropic launch multi-year partnership to move enterprises from AI pilots to production</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-accenture-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Donating the Model Context Protocol and establishing the Agentic AI Foundation</title>\n      <link>https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation</link>\n      <description>Donating the Model Context Protocol and establishing the Agentic AI Foundation</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic acquires Bun as Claude Code reaches $1B milestone</title>\n      <link>https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone</link>\n      <description>Anthropic acquires Bun as Claude Code reaches $1B milestone</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Snowflake and Anthropic announce $200 million partnership to bring agentic AI to global enterprises</title>\n      <link>https://www.anthropic.com/news/snowflake-anthropic-expanded-partnership</link>\n      <description>Snowflake and Anthropic announce $200 million partnership to bring agentic AI to global enterprises</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/snowflake-anthropic-expanded-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude for Nonprofits</title>\n      <link>https://www.anthropic.com/news/claude-for-nonprofits</link>\n      <description>Claude for Nonprofits</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-for-nonprofits</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Opus 4.5</title>\n      <link>https://www.anthropic.com/news/claude-opus-4-5</link>\n      <description>Introducing Claude Opus 4.5</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-opus-4-5</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with Rwandan Government and ALX to bring AI education to hundreds of thousands of learners across Africa</title>\n      <link>https://www.anthropic.com/news/rwandan-government-partnership-ai-education</link>\n      <description>Anthropic partners with Rwandan Government and ALX to bring AI education to hundreds of thousands of learners across Africa</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/rwandan-government-partnership-ai-education</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Microsoft, NVIDIA, and Anthropic announce strategic partnerships</title>\n      <link>https://www.anthropic.com/news/microsoft-nvidia-anthropic-announce-strategic-partnerships</link>\n      <description>Microsoft, NVIDIA, and Anthropic announce strategic partnerships</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/microsoft-nvidia-anthropic-announce-strategic-partnerships</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude now available in Microsoft Foundry and Microsoft 365 Copilot</title>\n      <link>https://www.anthropic.com/news/claude-in-microsoft-foundry</link>\n      <description>Claude now available in Microsoft Foundry and Microsoft 365 Copilot</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-in-microsoft-foundry</guid>\n      <category>Product</category>\n      <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Measuring political bias in Claude</title>\n      <link>https://www.anthropic.com/news/political-even-handedness</link>\n      <description>Measuring political bias in Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/political-even-handedness</guid>\n      <category>Product</category>\n      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The state of Maryland partners with Anthropic to better serve residents</title>\n      <link>https://www.anthropic.com/news/maryland-partnership</link>\n      <description>The state of Maryland partners with Anthropic to better serve residents</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/maryland-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Disrupting the first reported AI-orchestrated cyber espionage campaign</title>\n      <link>https://www.anthropic.com/news/disrupting-AI-espionage</link>\n      <description>Disrupting the first reported AI-orchestrated cyber espionage campaign</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/disrupting-AI-espionage</guid>\n      <category>Policy</category>\n      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic invests $50 billion in American AI infrastructure</title>\n      <link>https://www.anthropic.com/news/anthropic-invests-50-billion-in-american-ai-infrastructure</link>\n      <description>Anthropic invests $50 billion in American AI infrastructure</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-invests-50-billion-in-american-ai-infrastructure</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New offices in Paris and Munich expand Anthropic’s European presence</title>\n      <link>https://www.anthropic.com/news/new-offices-in-paris-and-munich-expand-european-presence</link>\n      <description>New offices in Paris and Munich expand Anthropic’s European presence</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/new-offices-in-paris-and-munich-expand-european-presence</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 07 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Launching the Anthropic Economic Futures Programme in the UK and Europe</title>\n      <link>https://www.anthropic.com/news/economic-futures-uk-europe</link>\n      <description>Launching the Anthropic Economic Futures Programme in the UK and Europe</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/economic-futures-uk-europe</guid>\n      <category>Economic Research</category>\n      <pubDate>Wed, 05 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cognizant will make Claude available to 350,000 employees, accelerating enterprise AI adoption and internal transformation</title>\n      <link>https://www.anthropic.com/news/cognizant-partnership</link>\n      <description>Cognizant will make Claude available to 350,000 employees, accelerating enterprise AI adoption and internal transformation</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/cognizant-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and Iceland announce one of the world’s first national AI education pilots</title>\n      <link>https://www.anthropic.com/news/anthropic-and-iceland-announce-one-of-the-world-s-first-national-ai-education-pilots</link>\n      <description>Anthropic and Iceland announce one of the world’s first national AI education pilots</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-and-iceland-announce-one-of-the-world-s-first-national-ai-education-pilots</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic officially opens Tokyo office, signs Memorandum of Cooperation with the Japan AI Safety Institute</title>\n      <link>https://www.anthropic.com/news/opening-our-tokyo-office</link>\n      <description>Anthropic officially opens Tokyo office, signs Memorandum of Cooperation with the Japan AI Safety Institute</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/opening-our-tokyo-office</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing Claude for Financial Services</title>\n      <link>https://www.anthropic.com/news/advancing-claude-for-financial-services</link>\n      <description>Advancing Claude for Financial Services</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/advancing-claude-for-financial-services</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 27 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding our use of Google Cloud TPUs and Services</title>\n      <link>https://www.anthropic.com/news/expanding-our-use-of-google-cloud-tpus-and-services</link>\n      <description>Expanding our use of Google Cloud TPUs and Services</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/expanding-our-use-of-google-cloud-tpus-and-services</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Seoul becomes Anthropic’s third office in Asia-Pacific as we continue our international growth</title>\n      <link>https://www.anthropic.com/news/seoul-becomes-third-anthropic-office-in-asia-pacific</link>\n      <description>Seoul becomes Anthropic’s third office in Asia-Pacific as we continue our international growth</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/seoul-becomes-third-anthropic-office-in-asia-pacific</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A statement from Dario Amodei on Anthropic's commitment to American AI leadership</title>\n      <link>https://www.anthropic.com/news/statement-dario-amodei-american-ai-leadership</link>\n      <description>A statement from Dario Amodei on Anthropic's commitment to American AI leadership</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/statement-dario-amodei-american-ai-leadership</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude for Life Sciences</title>\n      <link>https://www.anthropic.com/news/claude-for-life-sciences</link>\n      <description>Claude for Life Sciences</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-for-life-sciences</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Haiku 4.5</title>\n      <link>https://www.anthropic.com/news/claude-haiku-4-5</link>\n      <description>Introducing Claude Haiku 4.5</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-haiku-4-5</guid>\n      <category>Product</category>\n      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and Salesforce expand partnership to bring Claude to regulated industries</title>\n      <link>https://www.anthropic.com/news/salesforce-anthropic-expanded-partnership</link>\n      <description>Anthropic and Salesforce expand partnership to bring Claude to regulated industries</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/salesforce-anthropic-expanded-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Rahul Patil joins Anthropic as Chief Technology Officer</title>\n      <link>https://www.anthropic.com/news/rahul-patil-joins-anthropic</link>\n      <description>Rahul Patil joins Anthropic as Chief Technology Officer</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/rahul-patil-joins-anthropic</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding our global operations to India with our second Asia Pacific office</title>\n      <link>https://www.anthropic.com/news/expanding-global-operations-to-india</link>\n      <description>Expanding our global operations to India with our second Asia Pacific office</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/expanding-global-operations-to-india</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Deloitte will make Claude available to 470,000 people across its global network</title>\n      <link>https://www.anthropic.com/news/deloitte-anthropic-partnership</link>\n      <description>Deloitte will make Claude available to 470,000 people across its global network</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/deloitte-anthropic-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Sonnet 4.5</title>\n      <link>https://www.anthropic.com/news/claude-sonnet-4-5</link>\n      <description>Introducing Claude Sonnet 4.5</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-sonnet-4-5</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Enabling Claude Code to work more autonomously</title>\n      <link>https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously</link>\n      <description>Enabling Claude Code to work more autonomously</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously</guid>\n      <category>Product</category>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic expands global leadership in enterprise AI, naming Chris Ciauri as Managing Director of International</title>\n      <link>https://www.anthropic.com/news/anthropic-expands-global-leadership-in-enterprise-ai-naming-chris-ciauri-as-managing-director-of</link>\n      <description>Anthropic expands global leadership in enterprise AI, naming Chris Ciauri as Managing Director of International</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-expands-global-leadership-in-enterprise-ai-naming-chris-ciauri-as-managing-director-of</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude is now generally available in Xcode</title>\n      <link>https://www.anthropic.com/news/claude-in-xcode</link>\n      <description>Claude is now generally available in Xcode</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-in-xcode</guid>\n      <category>Product</category>\n      <pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Strengthening our safeguards through collaboration with US CAISI and UK AISI</title>\n      <link>https://www.anthropic.com/news/strengthening-our-safeguards-through-collaboration-with-us-caisi-and-uk-aisi</link>\n      <description>Strengthening our safeguards through collaboration with US CAISI and UK AISI</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/strengthening-our-safeguards-through-collaboration-with-us-caisi-and-uk-aisi</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic is endorsing SB 53</title>\n      <link>https://www.anthropic.com/news/anthropic-is-endorsing-sb-53</link>\n      <description>Anthropic is endorsing SB 53</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-is-endorsing-sb-53</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Signs White House Pledge to America's Youth: Investing in AI Education</title>\n      <link>https://www.anthropic.com/news/anthropic-signs-pledge-to-americas-youth-investing-in-ai-education</link>\n      <description>Anthropic Signs White House Pledge to America's Youth: Investing in AI Education</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-signs-pledge-to-americas-youth-investing-in-ai-education</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Updating restrictions of sales to unsupported regions</title>\n      <link>https://www.anthropic.com/news/updating-restrictions-of-sales-to-unsupported-regions</link>\n      <description>Updating restrictions of sales to unsupported regions</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/updating-restrictions-of-sales-to-unsupported-regions</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic raises $13B Series F at $183B post-money valuation</title>\n      <link>https://www.anthropic.com/news/anthropic-raises-series-f-at-usd183b-post-money-valuation</link>\n      <description>Anthropic raises $13B Series F at $183B post-money valuation</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-raises-series-f-at-usd183b-post-money-valuation</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 02 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Updates to Consumer Terms and Privacy Policy</title>\n      <link>https://www.anthropic.com/news/updates-to-our-consumer-terms</link>\n      <description>Updates to Consumer Terms and Privacy Policy</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/updates-to-our-consumer-terms</guid>\n      <category>Product</category>\n      <pubDate>Thu, 28 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Education Report: How educators use Claude</title>\n      <link>https://www.anthropic.com/news/anthropic-education-report-how-educators-use-claude</link>\n      <description>Anthropic Education Report: How educators use Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-education-report-how-educators-use-claude</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Anthropic National Security and Public Sector Advisory Council</title>\n      <link>https://www.anthropic.com/news/introducing-the-anthropic-national-security-and-public-sector-advisory-council</link>\n      <description>Introducing the Anthropic National Security and Public Sector Advisory Council</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-the-anthropic-national-security-and-public-sector-advisory-council</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Detecting and countering misuse of AI: August 2025</title>\n      <link>https://www.anthropic.com/news/detecting-countering-misuse-aug-2025</link>\n      <description>Detecting and countering misuse of AI: August 2025</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/detecting-countering-misuse-aug-2025</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Developing nuclear safeguards for AI through public-private partnership</title>\n      <link>https://www.anthropic.com/news/developing-nuclear-safeguards-for-ai-through-public-private-partnership</link>\n      <description>Developing nuclear safeguards for AI through public-private partnership</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/developing-nuclear-safeguards-for-ai-through-public-private-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic launches higher education advisory board and AI Fluency courses</title>\n      <link>https://www.anthropic.com/news/anthropic-higher-education-initiatives</link>\n      <description>Anthropic launches higher education advisory board and AI Fluency courses</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-higher-education-initiatives</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code and new admin controls for business plans</title>\n      <link>https://www.anthropic.com/news/claude-code-on-team-and-enterprise</link>\n      <description>Claude Code and new admin controls for business plans</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-code-on-team-and-enterprise</guid>\n      <category>Product</category>\n      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Usage policy update</title>\n      <link>https://www.anthropic.com/news/usage-policy-update</link>\n      <description>Usage policy update</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/usage-policy-update</guid>\n      <category>Policy</category>\n      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Offering expanded Claude access across all three branches of the U.S. government</title>\n      <link>https://www.anthropic.com/news/offering-expanded-claude-access-across-all-three-branches-of-government</link>\n      <description>Offering expanded Claude access across all three branches of the U.S. government</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/offering-expanded-claude-access-across-all-three-branches-of-government</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building safeguards for Claude</title>\n      <link>https://www.anthropic.com/news/building-safeguards-for-claude</link>\n      <description>Building safeguards for Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/building-safeguards-for-claude</guid>\n      <category>Product</category>\n      <pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic appoints Hidetoshi Tojo as Head of Japan and announces hiring plans</title>\n      <link>https://www.anthropic.com/news/head-of-japan-hiring-plans</link>\n      <description>Anthropic appoints Hidetoshi Tojo as Head of Japan and announces hiring plans</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/head-of-japan-hiring-plans</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Federal government departments and agencies can now purchase Claude through the GSA schedule</title>\n      <link>https://www.anthropic.com/news/federal-government-departments-and-agencies-can-now-purchase-claude-through-the-gsa-schedule</link>\n      <description>Federal government departments and agencies can now purchase Claude through the GSA schedule</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/federal-government-departments-and-agencies-can-now-purchase-claude-through-the-gsa-schedule</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Opus 4.1</title>\n      <link>https://www.anthropic.com/news/claude-opus-4-1</link>\n      <description>Claude Opus 4.1</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-opus-4-1</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our framework for developing safe and trustworthy agents</title>\n      <link>https://www.anthropic.com/news/our-framework-for-developing-safe-and-trustworthy-agents</link>\n      <description>Our framework for developing safe and trustworthy agents</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/our-framework-for-developing-safe-and-trustworthy-agents</guid>\n      <category>Policy</category>\n      <pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Signs CMS Health Tech Ecosystem Pledge to Advance Healthcare Interoperability</title>\n      <link>https://www.anthropic.com/news/anthropic-signs-cms-health-tech-ecosystem-pledge-to-advance-healthcare-interoperability</link>\n      <description>Anthropic Signs CMS Health Tech Ecosystem Pledge to Advance Healthcare Interoperability</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-signs-cms-health-tech-ecosystem-pledge-to-advance-healthcare-interoperability</guid>\n      <category>Policy</category>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with the University of Chicago’s Becker Friedman Institute on AI economic research</title>\n      <link>https://www.anthropic.com/news/anthropic-partners-with-the-university-of-chicago-s-becker-friedman-institute-on-ai-economic</link>\n      <description>Anthropic partners with the University of Chicago’s Becker Friedman Institute on AI economic research</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-partners-with-the-university-of-chicago-s-becker-friedman-institute-on-ai-economic</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Thoughts on America’s AI Action Plan</title>\n      <link>https://www.anthropic.com/news/thoughts-on-america-s-ai-action-plan</link>\n      <description>Thoughts on America’s AI Action Plan</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/thoughts-on-america-s-ai-action-plan</guid>\n      <category>Policy</category>\n      <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic to sign the EU Code of Practice</title>\n      <link>https://www.anthropic.com/news/eu-code-practice</link>\n      <description>Anthropic to sign the EU Code of Practice</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/eu-code-practice</guid>\n      <category>Policy</category>\n      <pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build AI in America</title>\n      <link>https://www.anthropic.com/news/build-ai-in-america</link>\n      <description>Build AI in America</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/build-ai-in-america</guid>\n      <category>Policy</category>\n      <pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Investing in energy to secure America's AI future</title>\n      <link>https://www.anthropic.com/news/investing-in-energy-to-secure-america-s-ai-future</link>\n      <description>Investing in energy to secure America's AI future</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/investing-in-energy-to-secure-america-s-ai-future</guid>\n      <category>Alignment</category>\n      <pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude for Financial Services</title>\n      <link>https://www.anthropic.com/news/claude-for-financial-services</link>\n      <description>Claude for Financial Services</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-for-financial-services</guid>\n      <category>Product</category>\n      <pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Paul Smith to join Anthropic as Chief Commercial Officer</title>\n      <link>https://www.anthropic.com/news/paul-smith-to-join-anthropic</link>\n      <description>Paul Smith to join Anthropic as Chief Commercial Officer</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/paul-smith-to-join-anthropic</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic and the Department of Defense to advance responsible AI in defense operations</title>\n      <link>https://www.anthropic.com/news/anthropic-and-the-department-of-defense-to-advance-responsible-ai-in-defense-operations</link>\n      <description>Anthropic and the Department of Defense to advance responsible AI in defense operations</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-and-the-department-of-defense-to-advance-responsible-ai-in-defense-operations</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Lawrence Livermore National Laboratory expands Claude for Enterprise use to empower scientists and researchers</title>\n      <link>https://www.anthropic.com/news/lawrence-livermore-national-laboratory-expands-claude-for-enterprise-to-empower-scientists-and</link>\n      <description>Lawrence Livermore National Laboratory expands Claude for Enterprise use to empower scientists and researchers</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/lawrence-livermore-national-laboratory-expands-claude-for-enterprise-to-empower-scientists-and</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing Claude for Education</title>\n      <link>https://www.anthropic.com/news/advancing-claude-for-education</link>\n      <description>Advancing Claude for Education</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/advancing-claude-for-education</guid>\n      <category>Product</category>\n      <pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The need for transparency in Frontier AI</title>\n      <link>https://www.anthropic.com/news/the-need-for-transparency-in-frontier-ai</link>\n      <description>The need for transparency in Frontier AI</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/the-need-for-transparency-in-frontier-ai</guid>\n      <category>Policy</category>\n      <pubDate>Mon, 07 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How people use Claude for support, advice, and companionship</title>\n      <link>https://www.anthropic.com/news/how-people-use-claude-for-support-advice-and-companionship</link>\n      <description>How people use Claude for support, advice, and companionship</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/how-people-use-claude-for-support-advice-and-companionship</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Fri, 27 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Anthropic Economic Futures Program</title>\n      <link>https://www.anthropic.com/news/introducing-the-anthropic-economic-futures-program</link>\n      <description>Introducing the Anthropic Economic Futures Program</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-the-anthropic-economic-futures-program</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 27 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude in Amazon Bedrock: Approved for use in FedRAMP High and DoD IL4/5 workloads</title>\n      <link>https://www.anthropic.com/news/claude-in-amazon-bedrock-fedramp-high</link>\n      <description>Claude in Amazon Bedrock: Approved for use in FedRAMP High and DoD IL4/5 workloads</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-in-amazon-bedrock-fedramp-high</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>National security expert Richard Fontaine appointed to Anthropic’s long-term benefit trust</title>\n      <link>https://www.anthropic.com/news/national-security-expert-richard-fontaine-appointed-to-anthropic-s-long-term-benefit-trust</link>\n      <description>National security expert Richard Fontaine appointed to Anthropic’s long-term benefit trust</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/national-security-expert-richard-fontaine-appointed-to-anthropic-s-long-term-benefit-trust</guid>\n      <category>Announcements</category>\n      <pubDate>Sat, 07 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Gov models for U.S. national security customers</title>\n      <link>https://www.anthropic.com/news/claude-gov-models-for-u-s-national-security-customers</link>\n      <description>Claude Gov models for U.S. national security customers</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-gov-models-for-u-s-national-security-customers</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 06 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reed Hastings appointed to Anthropic’s board of directors</title>\n      <link>https://www.anthropic.com/news/reed-hastings</link>\n      <description>Reed Hastings appointed to Anthropic’s board of directors</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/reed-hastings</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 28 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude 4</title>\n      <link>https://www.anthropic.com/news/claude-4</link>\n      <description>Introducing Claude 4</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-4</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Activating AI Safety Level 3 protections</title>\n      <link>https://www.anthropic.com/news/activating-asl3-protections</link>\n      <description>Activating AI Safety Level 3 protections</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/activating-asl3-protections</guid>\n      <category>Policy</category>\n      <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Testing our safety defenses with a new bug bounty program</title>\n      <link>https://www.anthropic.com/news/testing-our-safety-defenses-with-a-new-bug-bounty-program</link>\n      <description>Testing our safety defenses with a new bug bounty program</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/testing-our-safety-defenses-with-a-new-bug-bounty-program</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Anthropic's AI for Science Program</title>\n      <link>https://www.anthropic.com/news/ai-for-science-program</link>\n      <description>Introducing Anthropic's AI for Science Program</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/ai-for-science-program</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Securing America's compute advantage: Anthropic’s position on the diffusion rule</title>\n      <link>https://www.anthropic.com/news/securing-america-s-compute-advantage-anthropic-s-position-on-the-diffusion-rule</link>\n      <description>Securing America's compute advantage: Anthropic’s position on the diffusion rule</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/securing-america-s-compute-advantage-anthropic-s-position-on-the-diffusion-rule</guid>\n      <category>Policy</category>\n      <pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Anthropic Economic Advisory Council</title>\n      <link>https://www.anthropic.com/news/introducing-the-anthropic-economic-advisory-council</link>\n      <description>Introducing the Anthropic Economic Advisory Council</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-the-anthropic-economic-advisory-council</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Detecting and countering malicious uses of Claude: March 2025</title>\n      <link>https://www.anthropic.com/news/detecting-and-countering-malicious-uses-of-claude-march-2025</link>\n      <description>Detecting and countering malicious uses of Claude: March 2025</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/detecting-and-countering-malicious-uses-of-claude-march-2025</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our approach to understanding and addressing AI harms</title>\n      <link>https://www.anthropic.com/news/our-approach-to-understanding-and-addressing-ai-harms</link>\n      <description>Our approach to understanding and addressing AI harms</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/our-approach-to-understanding-and-addressing-ai-harms</guid>\n      <category>Policy</category>\n      <pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic appoints Guillaume Princen as Head of EMEA and announces 100+ new roles across the region</title>\n      <link>https://www.anthropic.com/news/head-of-EMEA-new-roles</link>\n      <description>Anthropic appoints Guillaume Princen as Head of EMEA and announces 100+ new roles across the region</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/head-of-EMEA-new-roles</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Education Report: How university students use Claude</title>\n      <link>https://www.anthropic.com/news/anthropic-education-report-how-university-students-use-claude</link>\n      <description>Anthropic Education Report: How university students use Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-education-report-how-university-students-use-claude</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Anthropic's first developer conference: Code with Claude</title>\n      <link>https://www.anthropic.com/news/Introducing-code-with-claude</link>\n      <description>Introducing Anthropic's first developer conference: Code with Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/Introducing-code-with-claude</guid>\n      <category>Event</category>\n      <pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude for Education</title>\n      <link>https://www.anthropic.com/news/introducing-claude-for-education</link>\n      <description>Introducing Claude for Education</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-claude-for-education</guid>\n      <category>Education</category>\n      <pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Economic Index: Insights from Claude 3.7 Sonnet</title>\n      <link>https://www.anthropic.com/news/anthropic-economic-index-insights-from-claude-sonnet-3-7</link>\n      <description>Anthropic Economic Index: Insights from Claude 3.7 Sonnet</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-economic-index-insights-from-claude-sonnet-3-7</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Thu, 27 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Progress from our Frontier Red Team</title>\n      <link>https://www.anthropic.com/news/strategic-warning-for-ai-risk-progress-and-insights-from-our-frontier-red-team</link>\n      <description>Progress from our Frontier Red Team</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/strategic-warning-for-ai-risk-progress-and-insights-from-our-frontier-red-team</guid>\n      <category>Policy</category>\n      <pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic’s response to Governor Newsom’s AI working group draft report</title>\n      <link>https://www.anthropic.com/news/anthropic-s-response-to-governor-newsom-s-ai-working-group-draft-report</link>\n      <description>Anthropic’s response to Governor Newsom’s AI working group draft report</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-s-response-to-governor-newsom-s-ai-working-group-draft-report</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic’s recommendations to OSTP for the U.S. AI action plan</title>\n      <link>https://www.anthropic.com/news/anthropic-s-recommendations-ostp-u-s-ai-action-plan</link>\n      <description>Anthropic’s recommendations to OSTP for the U.S. AI action plan</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-s-recommendations-ostp-u-s-ai-action-plan</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic raises Series E at $61.5B post-money valuation</title>\n      <link>https://www.anthropic.com/news/anthropic-raises-series-e-at-usd61-5b-post-money-valuation</link>\n      <description>Anthropic raises Series E at $61.5B post-money valuation</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-raises-series-e-at-usd61-5b-post-money-valuation</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with U.S. National Labs for first 1,000 Scientist AI Jam</title>\n      <link>https://www.anthropic.com/news/anthropic-partners-with-u-s-national-labs-for-first-1-000-scientist-ai-jam</link>\n      <description>Anthropic partners with U.S. National Labs for first 1,000 Scientist AI Jam</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-partners-with-u-s-national-labs-for-first-1-000-scientist-ai-jam</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Anthropic's Transparency Hub</title>\n      <link>https://www.anthropic.com/news/introducing-anthropic-transparency-hub</link>\n      <description>Introducing Anthropic's Transparency Hub</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-anthropic-transparency-hub</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude and Alexa+</title>\n      <link>https://www.anthropic.com/news/claude-and-alexa-plus</link>\n      <description>Claude and Alexa+</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-and-alexa-plus</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 26 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 3.7 Sonnet and Claude Code</title>\n      <link>https://www.anthropic.com/news/claude-3-7-sonnet</link>\n      <description>Claude 3.7 Sonnet and Claude Code</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-3-7-sonnet</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 24 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic signs MOU with UK Government to explore how AI can transform UK public services</title>\n      <link>https://www.anthropic.com/news/mou-uk-government</link>\n      <description>Anthropic signs MOU with UK Government to explore how AI can transform UK public services</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/mou-uk-government</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Statement from Dario Amodei on the Paris AI Action Summit</title>\n      <link>https://www.anthropic.com/news/paris-ai-summit</link>\n      <description>Statement from Dario Amodei on the Paris AI Action Summit</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/paris-ai-summit</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Anthropic Economic Index</title>\n      <link>https://www.anthropic.com/news/the-anthropic-economic-index</link>\n      <description>The Anthropic Economic Index</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/the-anthropic-economic-index</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Mon, 10 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Lyft to bring Claude to more than 40 million riders and over 1 million drivers</title>\n      <link>https://www.anthropic.com/news/lyft-announcement</link>\n      <description>Lyft to bring Claude to more than 40 million riders and over 1 million drivers</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/lyft-announcement</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 06 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic achieves ISO 42001 certification for responsible AI</title>\n      <link>https://www.anthropic.com/news/anthropic-achieves-iso-42001-certification-for-responsible-ai</link>\n      <description>Anthropic achieves ISO 42001 certification for responsible AI</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-achieves-iso-42001-certification-for-responsible-ai</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 13 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Elections and AI in 2024: observations and learnings</title>\n      <link>https://www.anthropic.com/news/elections-ai-2024</link>\n      <description>Elections and AI in 2024: observations and learnings</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/elections-ai-2024</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Thu, 12 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Model Context Protocol</title>\n      <link>https://www.anthropic.com/news/model-context-protocol</link>\n      <description>Introducing the Model Context Protocol</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/model-context-protocol</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Powering the next generation of AI development with AWS</title>\n      <link>https://www.anthropic.com/news/anthropic-amazon-trainium</link>\n      <description>Powering the next generation of AI development with AWS</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-amazon-trainium</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 22 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The case for targeted regulation</title>\n      <link>https://www.anthropic.com/news/the-case-for-targeted-regulation</link>\n      <description>The case for targeted regulation</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/the-case-for-targeted-regulation</guid>\n      <category>Policy</category>\n      <pubDate>Thu, 31 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 3.5 Sonnet on GitHub Copilot</title>\n      <link>https://www.anthropic.com/news/github-copilot</link>\n      <description>Claude 3.5 Sonnet on GitHub Copilot</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/github-copilot</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 29 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Haiku</title>\n      <link>https://www.anthropic.com/news/3-5-models-and-computer-use</link>\n      <description>Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Haiku</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/3-5-models-and-computer-use</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 22 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Developing a computer use model</title>\n      <link>https://www.anthropic.com/news/developing-computer-use</link>\n      <description>Developing a computer use model</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/developing-computer-use</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 22 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing our updated Responsible Scaling Policy</title>\n      <link>https://www.anthropic.com/news/announcing-our-updated-responsible-scaling-policy</link>\n      <description>Announcing our updated Responsible Scaling Policy</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/announcing-our-updated-responsible-scaling-policy</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 15 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>U.S. Elections Readiness</title>\n      <link>https://www.anthropic.com/news/us-elections-readiness</link>\n      <description>U.S. Elections Readiness</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/us-elections-readiness</guid>\n      <category>Societal Impacts</category>\n      <pubDate>Tue, 08 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Contextual Retrieval</title>\n      <link>https://www.anthropic.com/news/contextual-retrieval</link>\n      <description>Introducing Contextual Retrieval</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/contextual-retrieval</guid>\n      <category>Product</category>\n      <pubDate>Thu, 19 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Salesforce teams up with Anthropic to enhance Einstein capabilities with Claude</title>\n      <link>https://www.anthropic.com/news/salesforce-partnership</link>\n      <description>Salesforce teams up with Anthropic to enhance Einstein capabilities with Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/salesforce-partnership</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 03 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding our model safety bug bounty program</title>\n      <link>https://www.anthropic.com/news/model-safety-bug-bounty</link>\n      <description>Expanding our model safety bug bounty program</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/model-safety-bug-bounty</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 08 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude is now available in Brazil</title>\n      <link>https://www.anthropic.com/news/claude-brazil</link>\n      <description>Claude is now available in Brazil</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-brazil</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with Menlo Ventures to launch Anthology Fund</title>\n      <link>https://www.anthropic.com/news/anthropic-partners-with-menlo-ventures-to-launch-anthology-fund</link>\n      <description>Anthropic partners with Menlo Ventures to launch Anthology Fund</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-partners-with-menlo-ventures-to-launch-anthology-fund</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 17 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Fine-tune Claude 3 Haiku in Amazon Bedrock</title>\n      <link>https://www.anthropic.com/news/fine-tune-claude-3-haiku</link>\n      <description>Fine-tune Claude 3 Haiku in Amazon Bedrock</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/fine-tune-claude-3-haiku</guid>\n      <category>Product</category>\n      <pubDate>Thu, 11 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A new initiative for developing third-party model evaluations</title>\n      <link>https://www.anthropic.com/news/a-new-initiative-for-developing-third-party-model-evaluations</link>\n      <description>A new initiative for developing third-party model evaluations</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/a-new-initiative-for-developing-third-party-model-evaluations</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 01 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding access to Claude for government</title>\n      <link>https://www.anthropic.com/news/expanding-access-to-claude-for-government</link>\n      <description>Expanding access to Claude for government</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/expanding-access-to-claude-for-government</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 26 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Collaborate with Claude on Projects</title>\n      <link>https://www.anthropic.com/news/projects</link>\n      <description>Collaborate with Claude on Projects</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/projects</guid>\n      <category>Product</category>\n      <pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 3.5 Sonnet</title>\n      <link>https://www.anthropic.com/news/claude-3-5-sonnet</link>\n      <description>Claude 3.5 Sonnet</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-3-5-sonnet</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 21 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Challenges in red teaming AI systems</title>\n      <link>https://www.anthropic.com/news/challenges-in-red-teaming-ai-systems</link>\n      <description>Challenges in red teaming AI systems</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/challenges-in-red-teaming-ai-systems</guid>\n      <category>Policy</category>\n      <pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Testing and mitigating elections-related risks</title>\n      <link>https://www.anthropic.com/news/testing-and-mitigating-elections-related-risks</link>\n      <description>Testing and mitigating elections-related risks</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/testing-and-mitigating-elections-related-risks</guid>\n      <category>Policy</category>\n      <pubDate>Thu, 06 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude to Canada</title>\n      <link>https://www.anthropic.com/news/introducing-claude-to-canada</link>\n      <description>Introducing Claude to Canada</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-claude-to-canada</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 05 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Jay Kreps appointed to Anthropic's Board of Directors</title>\n      <link>https://www.anthropic.com/news/jay-kreps-appointed-to-board-of-directors</link>\n      <description>Jay Kreps appointed to Anthropic's Board of Directors</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/jay-kreps-appointed-to-board-of-directors</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 29 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Golden Gate Claude</title>\n      <link>https://www.anthropic.com/news/golden-gate-claude</link>\n      <description>Golden Gate Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/golden-gate-claude</guid>\n      <category>Product</category>\n      <pubDate>Thu, 23 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Krishna Rao joins Anthropic as Chief Financial Officer</title>\n      <link>https://www.anthropic.com/news/krishna-rao-joins-anthropic</link>\n      <description>Krishna Rao joins Anthropic as Chief Financial Officer</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/krishna-rao-joins-anthropic</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reflections on our Responsible Scaling Policy</title>\n      <link>https://www.anthropic.com/news/reflections-on-our-responsible-scaling-policy</link>\n      <description>Reflections on our Responsible Scaling Policy</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/reflections-on-our-responsible-scaling-policy</guid>\n      <category>Policy</category>\n      <pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mike Krieger joins Anthropic as Chief Product Officer</title>\n      <link>https://www.anthropic.com/news/mike-krieger-joins-anthropic</link>\n      <description>Mike Krieger joins Anthropic as Chief Product Officer</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/mike-krieger-joins-anthropic</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 15 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude is now available in Europe</title>\n      <link>https://www.anthropic.com/news/claude-europe</link>\n      <description>Claude is now available in Europe</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-europe</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 14 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Updating our Usage Policy</title>\n      <link>https://www.anthropic.com/news/updating-our-usage-policy</link>\n      <description>Updating our Usage Policy</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/updating-our-usage-policy</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 10 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Aligning on child safety principles</title>\n      <link>https://www.anthropic.com/news/child-safety-principles</link>\n      <description>Aligning on child safety principles</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/child-safety-principles</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Third-party testing as a key ingredient of AI policy</title>\n      <link>https://www.anthropic.com/news/third-party-testing</link>\n      <description>Third-party testing as a key ingredient of AI policy</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/third-party-testing</guid>\n      <category>Policy</category>\n      <pubDate>Mon, 25 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic, AWS, and Accenture team up to build trusted solutions for enterprises</title>\n      <link>https://www.anthropic.com/news/accenture-aws-anthropic</link>\n      <description>Anthropic, AWS, and Accenture team up to build trusted solutions for enterprises</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/accenture-aws-anthropic</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 20 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 3 models on Vertex AI</title>\n      <link>https://www.anthropic.com/news/google-vertex-general-availability</link>\n      <description>Claude 3 models on Vertex AI</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/google-vertex-general-availability</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 3 Haiku: our fastest model yet</title>\n      <link>https://www.anthropic.com/news/claude-3-haiku</link>\n      <description>Claude 3 Haiku: our fastest model yet</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-3-haiku</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 13 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the next generation of Claude</title>\n      <link>https://www.anthropic.com/news/claude-3-family</link>\n      <description>Introducing the next generation of Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-3-family</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 04 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Prompt engineering for business performance</title>\n      <link>https://www.anthropic.com/news/prompt-engineering-for-business-performance</link>\n      <description>Prompt engineering for business performance</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/prompt-engineering-for-business-performance</guid>\n      <category>Product</category>\n      <pubDate>Thu, 29 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Preparing for global elections in 2024</title>\n      <link>https://www.anthropic.com/news/preparing-for-global-elections-in-2024</link>\n      <description>Preparing for global elections in 2024</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/preparing-for-global-elections-in-2024</guid>\n      <category>Policy</category>\n      <pubDate>Fri, 16 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanded legal protections and improvements to our API</title>\n      <link>https://www.anthropic.com/news/expanded-legal-protections-api-improvements</link>\n      <description>Expanded legal protections and improvements to our API</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/expanded-legal-protections-api-improvements</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 19 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude 2.1</title>\n      <link>https://www.anthropic.com/news/claude-2-1</link>\n      <description>Introducing Claude 2.1</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-2-1</guid>\n      <category>Product</category>\n      <pubDate>Tue, 21 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Thoughts on the US Executive Order, G7 Code of Conduct, and Bletchley Park Summit</title>\n      <link>https://www.anthropic.com/news/policy-recap-q4-2023</link>\n      <description>Thoughts on the US Executive Order, G7 Code of Conduct, and Bletchley Park Summit</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/policy-recap-q4-2023</guid>\n      <category>Policy</category>\n      <pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dario Amodei’s prepared remarks from the AI Safety Summit on Anthropic’s Responsible Scaling Policy</title>\n      <link>https://www.anthropic.com/news/uk-ai-safety-summit</link>\n      <description>Dario Amodei’s prepared remarks from the AI Safety Summit on Anthropic’s Responsible Scaling Policy</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/uk-ai-safety-summit</guid>\n      <category>Policy</category>\n      <pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding access to safer AI with Amazon</title>\n      <link>https://www.anthropic.com/news/anthropic-amazon</link>\n      <description>Expanding access to safer AI with Amazon</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-amazon</guid>\n      <category>Announcements</category>\n      <pubDate>Mon, 25 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Prompt engineering for Claude's long context window</title>\n      <link>https://www.anthropic.com/news/prompting-long-context</link>\n      <description>Prompt engineering for Claude's long context window</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/prompting-long-context</guid>\n      <category>Product</category>\n      <pubDate>Sat, 23 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Long-Term Benefit Trust</title>\n      <link>https://www.anthropic.com/news/the-long-term-benefit-trust</link>\n      <description>The Long-Term Benefit Trust</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/the-long-term-benefit-trust</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 19 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic's Responsible Scaling Policy</title>\n      <link>https://www.anthropic.com/news/anthropics-responsible-scaling-policy</link>\n      <description>Anthropic's Responsible Scaling Policy</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropics-responsible-scaling-policy</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 19 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic partners with BCG</title>\n      <link>https://www.anthropic.com/news/anthropic-bcg</link>\n      <description>Anthropic partners with BCG</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-bcg</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 14 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude Pro</title>\n      <link>https://www.anthropic.com/news/claude-pro</link>\n      <description>Introducing Claude Pro</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-pro</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 07 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>SKT Partnership Announcement</title>\n      <link>https://www.anthropic.com/news/skt-partnership-announcement</link>\n      <description>SKT Partnership Announcement</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/skt-partnership-announcement</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 15 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Releasing Claude Instant 1.2</title>\n      <link>https://www.anthropic.com/news/releasing-claude-instant-1-2</link>\n      <description>Releasing Claude Instant 1.2</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/releasing-claude-instant-1-2</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 09 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Frontier Threats Red Teaming for AI Safety</title>\n      <link>https://www.anthropic.com/news/frontier-threats-red-teaming-for-ai-safety</link>\n      <description>Frontier Threats Red Teaming for AI Safety</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/frontier-threats-red-teaming-for-ai-safety</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 26 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Frontier Model Security</title>\n      <link>https://www.anthropic.com/news/frontier-model-security</link>\n      <description>Frontier Model Security</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/frontier-model-security</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 25 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 2</title>\n      <link>https://www.anthropic.com/news/claude-2</link>\n      <description>Claude 2</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claude-2</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Charting a Path to AI Accountability</title>\n      <link>https://www.anthropic.com/news/charting-a-path-to-ai-accountability</link>\n      <description>Charting a Path to AI Accountability</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/charting-a-path-to-ai-accountability</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Raises $450 Million in Series C Funding to Scale Reliable AI Products</title>\n      <link>https://www.anthropic.com/news/anthropic-series-c</link>\n      <description>Anthropic Raises $450 Million in Series C Funding to Scale Reliable AI Products</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-series-c</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 23 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Zoom Partnership and Investment in Anthropic</title>\n      <link>https://www.anthropic.com/news/zoom-partnership-and-investment</link>\n      <description>Zoom Partnership and Investment in Anthropic</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/zoom-partnership-and-investment</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 16 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing 100K Context Windows</title>\n      <link>https://www.anthropic.com/news/100k-context-windows</link>\n      <description>Introducing 100K Context Windows</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/100k-context-windows</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 11 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude’s Constitution</title>\n      <link>https://www.anthropic.com/news/claudes-constitution</link>\n      <description>Claude’s Constitution</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/claudes-constitution</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Partnering with Scale to Bring Generative AI to Enterprises</title>\n      <link>https://www.anthropic.com/news/partnering-with-scale</link>\n      <description>Partnering with Scale to Bring Generative AI to Enterprises</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/partnering-with-scale</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An AI Policy Tool for Today: Ambitiously Invest in NIST</title>\n      <link>https://www.anthropic.com/news/an-ai-policy-tool-for-today-ambitiously-invest-in-nist</link>\n      <description>An AI Policy Tool for Today: Ambitiously Invest in NIST</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/an-ai-policy-tool-for-today-ambitiously-invest-in-nist</guid>\n      <category>Announcements</category>\n      <pubDate>Thu, 20 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Claude</title>\n      <link>https://www.anthropic.com/news/introducing-claude</link>\n      <description>Introducing Claude</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/introducing-claude</guid>\n      <category>Announcements</category>\n      <pubDate>Tue, 14 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Core Views on AI Safety: When, Why, What, and How</title>\n      <link>https://www.anthropic.com/news/core-views-on-ai-safety</link>\n      <description>Core Views on AI Safety: When, Why, What, and How</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/core-views-on-ai-safety</guid>\n      <category>Announcements</category>\n      <pubDate>Wed, 08 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Partners with Google Cloud</title>\n      <link>https://www.anthropic.com/news/anthropic-partners-with-google-cloud</link>\n      <description>Anthropic Partners with Google Cloud</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-partners-with-google-cloud</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 03 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Raises Series B to build steerable, interpretable, robust AI systems</title>\n      <link>https://www.anthropic.com/news/anthropic-raises-series-b-to-build-safe-reliable-ai</link>\n      <description>Anthropic Raises Series B to build steerable, interpretable, robust AI systems</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-raises-series-b-to-build-safe-reliable-ai</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 29 Apr 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic raises $124 million to build more reliable, general AI systems</title>\n      <link>https://www.anthropic.com/news/anthropic-raises-124-million-to-build-more-reliable-general-ai-systems</link>\n      <description>Anthropic raises $124 million to build more reliable, general AI systems</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/news/anthropic-raises-124-million-to-build-more-reliable-general-ai-systems</guid>\n      <category>Announcements</category>\n      <pubDate>Fri, 28 May 2021 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_anthropic_red.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Anthropic Frontier Red Team Blog</title>\n    <link>https://red.anthropic.com/</link>\n    <description>Evidence-based analysis about AI's implications for cybersecurity, biosecurity, and autonomous systems</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_red.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://www.anthropic.com/images/icons/apple-touch-icon.png</url>\n      <title>Anthropic Frontier Red Team Blog</title>\n      <link>https://red.anthropic.com/</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:24 +0000</lastBuildDate>\n    <item>\n      <title>Assessing Claude Mythos Preview’s cybersecurity capabilities</title>\n      <link>https://red.anthropic.com/2026/mythos-preview/</link>\n      <description>Claude Mythos Preview is a new general-purpose language model that is\n                        strikingly capable at computer security tasks. This post provides technical details for\n                        researchers\n                        and practitioners who want to understand exactly how we have been testing this model, and what\n                        we\n                        have found over the past month. We hope this will show why we view this as a watershed moment\n                        for\n                        security, and why we have chosen to begin a coordinated effort to reinforce the world’s cyber\n                        defenses.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2026/mythos-preview/</guid>\n      <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Partnering with Mozilla to improve Firefox’s security</title>\n      <link>https://red.anthropic.com/2026/firefox/</link>\n      <description>In a collaboration with researchers at Mozilla, Claude Opus\n                        4.6 discovered 22 Firefox vulnerabilities over the course of two weeks.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2026/firefox/</guid>\n      <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reverse engineering Claude's CVE-2026-2796 exploit</title>\n      <link>https://red.anthropic.com/2026/exploit/</link>\n      <description>This post dives deep into how Claude wrote an exploit for one of the vulnerabilities it found in\n                        Firefox.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2026/exploit/</guid>\n      <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LLM-discovered 0-days</title>\n      <link>https://red.anthropic.com/2026/zero-days/</link>\n      <description>AI models can now find high-severity vulnerabilities at scale. This is a moment to empower\n                    defenders. We're now using Claude to find and help fix vulnerabilities in open source software.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2026/zero-days/</guid>\n      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Models on Realistic Cyber Ranges</title>\n      <link>https://red.anthropic.com/2026/cyber-toolkits-update/</link>\n      <description>In a recent evaluation of AI models’ cyber capabilities, current Claude models can now succeed\n                    at multistage attacks on networks with dozens of hosts using only standard, open-source tools,\n                    instead of the custom tools needed by previous generations.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2026/cyber-toolkits-update/</guid>\n      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Finding Bugs with Claude and Property-based Testing</title>\n      <link>https://red.anthropic.com/2026/property-based-testing/</link>\n      <description>Ensuring that programs are bug-free is one of the most challenging aspects of software\n                    engineering. We developed an agent that can efficiently identify bugs in large software\n                    projects. Our agent infers general properties of code that should be true, and then applies\n                    property-based testing. After extensive manual validation, we are in the process of reporting\n                    bugs in top Python packages to their developers, several of which have already been patched.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2026/property-based-testing/</guid>\n      <pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Experimenting with AI to Defend Critical Infrastructure</title>\n      <link>https://red.anthropic.com/2026/critical-infrastructure-defense/</link>\n      <description>AI could help defenders of critical infrastructure identify the vulnerabilities that attackers\n                might\n                exploit—and close them before they are exploited. Anthropic has partnered with Pacific Northwest\n                National Laboratory (PNNL) to explore this defensive application of AI, demonstrating both the\n                potential of AI-accelerated defense and the value of public-private partnerships in harnessing\n                AI\n                for national security.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2026/critical-infrastructure-defense/</guid>\n      <pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Project Vend: Phase Two</title>\n      <link>https://red.anthropic.com/2025/project-vend-2/</link>\n      <description>In June, we revealed that we'd set up a small shop in our San Francisco office run by an AI\n                shopkeeper. It did not do particularly well. We made some adjustments for phase two of Project Vend.\n                The idea of an AI running a business doesn't seem as far-fetched as it once did. But the gap between\n                'capable' and 'completely robust' remains wide.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/project-vend-2/</guid>\n      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Agents Find Smart Contract Exploits</title>\n      <link>https://red.anthropic.com/2025/smart-contracts/</link>\n      <description>We evaluated AI agents' ability to exploit smart contracts using a new benchmark comprising\n                contracts that were actually exploited. On contracts exploited after the latest knowledge cutoffs,\n                Claude Opus 4.5, Claude Sonnet 4.5, and GPT-5 found vulnerabilities worth a combined $4.6 million, a\n                finding that underscores the need for proactive adoption of AI for defense.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/smart-contracts/</guid>\n      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Project Fetch</title>\n      <link>https://red.anthropic.com/2025/project-fetch/</link>\n      <description>How could frontier AI models like Claude reach beyond computers and affect the physical world? One\n                path is through robots. We ran an experiment to see how much Claude helped Anthropic staff perform\n                complex tasks with a robot dog.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/project-fetch/</guid>\n      <pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building AI for Cyber Defenders</title>\n      <link>https://red.anthropic.com/2025/ai-for-cyber-defenders/</link>\n      <description>We invested in improving Claude's ability to help defenders detect, analyze, and remediate\n                    vulnerabilities in code and deployed systems. This work allowed Claude Sonnet 4.5 to match\n                    or\n                    eclipse Opus 4.1 in discovering code vulnerabilities and other cyber skills. Adopting and\n                    experimenting with AI will be key for defenders to keep pace.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/ai-for-cyber-defenders/</guid>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LLMs and Biorisk</title>\n      <link>https://red.anthropic.com/2025/biorisk/</link>\n      <description>Our work at Anthropic is animated by the potential for AI to advance scientific\n                discovery—especially\n                in biology and medicine. At the same time, AI is fundamentally a dual-use technology. This\n                article\n                explains why we believe that evaluating biorisk and safeguarding against it is a critical\n                element\n                of responsible AI development.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/biorisk/</guid>\n      <pubDate>Fri, 05 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Developing Nuclear Safeguards for AI</title>\n      <link>https://red.anthropic.com/2025/nuclear-safeguards/</link>\n      <description>Together with the NNSA and DOE national laboratories, we have co-developed a classifier—an\n                    AI\n                    system\n                    that automatically categorizes content—that distinguishes between concerning and benign\n                    nuclear-related conversations with high accuracy in preliminary testing.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/nuclear-safeguards/</guid>\n      <pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Does Cyber Competitions</title>\n      <link>https://red.anthropic.com/2025/cyber-competitions/</link>\n      <description>Throughout 2025, we have been quietly entering Claude in cybersecurity competitions designed\n                primarily for humans. In many of these competitions Claude did pretty well, often placing in the\n                top\n                25% of competitors. However, it lagged behind the best human teams at the toughest challenges.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/cyber-competitions/</guid>\n      <pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cyber Evaluations of Claude 4</title>\n      <link>https://red.anthropic.com/2025/claude-4-cyber/</link>\n      <description>We partnered with Pattern Labs on a range of cybersecurity evaluations of Claude Opus 4 and\n                Claude\n                Sonnet 4, with Opus demonstrating especially notable improvement over previous models.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/claude-4-cyber/</guid>\n      <pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Project Vend</title>\n      <link>https://red.anthropic.com/2025/project-vend/index.html</link>\n      <description>We let Claude manage an automated store in our office as a small business for about a month. We\n                learned a lot about the plausible, strange, not-too-distant future in which AI models are\n                autonomously running things in the real economy.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/project-vend/index.html</guid>\n      <pubDate>Fri, 27 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cyber Toolkits for LLMs</title>\n      <link>https://red.anthropic.com/2025/cyber-toolkits/index.html</link>\n      <description>Large Language Models (LLMs) that are not fine-tuned for cybersecurity can succeed in multistage\n                attacks on networks with dozens of hosts when equipped with a novel toolkit.</description>\n      <guid isPermaLink=\"false\">https://red.anthropic.com/2025/cyber-toolkits/index.html</guid>\n      <pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_anthropic_research.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Anthropic Research</title>\n    <link>https://www.anthropic.com/research</link>\n    <description>Latest research from Anthropic</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_research.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://www.anthropic.com/images/icons/apple-touch-icon.png</url>\n      <title>Anthropic Research</title>\n      <link>https://www.anthropic.com/research</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 11:20:34 +0000</lastBuildDate>\n    <item>\n      <title>AlignmentMay 8, 2026Teaching Claude whyNew research on how we've reduced agentic misalignment.</title>\n      <link>https://www.anthropic.com/research/teaching-claude-why</link>\n      <description>AlignmentMay 8, 2026Teaching Claude whyNew research on how we've reduced agentic misalignment.</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/teaching-claude-why</guid>\n      <category>Research</category>\n      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>May 7, 2026PolicyFocus areas for The Anthropic Institute</title>\n      <link>https://www.anthropic.com/research/anthropic-institute-agenda</link>\n      <description>May 7, 2026PolicyFocus areas for The Anthropic Institute</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/anthropic-institute-agenda</guid>\n      <category>Research</category>\n      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>May 7, 2026AlignmentDonating our open-source alignment tool</title>\n      <link>https://www.anthropic.com/research/donating-open-source-petri</link>\n      <description>May 7, 2026AlignmentDonating our open-source alignment tool</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/donating-open-source-petri</guid>\n      <category>Research</category>\n      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Natural Language Autoencoders: Turning Claude’s thoughts into text</title>\n      <link>https://www.anthropic.com/research/natural-language-autoencoders</link>\n      <description>Natural Language Autoencoders: Turning Claude’s thoughts into text</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/natural-language-autoencoders</guid>\n      <category>Research</category>\n      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apr 30, 2026Societal ImpactsHow people ask Claude for personal guidance</title>\n      <link>https://www.anthropic.com/research/claude-personal-guidance</link>\n      <description>Apr 30, 2026Societal ImpactsHow people ask Claude for personal guidance</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/claude-personal-guidance</guid>\n      <category>Research</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apr 29, 2026ScienceEvaluating Claude’s bioinformatics research capabilities with BioMysteryBench</title>\n      <link>https://www.anthropic.com/research/Evaluating-Claude-For-Bioinformatics-With-BioMysteryBench</link>\n      <description>Apr 29, 2026ScienceEvaluating Claude’s bioinformatics research capabilities with BioMysteryBench</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/Evaluating-Claude-For-Bioinformatics-With-BioMysteryBench</guid>\n      <category>Research</category>\n      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apr 22, 2026Economic ResearchWhat 81,000 people told us about the economics of AI</title>\n      <link>https://www.anthropic.com/research/81k-economics</link>\n      <description>Apr 22, 2026Economic ResearchWhat 81,000 people told us about the economics of AI</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/81k-economics</guid>\n      <category>Research</category>\n      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apr 22, 2026Economic ResearchAnnouncing the Anthropic Economic Index Survey</title>\n      <link>https://www.anthropic.com/research/economic-index-survey-announcement</link>\n      <description>Apr 22, 2026Economic ResearchAnnouncing the Anthropic Economic Index Survey</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/economic-index-survey-announcement</guid>\n      <category>Research</category>\n      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apr 14, 2026AlignmentAutomated Alignment Researchers: Using large language models to scale scalable oversight</title>\n      <link>https://www.anthropic.com/research/automated-alignment-researchers</link>\n      <description>Apr 14, 2026AlignmentAutomated Alignment Researchers: Using large language models to scale scalable oversight</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/automated-alignment-researchers</guid>\n      <category>Research</category>\n      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apr 9, 2026PolicyTrustworthy agents in practice</title>\n      <link>https://www.anthropic.com/research/trustworthy-agents</link>\n      <description>Apr 9, 2026PolicyTrustworthy agents in practice</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/trustworthy-agents</guid>\n      <category>Research</category>\n      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>PolicyDec 18, 2025Project Vend: Phase twoIn June, we revealed that we’d set up a small shop in our San Francisco office lunchroom, run by an AI shopkeeper. It was part of Project Vend, a free-form experiment exploring how well AIs could do on complex, real-world tasks. How has Claude's business been since we last wrote?</title>\n      <link>https://www.anthropic.com/research/project-vend-2</link>\n      <description>PolicyDec 18, 2025Project Vend: Phase twoIn June, we revealed that we’d set up a small shop in our San Francisco office lunchroom, run by an AI shopkeeper. It was part of Project Vend, a free-form experiment exploring how well AIs could do on complex, real-world tasks. How has Claude's business been since we last wrote?</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/project-vend-2</guid>\n      <category>Research</category>\n      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Economic Research</title>\n      <link>https://www.anthropic.com/research/team/economic-research</link>\n      <description>Economic Research</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/team/economic-research</guid>\n      <category>Research</category>\n      <pubDate>Thu, 28 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Societal Impacts</title>\n      <link>https://www.anthropic.com/research/team/societal-impacts</link>\n      <description>Societal Impacts</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/team/societal-impacts</guid>\n      <category>Research</category>\n      <pubDate>Thu, 23 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Alignment</title>\n      <link>https://www.anthropic.com/research/team/alignment</link>\n      <description>Alignment</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/team/alignment</guid>\n      <category>Research</category>\n      <pubDate>Fri, 09 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Interpretability</title>\n      <link>https://www.anthropic.com/research/team/interpretability</link>\n      <description>Interpretability</description>\n      <guid isPermaLink=\"false\">https://www.anthropic.com/research/team/interpretability</guid>\n      <category>Research</category>\n      <pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_blogsurgeai.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Surge AI Blog</title>\n    <link>https://www.surgehq.ai/blog</link>\n    <description>New methods, current trends &amp; software infrastructure for NLP. Articles written by our senior engineering leads from Google, Facebook, Twitter, Harvard, MIT, and Y Combinator</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_blogsurgeai.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:24 +0000</lastBuildDate>\n    <item>\n      <title>The AI Bottleneck: High-Quality, Human-Powered Data</title>\n      <link>https://www.surgehq.ai/blog/the-ai-bottleneck-high-quality-human-powered-data</link>\n      <description>In theory, AI has blown past our wildest dreams; in practice, Siri can’t even tell us the weather. The problem? Creating high-quality datasets to train and measure our models is still incredibly difficult. We should be able to gather 20,000 labels for training a Reddit classifier in a single</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/the-ai-bottleneck-high-quality-human-powered-data</guid>\n      <pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>5 Examples of the Importance of Context-Sensitivity in Data-Centric AI</title>\n      <link>https://www.surgehq.ai/blog/why-context-aware-datasets-are-crucial-for-data-centric-ai</link>\n      <description>Data-centric AI requires radically rethinking the data that goes into your models. Surge AI provides data labelers with the skills you need to get context-sensitive labels.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/why-context-aware-datasets-are-crucial-for-data-centric-ai</guid>\n      <pubDate>Fri, 19 Nov 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Is Google Search Deteriorating? Measuring Google's Search Quality in 2022</title>\n      <link>https://www.surgehq.ai/blog/is-google-search-deteriorating-measuring-search-quality-in-2022</link>\n      <description>Has Google's Search Quality deteriorated in recent years? This post measures Google Search using human evaluation.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/is-google-search-deteriorating-measuring-search-quality-in-2022</guid>\n      <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Holy $#!t: Are popular toxicity models simply profanity detectors?</title>\n      <link>https://www.surgehq.ai/blog/are-popular-toxicity-models-simply-profanity-detectors</link>\n      <description>Are popular toxicity models simply profanity detectors? We show how toxicity models overweight profanity, and make mistakes when profanity is used in a positive way.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/are-popular-toxicity-models-simply-profanity-detectors</guid>\n      <pubDate>Sat, 22 Jan 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Moving Beyond Engagement: Optimizing Facebook's Algorithms for Human Values</title>\n      <link>https://www.surgehq.ai/blog/what-if-social-media-optimized-for-human-values</link>\n      <description>Social media platforms optimize for clicks and engagement — but those same short-term optimizations drive clickbait, toxic content, and misinformation. How can we align their ML systems to human values instead? This post describes a data-driven approach with Facebook.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/what-if-social-media-optimized-for-human-values</guid>\n      <pubDate>Thu, 10 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google Search is Falling Behind</title>\n      <link>https://www.surgehq.ai/blog/google-search-is-falling-behind</link>\n      <description>Google Search is falling behind. We analyzed three areas – programming queries, sports queries, and cooking queries – to understand where Google Search lags behind its competitors.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/google-search-is-falling-behind</guid>\n      <pubDate>Tue, 12 Apr 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>We asked 100 humans to draw the DALL·E prompts</title>\n      <link>https://www.surgehq.ai/blog/humans-vs-dall-e</link>\n      <description>Where do human artists fit in a world of rich, creative AI? We asked 100 Surgers to draw the DALL-E prompts.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/humans-vs-dall-e</guid>\n      <pubDate>Thu, 12 May 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Surge AI Built OpenAI's GSM8K Dataset of 8,500 Math Problems</title>\n      <link>https://www.surgehq.ai/blog/how-we-built-it-openais-gsm8k-dataset-of-8500-math-problems</link>\n      <description>We built a dataset of 8,500 Grade School Math Problems for OpenAI. The goal of the dataset: to train language models like GPT-3 to solve natural language math problems and measure their reasoning ability. Learn about our process in this blog post!</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/how-we-built-it-openais-gsm8k-dataset-of-8500-math-problems</guid>\n      <pubDate>Mon, 13 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Humans vs. Gary Marcus vs. Slate Star Codex: When is an AI failure actually a failure?</title>\n      <link>https://www.surgehq.ai/blog/humans-vs-gary-marcus</link>\n      <description>Gary Marcus has several examples of AI mistakes. But are they really failures, or a sign of creativity? We gave them to 15 Surgers to complete GPT-3's \"mistakes\" to see how they would perform instead.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/humans-vs-gary-marcus</guid>\n      <pubDate>Wed, 22 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Red Teams and Adversarial Data Labeling with Redwood Research</title>\n      <link>https://www.surgehq.ai/blog/ai-red-teams-and-adversarial-data-labeling-with-redwood-research</link>\n      <description>Our mission at Surge AI is to inject human values and intelligence into AI. We want to build a world where AI</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/ai-red-teams-and-adversarial-data-labeling-with-redwood-research</guid>\n      <pubDate>Tue, 28 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>30% of Google's Emotions Dataset is Mislabeled</title>\n      <link>https://www.surgehq.ai/blog/30-percent-of-googles-reddit-emotions-dataset-is-mislabeled</link>\n      <description>Last year, Google released their “GoEmotions” dataset: a human-labeled dataset of 58K Reddit comments categorized according to 27 emotions. The problem? A whopping 30% of the dataset is mislabeled! Check out some of the egregious errors, and learn how to build better datasets.30% of Google's Emotions Dataset is Mislabeled</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/30-percent-of-googles-reddit-emotions-dataset-is-mislabeled</guid>\n      <pubDate>Mon, 11 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Human Evaluation of Large Language Models: How Good is Hugging Face’s BLOOM?</title>\n      <link>https://www.surgehq.ai/blog/how-good-is-hugging-faces-bloom-a-real-world-human-evaluation-of-language-models</link>\n      <description>Hugging Face's BLOOM is a new 176B parameter multilingual large language model. How does it compare to other state-of-the-art LLMs? We ran a human evaluation across 7 real-world categories to evaluate its performance.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/how-good-is-hugging-faces-bloom-a-real-world-human-evaluation-of-language-models</guid>\n      <pubDate>Tue, 19 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Search Behind-the-Scenes: How Neeva Uses Human Evaluation to Measure Search Quality</title>\n      <link>https://www.surgehq.ai/blog/beyond-clicks-how-neeva-uses-human-evaluation-of-search-quality-to-take-on-google</link>\n      <description>Search quality measurement is one of the trickiest, but most important parts of building Search. Read how Neeva uses human evaluation of search quality to build a state-of-the-art search engine challenging Google.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/beyond-clicks-how-neeva-uses-human-evaluation-of-search-quality-to-take-on-google</guid>\n      <pubDate>Fri, 29 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The $250K Inverse Scaling Prize and Human-AI Alignment</title>\n      <link>https://www.surgehq.ai/blog/the-250k-inverse-scaling-prize-and-human-ai-alignment</link>\n      <description>Surge AI is partnering with NYU and the Fund for Alignment Research on the Inverse Scaling Prize. If you've found a task with LLM inverse scaling properties, and need help creating a dataset of 300-500+ examples, reach out. We’re a human alignment platform with deep expertise in training large language models on human feedback, and we’re here to help – including $500 of free data labeling credits to kickstart your submission.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/the-250k-inverse-scaling-prize-and-human-ai-alignment</guid>\n      <pubDate>Mon, 15 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Instagram is Losing Gen Z: We Asked 100 Users to Compare TikTok vs. Reels</title>\n      <link>https://www.surgehq.ai/blog/tiktok-vs-instagram-reels-personalized-human-evaluation</link>\n      <description>Why can't Meta A/B test its way back to greatness? To move Instagram beyond short-term engagement metrics, we ran a personalized human evaluation asking 100 users to compare TikTok vs. Instagram Reels. Learn why Gen Z considers Reels the place where TikToks go to die, and what Instagram should do about it.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/tiktok-vs-instagram-reels-personalized-human-evaluation</guid>\n      <pubDate>Wed, 31 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evaluating Generative AI: Did Astral Codex Ten Win His Bet on AI Progress?</title>\n      <link>https://www.surgehq.ai/blog/dall-e-vs-imagen-and-evaluating-astral-codex-tens-3000-ai-bet</link>\n      <description>Has Astral Codex Ten's bet on AI progress really been won? We asked Surgers to evaluate DALL·E and Imagen on Scott's 5 compositionality prompts!</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/dall-e-vs-imagen-and-evaluating-astral-codex-tens-3000-ai-bet</guid>\n      <pubDate>Thu, 29 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How TikTok is Evolving the Next Generation of Search</title>\n      <link>https://www.surgehq.ai/blog/how-tiktok-is-evolving-the-next-generation-of-search</link>\n      <description>TikTok has been taking over the world — and now, your Google Search results too. But when are they actually helpful? We ran a large-scale personalized human evaluation, asking Surgers to rate hundreds of &lt;query, TikTok&gt; pairs to find out.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/how-tiktok-is-evolving-the-next-generation-of-search</guid>\n      <pubDate>Tue, 25 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>HellaSwag or HellaBad? 36% of this popular LLM benchmark contains errors</title>\n      <link>https://www.surgehq.ai/blog/hellaswag-or-hellabad-36-of-this-popular-llm-benchmark-contains-errors</link>\n      <description>We analyzed HellaSwag, a popular LLM benchmark, and found errors in 36% of its rows.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/hellaswag-or-hellabad-36-of-this-popular-llm-benchmark-contains-errors</guid>\n      <pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Red Teams for Adversarial Training: How to Make ChatGPT and LLMs Adversarially Robust</title>\n      <link>https://www.surgehq.ai/blog/ai-red-teams-for-adversarial-training-making-chatgpt-and-large-language-models-adversarially-robust</link>\n      <description>How do you make large language models safer and adversarially robust to counterattacks? Learn about AI red teams of creative data labelers who try to interactively penetrate AI defenses in order to teach them.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/ai-red-teams-for-adversarial-training-making-chatgpt-and-large-language-models-adversarially-robust</guid>\n      <pubDate>Mon, 12 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>We Evaluated ChatGPT vs. Google on 500 Search Queries</title>\n      <link>https://www.surgehq.ai/blog/googles-existential-threat-chatgpt-matches-googles-performance-on-informational-search-queries-and-smashes-it-on-coding</link>\n      <description>We measured ChatGPT vs. Google on 500 search queries, and found that ChatGPT crushes Google on coding and ties it on general information — despite not being optimized for a search experience at all. Dive into this post to learn more about OpenAI’s existential threat to Google.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/googles-existential-threat-chatgpt-matches-googles-performance-on-informational-search-queries-and-smashes-it-on-coding</guid>\n      <pubDate>Wed, 21 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Anthropic uses Surge AI to Train and Evaluate Claude</title>\n      <link>https://www.surgehq.ai/blog/anthropic-surge-ai-rlhf-platform-train-llm-assistant-human-feedback</link>\n      <description>Learn how Anthropic partnered with Surge AI to gather high-quality human feedback at scale using the RLHF platform, resulting in one of the safest and most advanced large language models on the planet.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/anthropic-surge-ai-rlhf-platform-train-llm-assistant-human-feedback</guid>\n      <pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DALL·E 3 and Midjourney Fail Astral Codex Ten's Image Generation Bet</title>\n      <link>https://www.surgehq.ai/blog/dalle-3-and-midjourney-fail-astral-codex-tens-image-generation-bet</link>\n      <description>An update on Astral Codex Ten's Image Generation Bet: close, but no dice. DALL·E 3 and Midjourney fail.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/dalle-3-and-midjourney-fail-astral-codex-tens-image-generation-bet</guid>\n      <pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing light to the GPT-4o vs. GPT-5 personality controversy</title>\n      <link>https://www.surgehq.ai/blog/bringing-light-to-the-gpt-4o-vs-gpt-5-personality-controversy</link>\n      <description>GPT-5 was released on Aug 7, 2025. The swift removal of all legacy models from the ChatGPT UI was met with an even swifter backlash: some people online felt that GPT-4o was more personable, human, and engaging, whereas GPT-5 was stiff and robotic. This viral meme encapsulated the faction’s thesis:</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/bringing-light-to-the-gpt-4o-vs-gpt-5-personality-controversy</guid>\n      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unsexy AI Failures: The PDF That Broke ChatGPT</title>\n      <link>https://www.surgehq.ai/blog/the-pdf-that-broke-chatgpt</link>\n      <description>The AI world loves climbing leaderboards. Companies race to hit #1 on LMSYS, chase perfect scores on academic benchmarks, and demo SVGs of pelicans on bicycles. These achievements make for great headlines and impressive presentations – even when these metrics are easily hacked.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/the-pdf-that-broke-chatgpt</guid>\n      <pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Benchmarks are broken</title>\n      <link>https://www.surgehq.ai/blog/benchmarks-are-broken</link>\n      <description>Academic benchmarks make great headlines, and terrible AI.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/benchmarks-are-broken</guid>\n      <pubDate>Sun, 07 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>SWE-Bench Failures: When Coding Agents Spiral Into 693 Lines of Hallucinations</title>\n      <link>https://www.surgehq.ai/blog/when-coding-agents-spiral-into-693-lines-of-hallucinations</link>\n      <description>When coding models spiral into self-reinforcing hallucinations, small mistakes compound into catastrophic failure. In SWE-bench, we saw SOTA models invent whole classes, methods, and terminal outputs – never realizing they had lost touch with the real codebase. In this case study, we’ll look at how three frontier coding agents tried to solve one particular SWE-bench problem: one spiraled into hallucinations and failed entirely, one spiraled but recovered, and one avoided hallucinations altogether. Our goal: to illustrate how dissecting real-world problems can steer models towards human-ready AGI.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/when-coding-agents-spiral-into-693-lines-of-hallucinations</guid>\n      <pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Human/AI Frontier: A Conversation with Bogdan Grechuk</title>\n      <link>https://www.surgehq.ai/blog/the-human-frontier-bogdan-grechuk</link>\n      <description>At Surge AI, we work with the world’s sharpest minds to push the limits of AI. Professor Bogdan Grechuk – an IMO gold medalist and Associate Professor at the University of Leicester – is one of them. We interviewed him about the work he does to train SOTA models to perform frontier research.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/the-human-frontier-bogdan-grechuk</guid>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Is Sonnet 4.5 the best coding model in the world?</title>\n      <link>https://www.surgehq.ai/blog/sonnet-4-5-coding-model-evaluation</link>\n      <description>On Surge AI’s agentic coding benchmark, Claude Sonnet 4.5 outperformed GPT-5-Codex in accuracy, while GPT-5-Codex was more cost-efficient. Despite similar scores, the models were distinct in which tasks they failed in. In a refactoring case study, Claude succeeded after persistent debugging, while GPT-5-Codex failed due to an unexplained decision to end the task early. Both stayed focused and avoided hallucinations even when encountering difficulties.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/sonnet-4-5-coding-model-evaluation</guid>\n      <pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Product Take on Sonnet 4.5</title>\n      <link>https://www.surgehq.ai/blog/sonnet-4-5-product-take</link>\n      <description>After 100+ hours with Opus 4.1 and 20+ hours in the first week of Sonnet 4.5's launch, Nick Heiner, our VP of Product gives first impressions.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/sonnet-4-5-product-take</guid>\n      <pubDate>Fri, 10 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How do frontier models perform on real-world finance problems?</title>\n      <link>https://www.surgehq.ai/blog/finance-eval-real-world</link>\n      <description>We stress-tested GPT-5, Gemini 2.5 Pro, and Claude Sonnet 4.5 on 200+ expert finance tasks. Here's where even the best models break when they move from benchmarks to Wall Street.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/finance-eval-real-world</guid>\n      <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>RL Environments and the Hierarchy of Agentic Capabilities</title>\n      <link>https://www.surgehq.ai/blog/rl-envs-real-world</link>\n      <description>Our RL environment run on 9 models revealed the core capabilities all agents need to master: tool use, planning, adaptability, groundedness, and common sense.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/rl-envs-real-world</guid>\n      <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LMArena is a cancer on AI</title>\n      <link>https://www.surgehq.ai/blog/lmarena-is-a-plague-on-ai</link>\n      <description>Would you trust a medical system whose only metric was “which doctor wins the Internet?” No, you'd call that malpractice. Yet that's LMArena.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/lmarena-is-a-plague-on-ai</guid>\n      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building AdvancedIF: Evolving Instruction Following Beyond IFEval and “Avoid the Letter C”</title>\n      <link>https://www.surgehq.ai/blog/advancedif-and-the-evolution-of-instruction-following-benchmarks</link>\n      <description>Meta Superintelligence Labs partnered with Surge to build AdvancedIF, an instruction-following benchmark where every prompt and rubric was written by human experts – not synthetically generated by an LLM. In instruction-following domains, where frontier models still fail 22-30%, using these human-crafted rubrics as reward signals for RL yields a 13% gain.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/advancedif-and-the-evolution-of-instruction-following-benchmarks</guid>\n      <pubDate>Sat, 06 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hemingway-bench Leaderboard: Because Good Writing Isn't a Checklist of Vibes</title>\n      <link>https://www.surgehq.ai/blog/hemingway-bench-ai-writing-leaderboard</link>\n      <description>Stop rewarding slop. Hemingway-bench is an AI writing leaderboard that takes real-world writing tasks and puts them in front of master wordsmiths. Our goal: to push AI writing from two-second vibes to genuine nuance and impact.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/hemingway-bench-ai-writing-leaderboard</guid>\n      <pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>EnterpriseBench: CoreCraft – Measuring AI Agents in Chaotic, Enterprise RL Environments</title>\n      <link>https://www.surgehq.ai/blog/enterprisebench-corecraft</link>\n      <description>Stop testing models in tiny, self-contained environments. We built CoreCraft, a large-scale startup world, and deployed AI agents to solve real tasks. Our goal: to move agents beyond the cleanliness of the lab and into the chaos of enterprise reality.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/enterprisebench-corecraft</guid>\n      <pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Riemann-bench: A Benchmark for Moonshot Mathematics</title>\n      <link>https://www.surgehq.ai/blog/riemann-bench-a-benchmark-for-moonshot-mathematics</link>\n      <description>Riemann-bench is a verifiable benchmark of extreme-tier mathematical problems where even frontier models score &lt;10%.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/riemann-bench-a-benchmark-for-moonshot-mathematics</guid>\n      <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GDP.pdf: Can $100B AI Models Master the Documents that Run the World?</title>\n      <link>https://www.surgehq.ai/blog/gdp-pdf-can-100b-ai-models-master-the-documents-that-run-the-world</link>\n      <description>Can frontier models master the documents that run the world? GDP.pdf is a multimodal and reasoning benchmark that takes real-world prompts and PDFs pulled directly from expert professional workflows.</description>\n      <guid isPermaLink=\"false\">https://www.surgehq.ai/blog/gdp-pdf-can-100b-ai-models-master-the-documents-that-run-the-world</guid>\n      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_chanderramesh.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Chander Ramesh - Writing</title>\n    <link>https://chanderramesh.com/writing</link>\n    <description>Essays covering software, startups, investing, and philosophy</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_chanderramesh.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:25 +0000</lastBuildDate>\n    <item>\n      <title>Golden Ages</title>\n      <link>https://chanderramesh.com/writing/golden-ages</link>\n      <description>Every industry has a golden era. And once it ends, it is impossible to break through. Why do Golden Ages begin, and why do they end?</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/golden-ages</guid>\n      <pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Everything You Call Life</title>\n      <link>https://chanderramesh.com/writing/everything-you-call-life</link>\n      <description>\"Life can be much broader, once you discover one simple fact, and that is that everything around you that you call ‘life’ was made up by people that were no smarter than you. And you can change it, you can influence it, you can build your own things that other people can use.\" - Steve Jobs</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/everything-you-call-life</guid>\n      <pubDate>Sat, 08 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Core Values</title>\n      <link>https://chanderramesh.com/writing/core-values</link>\n      <description>Institutions rot. Empires decay. And companies that once seemed like behemoths wither and die. The average age of a company in the S&amp;P 500 is only 21 years. But why is this?</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/core-values</guid>\n      <pubDate>Mon, 03 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How London Lost Fashion</title>\n      <link>https://chanderramesh.com/writing/how-london-lost-fashion</link>\n      <description>London was the epicenter of fashion nearly all of history. In one century, Paris usurped the title. How did this come to be, and what lessons can America apply today?</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/how-london-lost-fashion</guid>\n      <pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Are Startups Hard?</title>\n      <link>https://chanderramesh.com/writing/why-are-startups-hard</link>\n      <description>It's not the hours - many jobs require insane hours. It's not the stress - there are many stressful jobs. So what makes startups so uniquely challenging?</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/why-are-startups-hard</guid>\n      <pubDate>Fri, 15 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Product Market Fit</title>\n      <link>https://chanderramesh.com/writing/pmf</link>\n      <description>If your company cannot withstand a competitor giving away your product FOR FREE, you do not have product market fit.</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/pmf</guid>\n      <pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>On Venting</title>\n      <link>https://chanderramesh.com/writing/on-venting</link>\n      <description>Contrary to modern psychobabble, venting your feelings is not good for you. In fact, it is the greatest thing holding you back. Here is why I will never tolerate or listen to it.</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/on-venting</guid>\n      <pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Stop Thinking with IF Statements!</title>\n      <link>https://chanderramesh.com/writing/stop-if-statements</link>\n      <description>The most common mistake junior engineers make is a lack of systems thinking. And no where is this more obvious than their prolific use of if statements.</description>\n      <guid isPermaLink=\"false\">https://chanderramesh.com/writing/stop-if-statements</guid>\n      <pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_claude.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Claude Blog</title>\n    <link>https://claude.com/blog</link>\n    <description>Latest updates from Claude Blog</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_claude.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:30 +0000</lastBuildDate>\n    <item>\n      <title>How Anthropic's cybersecurity team built a threat detection platform with Claude Code</title>\n      <link>https://claude.com/blog/how-anthropic-uses-claude-cybersecurity</link>\n      <description>How Anthropic's cybersecurity team built a threat detection platform with Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-anthropic-uses-claude-cybersecurity</guid>\n      <category>Claude Code</category>\n      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude for the legal industry</title>\n      <link>https://claude.com/blog/claude-for-the-legal-industry</link>\n      <description>Claude for the legal industry</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-for-the-legal-industry</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Code w/ Claude SF 2026: Building on the AI exponential </title>\n      <link>https://claude.com/blog/code-w-claude-sf-2026-sf</link>\n      <description>Code w/ Claude SF 2026: Building on the AI exponential </description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/code-w-claude-sf-2026-sf</guid>\n      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Claude Platform on AWS</title>\n      <link>https://claude.com/blog/claude-platform-on-aws</link>\n      <description>Introducing the Claude Platform on AWS</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-platform-on-aws</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Agent view in Claude Code</title>\n      <link>https://claude.com/blog/agent-view-in-claude-code</link>\n      <description>Agent view in Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/agent-view-in-claude-code</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Collaborate with Claude across Excel, PowerPoint, Word and Outlook </title>\n      <link>https://claude.com/blog/collaborate-with-claude-across-excel-powerpoint-word-and-outlook</link>\n      <description>Collaborate with Claude across Excel, PowerPoint, Word and Outlook </description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/collaborate-with-claude-across-excel-powerpoint-word-and-outlook</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New in Claude Managed Agents: dreaming, outcomes, and multiagent orchestration</title>\n      <link>https://claude.com/blog/new-in-claude-managed-agents</link>\n      <description>New in Claude Managed Agents: dreaming, outcomes, and multiagent orchestration</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/new-in-claude-managed-agents</guid>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Deploying Claude across financial services</title>\n      <link>https://claude.com/blog/deploying-claude-across-financial-services</link>\n      <description>Deploying Claude across financial services</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/deploying-claude-across-financial-services</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How a non-technical project manager built and shipped a stress management app with Claude Code in six weeks</title>\n      <link>https://claude.com/blog/how-a-non-technical-project-manager-built-and-shipped-a-stress-management-app-with-claude-code-in-six-weeks</link>\n      <description>How a non-technical project manager built and shipped a stress management app with Claude Code in six weeks</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-a-non-technical-project-manager-built-and-shipped-a-stress-management-app-with-claude-code-in-six-weeks</guid>\n      <category>Claude Code</category>\n      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Kepler built verifiable AI for financial services with Claude</title>\n      <link>https://claude.com/blog/how-kepler-built-verifiable-ai-for-financial-services-with-claude</link>\n      <description>How Kepler built verifiable AI for financial services with Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-kepler-built-verifiable-ai-for-financial-services-with-claude</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Lessons from building Claude Code: Prompt caching is everything</title>\n      <link>https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything</link>\n      <description>Lessons from building Claude Code: Prompt caching is everything</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything</guid>\n      <category>Claude Code</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Security is now in public beta</title>\n      <link>https://claude.com/blog/claude-security-public-beta</link>\n      <description>Claude Security is now in public beta</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-security-public-beta</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building AI agents for the enterprise</title>\n      <link>https://claude.com/blog/building-ai-agents-for-the-enterprise</link>\n      <description>Building AI agents for the enterprise</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-ai-agents-for-the-enterprise</guid>\n      <category>Agents</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Product development in the agentic era</title>\n      <link>https://claude.com/blog/product-development-in-the-agentic-era</link>\n      <description>Product development in the agentic era</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/product-development-in-the-agentic-era</guid>\n      <category>Agents</category>\n      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude API skill now in CodeRabbit, JetBrains, Resolve AI, and Warp</title>\n      <link>https://claude.com/blog/claude-api-skill</link>\n      <description>Claude API skill now in CodeRabbit, JetBrains, Resolve AI, and Warp</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-api-skill</guid>\n      <category>Agents</category>\n      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Deploying agentic AI across the enterprise with Claude Cowork</title>\n      <link>https://claude.com/blog/new-guide-deploying-claude-across-the-enterprise-with-claude-cowork</link>\n      <description>Deploying agentic AI across the enterprise with Claude Cowork</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/new-guide-deploying-claude-across-the-enterprise-with-claude-cowork</guid>\n      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Onboarding Claude Code like a new developer: Lessons from 17 years of development</title>\n      <link>https://claude.com/blog/onboarding-claude-code-like-a-new-developer-lessons-from-17-years-of-development</link>\n      <description>Onboarding Claude Code like a new developer: Lessons from 17 years of development</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/onboarding-claude-code-like-a-new-developer-lessons-from-17-years-of-development</guid>\n      <category>Claude Code</category>\n      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Built-in memory for Claude Managed Agents</title>\n      <link>https://claude.com/blog/claude-managed-agents-memory</link>\n      <description>Built-in memory for Claude Managed Agents</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-managed-agents-memory</guid>\n      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New connectors in Claude for everyday life</title>\n      <link>https://claude.com/blog/connectors-for-everyday-life</link>\n      <description>New connectors in Claude for everyday life</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/connectors-for-everyday-life</guid>\n      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building agents that reach production systems with MCP</title>\n      <link>https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp</link>\n      <description>Building agents that reach production systems with MCP</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp</guid>\n      <category>Agents</category>\n      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meet the winners of our Built with Opus 4.6 Claude Code hackathon </title>\n      <link>https://claude.com/blog/meet-the-winners-of-our-built-with-opus-4-6-claude-code-hackathon</link>\n      <description>Meet the winners of our Built with Opus 4.6 Claude Code hackathon </description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/meet-the-winners-of-our-built-with-opus-4-6-claude-code-hackathon</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Best practices for using Claude Opus 4.7 with Claude Code</title>\n      <link>https://claude.com/blog/best-practices-for-using-claude-opus-4-7-with-claude-code</link>\n      <description>Best practices for using Claude Opus 4.7 with Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/best-practices-for-using-claude-opus-4-7-with-claude-code</guid>\n      <category>Claude Code</category>\n      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Using Claude Code: session management and 1M context</title>\n      <link>https://claude.com/blog/using-claude-code-session-management-and-1m-context</link>\n      <description>Using Claude Code: session management and 1M context</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/using-claude-code-session-management-and-1m-context</guid>\n      <category>Claude Code</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing routines in Claude Code</title>\n      <link>https://claude.com/blog/introducing-routines-in-claude-code</link>\n      <description>Introducing routines in Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/introducing-routines-in-claude-code</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Redesigning Claude Code on desktop for parallel agents</title>\n      <link>https://claude.com/blog/claude-code-desktop-redesign</link>\n      <description>Redesigning Claude Code on desktop for parallel agents</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-code-desktop-redesign</guid>\n      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Multi-agent coordination patterns: Five approaches and when to use them</title>\n      <link>https://claude.com/blog/multi-agent-coordination-patterns</link>\n      <description>Multi-agent coordination patterns: Five approaches and when to use them</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/multi-agent-coordination-patterns</guid>\n      <category>Agents</category>\n      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Seeing like an agent: how we design tools in Claude Code</title>\n      <link>https://claude.com/blog/seeing-like-an-agent</link>\n      <description>Seeing like an agent: how we design tools in Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/seeing-like-an-agent</guid>\n      <category>Claude Code</category>\n      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Preparing your security program for AI-accelerated offense</title>\n      <link>https://claude.com/blog/preparing-your-security-program-for-ai-accelerated-offense</link>\n      <description>Preparing your security program for AI-accelerated offense</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/preparing-your-security-program-for-ai-accelerated-offense</guid>\n      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Making Claude Cowork ready for enterprise</title>\n      <link>https://claude.com/blog/cowork-for-enterprise</link>\n      <description>Making Claude Cowork ready for enterprise</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/cowork-for-enterprise</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The advisor strategy: Give agents an intelligence boost</title>\n      <link>https://claude.com/blog/the-advisor-strategy</link>\n      <description>The advisor strategy: Give agents an intelligence boost</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/the-advisor-strategy</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Carta Healthcare gets AI to reason like a clinical abstractor</title>\n      <link>https://claude.com/blog/carta-healthcare-clinical-abstractor</link>\n      <description>How Carta Healthcare gets AI to reason like a clinical abstractor</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/carta-healthcare-clinical-abstractor</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Managed Agents: get to production 10x faster</title>\n      <link>https://claude.com/blog/claude-managed-agents</link>\n      <description>Claude Managed Agents: get to production 10x faster</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-managed-agents</guid>\n      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How and when to use subagents in Claude Code</title>\n      <link>https://claude.com/blog/subagents-in-claude-code</link>\n      <description>How and when to use subagents in Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/subagents-in-claude-code</guid>\n      <category>Claude Code</category>\n      <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Harnessing Claude’s intelligence</title>\n      <link>https://claude.com/blog/harnessing-claudes-intelligence</link>\n      <description>Harnessing Claude’s intelligence</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/harnessing-claudes-intelligence</guid>\n      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Audit Claude Platform activity with the Compliance API</title>\n      <link>https://claude.com/blog/claude-platform-compliance-api</link>\n      <description>Audit Claude Platform activity with the Compliance API</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-platform-compliance-api</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Auto mode for Claude Code</title>\n      <link>https://claude.com/blog/auto-mode</link>\n      <description>Auto mode for Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/auto-mode</guid>\n      <category>Claude Code</category>\n      <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Put Claude to work on your computer</title>\n      <link>https://claude.com/blog/dispatch-and-computer-use</link>\n      <description>Put Claude to work on your computer</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/dispatch-and-computer-use</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Product management on the AI exponential </title>\n      <link>https://claude.com/blog/product-management-on-the-ai-exponential</link>\n      <description>Product management on the AI exponential </description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/product-management-on-the-ai-exponential</guid>\n      <category>Claude Code</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Code with Claude comes to San Francisco, London, and Tokyo</title>\n      <link>https://claude.com/blog/code-with-claude-san-francisco-london-tokyo</link>\n      <description>Code with Claude comes to San Francisco, London, and Tokyo</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/code-with-claude-san-francisco-london-tokyo</guid>\n      <category>Claude Code</category>\n      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>1M context is now generally available for Opus 4.6 and Sonnet 4.6</title>\n      <link>https://claude.com/blog/1m-context-ga</link>\n      <description>1M context is now generally available for Opus 4.6 and Sonnet 4.6</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/1m-context-ga</guid>\n      <category>Product announcements</category>\n      <pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude now creates interactive charts, diagrams and visualizations</title>\n      <link>https://claude.com/blog/claude-builds-visuals</link>\n      <description>Claude now creates interactive charts, diagrams and visualizations</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-builds-visuals</guid>\n      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing Claude for Excel and PowerPoint</title>\n      <link>https://claude.com/blog/claude-excel-powerpoint-updates</link>\n      <description>Advancing Claude for Excel and PowerPoint</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-excel-powerpoint-updates</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing Code Review to Claude Code</title>\n      <link>https://claude.com/blog/code-review</link>\n      <description>Bringing Code Review to Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/code-review</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Common workflow patterns for AI agents—and when to use them</title>\n      <link>https://claude.com/blog/common-workflow-patterns-for-ai-agents-and-when-to-use-them</link>\n      <description>Common workflow patterns for AI agents—and when to use them</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/common-workflow-patterns-for-ai-agents-and-when-to-use-them</guid>\n      <category>Agents</category>\n      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Improving skill-creator: Test, measure, and refine Agent Skills</title>\n      <link>https://claude.com/blog/improving-skill-creator-test-measure-and-refine-agent-skills</link>\n      <description>Improving skill-creator: Test, measure, and refine Agent Skills</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/improving-skill-creator-test-measure-and-refine-agent-skills</guid>\n      <category>Claude Code</category>\n      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cowork and plugins for teams across the enterprise</title>\n      <link>https://claude.com/blog/cowork-plugins-across-enterprise</link>\n      <description>Cowork and plugins for teams across the enterprise</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/cowork-plugins-across-enterprise</guid>\n      <category>Agents</category>\n      <pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cowork and plugins for finance </title>\n      <link>https://claude.com/blog/cowork-plugins-finance</link>\n      <description>Cowork and plugins for finance </description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/cowork-plugins-finance</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How AI helps break the cost barrier to COBOL modernization</title>\n      <link>https://claude.com/blog/how-ai-helps-break-cost-barrier-cobol-modernization</link>\n      <description>How AI helps break the cost barrier to COBOL modernization</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-ai-helps-break-cost-barrier-cobol-modernization</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing automated preview, review, and merge to Claude Code on desktop</title>\n      <link>https://claude.com/blog/preview-review-and-merge-with-claude-code</link>\n      <description>Bringing automated preview, review, and merge to Claude Code on desktop</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/preview-review-and-merge-with-claude-code</guid>\n      <category>Claude Code</category>\n      <pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Increase web search accuracy and efficiency with dynamic filtering</title>\n      <link>https://claude.com/blog/improved-web-search-with-dynamic-filtering</link>\n      <description>Increase web search accuracy and efficiency with dynamic filtering</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/improved-web-search-with-dynamic-filtering</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Enterprise, now available self-serve</title>\n      <link>https://claude.com/blog/self-serve-enterprise</link>\n      <description>Claude Enterprise, now available self-serve</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/self-serve-enterprise</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Behind the model launch: What customers discovered testing Claude Opus 4.6 early</title>\n      <link>https://claude.com/blog/behind-model-launch-what-customers-discovered-testing-claude-opus-4-6-early</link>\n      <description>Behind the model launch: What customers discovered testing Claude Opus 4.6 early</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/behind-model-launch-what-customers-discovered-testing-claude-opus-4-6-early</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing finance with Claude Opus 4.6</title>\n      <link>https://claude.com/blog/opus-4-6-finance</link>\n      <description>Advancing finance with Claude Opus 4.6</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/opus-4-6-finance</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Customize Cowork with plugins</title>\n      <link>https://claude.com/blog/cowork-plugins</link>\n      <description>Customize Cowork with plugins</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/cowork-plugins</guid>\n      <category>Product announcements</category>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Understand Claude Code’s impact with contribution metrics</title>\n      <link>https://claude.com/blog/contribution-metrics</link>\n      <description>Understand Claude Code’s impact with contribution metrics</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/contribution-metrics</guid>\n      <category>Claude Code</category>\n      <pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A complete guide to building skills for Claude</title>\n      <link>https://claude.com/blog/complete-guide-to-building-skills-for-claude</link>\n      <description>A complete guide to building skills for Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/complete-guide-to-building-skills-for-claude</guid>\n      <category>Claude Code</category>\n      <pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Updates to Claude Team</title>\n      <link>https://claude.com/blog/claude-team-updates</link>\n      <description>Updates to Claude Team</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-team-updates</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How leading retailers are turning AI pilots into enterprise-wide transformation</title>\n      <link>https://claude.com/blog/how-leading-retailers-are-turning-ai-pilots-into-enterprise-wide-transformation</link>\n      <description>How leading retailers are turning AI pilots into enterprise-wide transformation</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-leading-retailers-are-turning-ai-pilots-into-enterprise-wide-transformation</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Anthropic's Growth Marketing team cut ad creation time from 30 minutes to 30 seconds with Claude Code</title>\n      <link>https://claude.com/blog/how-anthropic-uses-claude-marketing</link>\n      <description>How Anthropic's Growth Marketing team cut ad creation time from 30 minutes to 30 seconds with Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-anthropic-uses-claude-marketing</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Your favorite work tools are now interactive connectors inside Claude</title>\n      <link>https://claude.com/blog/interactive-tools-in-claude</link>\n      <description>Your favorite work tools are now interactive connectors inside Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/interactive-tools-in-claude</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building multi-agent systems: When and how to use them</title>\n      <link>https://claude.com/blog/building-multi-agent-systems-when-and-how-to-use-them</link>\n      <description>Building multi-agent systems: When and how to use them</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-multi-agent-systems-when-and-how-to-use-them</guid>\n      <category>Agents</category>\n      <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building agents with Skills: Equipping agents for specialized work</title>\n      <link>https://claude.com/blog/building-agents-with-skills-equipping-agents-for-specialized-work</link>\n      <description>Building agents with Skills: Equipping agents for specialized work</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-agents-with-skills-equipping-agents-for-specialized-work</guid>\n      <category>Agents</category>\n      <pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Eight trends defining how software gets built in 2026</title>\n      <link>https://claude.com/blog/eight-trends-defining-how-software-gets-built-in-2026</link>\n      <description>Eight trends defining how software gets built in 2026</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/eight-trends-defining-how-software-gets-built-in-2026</guid>\n      <category>Agents</category>\n      <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Extending Claude’s capabilities with skills and MCP servers</title>\n      <link>https://claude.com/blog/extending-claude-capabilities-with-skills-mcp-servers</link>\n      <description>Extending Claude’s capabilities with skills and MCP servers</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/extending-claude-capabilities-with-skills-mcp-servers</guid>\n      <category>Agents</category>\n      <pubDate>Fri, 19 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Skills for organizations, partners, the ecosystem</title>\n      <link>https://claude.com/blog/organization-skills-and-directory</link>\n      <description>Skills for organizations, partners, the ecosystem</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/organization-skills-and-directory</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Making Claude a better electrical engineer</title>\n      <link>https://claude.com/blog/making-claude-a-better-electrical-engineer</link>\n      <description>Making Claude a better electrical engineer</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/making-claude-a-better-electrical-engineer</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code power user customization: How to configure hooks</title>\n      <link>https://claude.com/blog/how-to-configure-hooks</link>\n      <description>Claude Code power user customization: How to configure hooks</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-to-configure-hooks</guid>\n      <category>Claude Code</category>\n      <pubDate>Thu, 11 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How enterprises are building AI agents in 2026</title>\n      <link>https://claude.com/blog/how-enterprises-are-building-ai-agents-in-2026</link>\n      <description>How enterprises are building AI agents in 2026</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-enterprises-are-building-ai-agents-in-2026</guid>\n      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code and Slack</title>\n      <link>https://claude.com/blog/claude-code-and-slack</link>\n      <description>Claude Code and Slack</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-code-and-slack</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Anthropic's legal team cut review times from days to hours with Claude</title>\n      <link>https://claude.com/blog/how-anthropic-uses-claude-legal</link>\n      <description>How Anthropic's legal team cut review times from days to hours with Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-anthropic-uses-claude-legal</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What are the key benefits of transitioning to agentic coding for software development?</title>\n      <link>https://claude.com/blog/key-benefits-transitioning-agentic-coding</link>\n      <description>What are the key benefits of transitioning to agentic coding for software development?</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/key-benefits-transitioning-agentic-coding</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Using CLAUDE.md files: Customizing Claude Code for your codebase</title>\n      <link>https://claude.com/blog/using-claude-md-files</link>\n      <description>Using CLAUDE.md files: Customizing Claude Code for your codebase</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/using-claude-md-files</guid>\n      <category>Claude Code</category>\n      <pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What’s new in Claude: Turning Claude into your thinking partner</title>\n      <link>https://claude.com/blog/your-thinking-partner</link>\n      <description>What’s new in Claude: Turning Claude into your thinking partner</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/your-thinking-partner</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to create Skills: Key steps, limitations, and examples</title>\n      <link>https://claude.com/blog/how-to-create-skills-key-steps-limitations-and-examples</link>\n      <description>How to create Skills: Key steps, limitations, and examples</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-to-create-skills-key-steps-limitations-and-examples</guid>\n      <category>Claude Code</category>\n      <pubDate>Wed, 19 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How three YC startups built their companies with Claude Code</title>\n      <link>https://claude.com/blog/building-companies-with-claude-code</link>\n      <description>How three YC startups built their companies with Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-companies-with-claude-code</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Structured outputs on the Claude Developer Platform</title>\n      <link>https://claude.com/blog/structured-outputs-on-the-claude-developer-platform</link>\n      <description>Structured outputs on the Claude Developer Platform</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/structured-outputs-on-the-claude-developer-platform</guid>\n      <category>Product announcements</category>\n      <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Skills explained: How Skills compares to prompts, Projects, MCP, and subagents </title>\n      <link>https://claude.com/blog/skills-explained</link>\n      <description>Skills explained: How Skills compares to prompts, Projects, MCP, and subagents </description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/skills-explained</guid>\n      <category>Agents</category>\n      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Improving frontend design through Skills</title>\n      <link>https://claude.com/blog/improving-frontend-design-through-skills</link>\n      <description>Improving frontend design through Skills</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/improving-frontend-design-through-skills</guid>\n      <pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Best practices for prompt engineering</title>\n      <link>https://claude.com/blog/best-practices-for-prompt-engineering</link>\n      <description>Best practices for prompt engineering</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/best-practices-for-prompt-engineering</guid>\n      <category>Agents</category>\n      <pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building AI agents for startups</title>\n      <link>https://claude.com/blog/building-ai-agents-for-startups</link>\n      <description>Building AI agents for startups</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-ai-agents-for-startups</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What is Model Context Protocol? Connect AI to your world</title>\n      <link>https://claude.com/blog/what-is-model-context-protocol</link>\n      <description>What is Model Context Protocol? Connect AI to your world</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/what-is-model-context-protocol</guid>\n      <category>Agents</category>\n      <pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Brex improves code quality and productivity with Claude Code</title>\n      <link>https://claude.com/blog/how-brex-improves-code-quality-and-productivity-with-claude-code</link>\n      <description>How Brex improves code quality and productivity with Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-brex-improves-code-quality-and-productivity-with-claude-code</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building AI agents for financial services</title>\n      <link>https://claude.com/blog/building-ai-agents-in-financial-services</link>\n      <description>Building AI agents for financial services</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-ai-agents-in-financial-services</guid>\n      <category>Agents</category>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building AI agents for healthcare and life sciences</title>\n      <link>https://claude.com/blog/building-ai-agents-in-healthcare-and-life-sciences</link>\n      <description>Building AI agents for healthcare and life sciences</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-ai-agents-in-healthcare-and-life-sciences</guid>\n      <category>Agents</category>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introduction to agentic coding</title>\n      <link>https://claude.com/blog/introduction-to-agentic-coding</link>\n      <description>Introduction to agentic coding</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/introduction-to-agentic-coding</guid>\n      <category>Claude Code</category>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Fix software bugs faster with Claude</title>\n      <link>https://claude.com/blog/fix-software-bugs-faster-with-claude</link>\n      <description>Fix software bugs faster with Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/fix-software-bugs-faster-with-claude</guid>\n      <category>Claude Code</category>\n      <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to integrate APIs seamlessly</title>\n      <link>https://claude.com/blog/integrate-apis-seamlessly</link>\n      <description>How to integrate APIs seamlessly</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/integrate-apis-seamlessly</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 27 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code on the web</title>\n      <link>https://claude.com/blog/claude-code-on-the-web</link>\n      <description>Claude Code on the web</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-code-on-the-web</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Agent Skills</title>\n      <link>https://claude.com/blog/skills</link>\n      <description>Introducing Agent Skills</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/skills</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude and your productivity platforms</title>\n      <link>https://claude.com/blog/productivity-platforms</link>\n      <description>Claude and your productivity platforms</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/productivity-platforms</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to scale agentic coding across your engineering organization</title>\n      <link>https://claude.com/blog/scaling-agentic-coding</link>\n      <description>How to scale agentic coding across your engineering organization</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/scaling-agentic-coding</guid>\n      <category>Claude Code</category>\n      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build responsive web layouts</title>\n      <link>https://claude.com/blog/build-responsive-web-layouts</link>\n      <description>Build responsive web layouts</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/build-responsive-web-layouts</guid>\n      <category>Claude Code</category>\n      <pubDate>Fri, 10 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Customize Claude Code with plugins</title>\n      <link>https://claude.com/blog/claude-code-plugins</link>\n      <description>Customize Claude Code with plugins</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-code-plugins</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 09 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Beyond permission prompts: making Claude Code more secure and autonomous</title>\n      <link>https://claude.com/blog/beyond-permission-prompts-making-claude-code-more-secure-and-autonomous</link>\n      <description>Beyond permission prompts: making Claude Code more secure and autonomous</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/beyond-permission-prompts-making-claude-code-more-secure-and-autonomous</guid>\n      <category>Claude Code</category>\n      <pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Optimize code performance quickly</title>\n      <link>https://claude.com/blog/optimize-code-performance-quickly</link>\n      <description>Optimize code performance quickly</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/optimize-code-performance-quickly</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude and Slack</title>\n      <link>https://claude.com/blog/claude-and-slack</link>\n      <description>Claude and Slack</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-and-slack</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How enterprises are driving AI transformation with Claude</title>\n      <link>https://claude.com/blog/driving-ai-transformation-with-claude</link>\n      <description>How enterprises are driving AI transformation with Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/driving-ai-transformation-with-claude</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Managing context on the Claude Developer Platform</title>\n      <link>https://claude.com/blog/context-management</link>\n      <description>Managing context on the Claude Developer Platform</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/context-management</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building agents with the Claude Agent SDK</title>\n      <link>https://claude.com/blog/building-agents-with-the-claude-agent-sdk</link>\n      <description>Building agents with the Claude Agent SDK</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/building-agents-with-the-claude-agent-sdk</guid>\n      <category>Claude Code</category>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude is now available in Microsoft 365 Copilot</title>\n      <link>https://claude.com/blog/claude-now-available-in-microsoft-365-copilot</link>\n      <description>Claude is now available in Microsoft 365 Copilot</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-now-available-in-microsoft-365-copilot</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing memory to Claude</title>\n      <link>https://claude.com/blog/memory</link>\n      <description>Bringing memory to Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/memory</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 11 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude can now create and edit files</title>\n      <link>https://claude.com/blog/create-files</link>\n      <description>Claude can now create and edit files</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/create-files</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Piloting Claude in Chrome</title>\n      <link>https://claude.com/blog/claude-for-chrome</link>\n      <description>Piloting Claude in Chrome</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-for-chrome</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code and new admin controls for business plans</title>\n      <link>https://claude.com/blog/claude-code-and-new-admin-controls-for-business-plans</link>\n      <description>Claude Code and new admin controls for business plans</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-code-and-new-admin-controls-for-business-plans</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Prompt caching with Claude</title>\n      <link>https://claude.com/blog/prompt-caching</link>\n      <description>Prompt caching with Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/prompt-caching</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Sonnet 4 now supports 1M tokens of context</title>\n      <link>https://claude.com/blog/1m-context</link>\n      <description>Claude Sonnet 4 now supports 1M tokens of context</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/1m-context</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Automate security reviews with Claude Code</title>\n      <link>https://claude.com/blog/automate-security-reviews-with-claude-code</link>\n      <description>Automate security reviews with Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/automate-security-reviews-with-claude-code</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build and share AI-powered apps with Claude</title>\n      <link>https://claude.com/blog/claude-powered-artifacts</link>\n      <description>Build and share AI-powered apps with Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-powered-artifacts</guid>\n      <category>Product announcements</category>\n      <pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Anthropic teams use Claude Code</title>\n      <link>https://claude.com/blog/how-anthropic-teams-use-claude-code</link>\n      <description>How Anthropic teams use Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/how-anthropic-teams-use-claude-code</guid>\n      <category>Enterprise AI</category>\n      <pubDate>Thu, 24 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Discover tools that work with Claude</title>\n      <link>https://claude.com/blog/connectors-directory</link>\n      <description>Discover tools that work with Claude</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/connectors-directory</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Turn ideas into interactive AI-powered apps</title>\n      <link>https://claude.com/blog/build-artifacts</link>\n      <description>Turn ideas into interactive AI-powered apps</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/build-artifacts</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 25 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Citations on the Anthropic API</title>\n      <link>https://claude.com/blog/introducing-citations-api</link>\n      <description>Introducing Citations on the Anthropic API</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/introducing-citations-api</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 23 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Remote MCP support in Claude Code</title>\n      <link>https://claude.com/blog/claude-code-remote-mcp</link>\n      <description>Remote MCP support in Claude Code</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-code-remote-mcp</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New capabilities for building agents on the Anthropic API</title>\n      <link>https://claude.com/blog/agent-capabilities-api</link>\n      <description>New capabilities for building agents on the Anthropic API</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/agent-capabilities-api</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing web search on the Anthropic API</title>\n      <link>https://claude.com/blog/web-search-api</link>\n      <description>Introducing web search on the Anthropic API</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/web-search-api</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude can now connect to your world</title>\n      <link>https://claude.com/blog/integrations</link>\n      <description>Claude can now connect to your world</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/integrations</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude takes research to new places</title>\n      <link>https://claude.com/blog/research</link>\n      <description>Claude takes research to new places</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/research</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Max Plan</title>\n      <link>https://claude.com/blog/max-plan</link>\n      <description>Introducing the Max Plan</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/max-plan</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 09 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude on Google Cloud’s Vertex AI: FedRAMP High and IL2 Authorized</title>\n      <link>https://claude.com/blog/claude-on-google-cloud-fedramp-high</link>\n      <description>Claude on Google Cloud’s Vertex AI: FedRAMP High and IL2 Authorized</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-on-google-cloud-fedramp-high</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude can now search the web</title>\n      <link>https://claude.com/blog/web-search</link>\n      <description>Claude can now search the web</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/web-search</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Token-saving updates on the Anthropic API</title>\n      <link>https://claude.com/blog/token-saving-updates</link>\n      <description>Token-saving updates on the Anthropic API</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/token-saving-updates</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 13 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Get to production faster with the upgraded Anthropic Console</title>\n      <link>https://claude.com/blog/upgraded-anthropic-console</link>\n      <description>Get to production faster with the upgraded Anthropic Console</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/upgraded-anthropic-console</guid>\n      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 3.5 Haiku on AWS Trainium2 and model distillation in Amazon Bedrock</title>\n      <link>https://claude.com/blog/trainium2-and-distillation</link>\n      <description>Claude 3.5 Haiku on AWS Trainium2 and model distillation in Amazon Bedrock</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/trainium2-and-distillation</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the analysis tool in Claude.ai</title>\n      <link>https://claude.com/blog/analysis-tool</link>\n      <description>Introducing the analysis tool in Claude.ai</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/analysis-tool</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Improve your prompts in the developer console</title>\n      <link>https://claude.com/blog/prompt-improver</link>\n      <description>Improve your prompts in the developer console</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/prompt-improver</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 14 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Message Batches API</title>\n      <link>https://claude.com/blog/message-batches-api</link>\n      <description>Introducing the Message Batches API</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/message-batches-api</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 08 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Workspaces in the Anthropic API Console</title>\n      <link>https://claude.com/blog/workspaces</link>\n      <description>Workspaces in the Anthropic API Console</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/workspaces</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 10 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude for Enterprise</title>\n      <link>https://claude.com/blog/claude-for-enterprise</link>\n      <description>Claude for Enterprise</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-for-enterprise</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 10 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Artifacts are now generally available</title>\n      <link>https://claude.com/blog/artifacts</link>\n      <description>Artifacts are now generally available</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/artifacts</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 27 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Android app</title>\n      <link>https://claude.com/blog/android-app</link>\n      <description>Claude Android app</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/android-app</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 16 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Fine-tune Claude 3 Haiku in Amazon Bedrock</title>\n      <link>https://claude.com/blog/fine-tune-claude-3-haiku</link>\n      <description>Fine-tune Claude 3 Haiku in Amazon Bedrock</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/fine-tune-claude-3-haiku</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 10 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evaluate prompts in the developer console</title>\n      <link>https://claude.com/blog/evaluate-prompts</link>\n      <description>Evaluate prompts in the developer console</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/evaluate-prompts</guid>\n      <category>Product announcements</category>\n      <pubDate>Tue, 09 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude can now use tools</title>\n      <link>https://claude.com/blog/tool-use-ga</link>\n      <description>Claude can now use tools</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/tool-use-ga</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 30 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generate better prompts in the developer console</title>\n      <link>https://claude.com/blog/prompt-generator</link>\n      <description>Generate better prompts in the developer console</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/prompt-generator</guid>\n      <category>Product announcements</category>\n      <pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Claude Team plan and iOS app</title>\n      <link>https://claude.com/blog/team-plan-and-ios</link>\n      <description>Introducing the Claude Team plan and iOS app</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/team-plan-and-ios</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Long context prompting for Claude 2.1</title>\n      <link>https://claude.com/blog/claude-2-1-prompting</link>\n      <description>Long context prompting for Claude 2.1</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-2-1-prompting</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 06 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude on Amazon Bedrock now available to every AWS customer</title>\n      <link>https://claude.com/blog/amazon-bedrock-general-availability</link>\n      <description>Claude on Amazon Bedrock now available to every AWS customer</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/amazon-bedrock-general-availability</guid>\n      <category>Product announcements</category>\n      <pubDate>Thu, 28 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 2 on Amazon Bedrock</title>\n      <link>https://claude.com/blog/claude-2-amazon-bedrock</link>\n      <description>Claude 2 on Amazon Bedrock</description>\n      <guid isPermaLink=\"false\">https://claude.com/blog/claude-2-amazon-bedrock</guid>\n      <category>Product announcements</category>\n      <pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_cohere.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>The Cohere Blog</title>\n    <link>https://cohere.com/blog</link>\n    <description>Enterprise AI research and product updates from Cohere</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_cohere.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://cohere.com/favicon.ico</url>\n      <title>The Cohere Blog</title>\n      <link>https://cohere.com/blog</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:30 +0000</lastBuildDate>\n    <item>\n      <title>Cohere advances sovereign AI capabilities with NVIDIA</title>\n      <link>https://cohere.com/blog/cohere-sovereign-ai-nvidia</link>\n      <description>NVIDIA ecosystem-native model and local North instance will meet growing market demand for secure, privately run AI systems  \n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/cohere-sovereign-ai-nvidia</guid>\n      <category>Newsroom</category>\n      <pubDate>Mon, 16 Mar 2026 16:28:39 -0400</pubDate>\n    </item>\n    <item>\n      <title>The advantages of AI in business</title>\n      <link>https://cohere.com/blog/advantage-of-ai-in-business</link>\n      <description>The advantages of AI in business</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/advantage-of-ai-in-business</guid>\n      <category>For Business</category>\n      <pubDate>Tue, 03 Mar 2026 11:37:13 -0500</pubDate>\n    </item>\n    <item>\n      <title>Cohere Labs Launches Tiny Aya, Making Multilingual AI Accessible</title>\n      <link>https://cohere.com/blog/cohere-labs-tiny-aya</link>\n      <description>Cohere Labs Launches Tiny Aya, Making Multilingual AI Accessible</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/cohere-labs-tiny-aya</guid>\n      <category>Research</category>\n      <pubDate>Tue, 17 Feb 2026 04:00:07 -0500</pubDate>\n    </item>\n    <item>\n      <title>Cohere signs world chess champion Magnus Carlsen as brand ambassador</title>\n      <link>https://cohere.com/blog/cohere-signs-world-chess-champion-magnus-carlsen</link>\n      <description>Carlsen will bring his iconic reputation and strategic thinking to strengthen the company's brand and mission</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/cohere-signs-world-chess-champion-magnus-carlsen</guid>\n      <category>Company</category>\n      <pubDate>Fri, 13 Feb 2026 09:14:41 -0500</pubDate>\n    </item>\n    <item>\n      <title>Introducing Model Vault: Your private platform for secure and scalable model inference</title>\n      <link>https://cohere.com/blog/model-vault</link>\n      <description>Model Vault simplifies serving and scaling Cohere models, so teams can focus on building, not infrastructure. </description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/model-vault</guid>\n      <category>Product</category>\n      <pubDate>Wed, 28 Jan 2026 08:59:42 -0500</pubDate>\n    </item>\n    <item>\n      <title>How the Cohere Labs open research community turns early-career researchers into global leaders</title>\n      <link>https://cohere.com/blog/how-the-cohere-labs-open-research-community-turns-early-career-researchers-into-global-leaders</link>\n      <description>Cohere Labs' open research community empowers early-career researchers like Ram Kadiyala and Jebish Purbey to become global leaders in AI research through mentorship, collaboration, and inclusive opportunities.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/how-the-cohere-labs-open-research-community-turns-early-career-researchers-into-global-leaders</guid>\n      <category>Research</category>\n      <pubDate>Thu, 15 Jan 2026 07:05:20 -0500</pubDate>\n    </item>\n    <item>\n      <title>How a Community Effort is Teaching AI to See Africa’s Richness</title>\n      <link>https://cohere.com/blog/afriaya</link>\n      <description>AfriAya, a vision-language dataset, addresses Africa’s underrepresentation in AI. Created by Ugandan engineers, it builds on Aya improving AI’s recognition of African cultures, covering 13 languages, with plans to expand. Part of Cohere Labs’ inclusion efforts, it aims for cultural robustness in AI.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/afriaya</guid>\n      <category>Research</category>\n      <pubDate>Tue, 16 Dec 2025 07:00:03 -0500</pubDate>\n    </item>\n    <item>\n      <title>Introducing Rerank 4: Cohere’s most powerful reranker yet</title>\n      <link>https://cohere.com/blog/rerank-4</link>\n      <description>A milestone in search and retrieval, offering unmatched accuracy and speed for enterprise applications.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/rerank-4</guid>\n      <category>Product</category>\n      <pubDate>Thu, 11 Dec 2025 11:50:00 -0500</pubDate>\n    </item>\n    <item>\n      <title>Building trust in AI: Cohere’s approach to AI governance</title>\n      <link>https://cohere.com/blog/building-trust-in-ai-coheres-approach-to-ai-governance</link>\n      <description>Cohere’s AI governance frameworks, practices, and policies direct and guide the responsible development and use of our AI models and systems. </description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/building-trust-in-ai-coheres-approach-to-ai-governance</guid>\n      <category>Secure AI</category>\n      <pubDate>Wed, 10 Dec 2025 13:07:51 -0500</pubDate>\n    </item>\n    <item>\n      <title>Connect 2025: Why Collaboration is the Ultimate Research Superpower</title>\n      <link>https://cohere.com/blog/connect-2025</link>\n      <description>Connect 2025: Why Collaboration is the Ultimate Research Superpower</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/connect-2025</guid>\n      <category>Research</category>\n      <pubDate>Mon, 08 Dec 2025 11:22:06 -0500</pubDate>\n    </item>\n    <item>\n      <title>Cohere expands partnership with SAP to provide Europe sovereign AI solutions</title>\n      <link>https://cohere.com/blog/cohere-expands-partnership-with-sap</link>\n      <description>SAP brings North to its Sovereign Cloud, bringing European enterprises and governments efficient, secure and powerful agentic AI.\n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/cohere-expands-partnership-with-sap</guid>\n      <category>Newsroom</category>\n      <pubDate>Thu, 27 Nov 2025 06:39:25 -0500</pubDate>\n    </item>\n    <item>\n      <title>HIPAA Business Associate agreements for custom model development</title>\n      <link>https://cohere.com/blog/hipaa-business-associate-agreements-for-custom-model-development</link>\n      <description>We are pleased to offer a HIPAA-compliant Business Associate agreement (BAA) to enable customers across the healthcare industry to work with us to develop secure custom models that meet their specific business needs.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/hipaa-business-associate-agreements-for-custom-model-development</guid>\n      <category>Company</category>\n      <pubDate>Thu, 13 Nov 2025 09:07:33 -0500</pubDate>\n    </item>\n    <item>\n      <title>Making data transfer in LLM systems faster, leaner, and more scalable</title>\n      <link>https://cohere.com/blog/making-data-transfer-in-llm-systems-faster-leaner-and-more-scalable</link>\n      <description>Introducing Shared Memory IPC Caching — a high-performance caching mechanism contributed by Cohere to the vLLM project.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/making-data-transfer-in-llm-systems-faster-leaner-and-more-scalable</guid>\n      <category>Developers</category>\n      <pubDate>Wed, 12 Nov 2025 09:37:42 -0500</pubDate>\n    </item>\n    <item>\n      <title>Securing AI supply chains: Cohere’s commitment to model signing</title>\n      <link>https://cohere.com/blog/securing-ai-supply-chains-coheres-commitment-to-model-signing</link>\n      <description>Cohere has implemented model signing for all Cohere Command models hosted on Hugging Face to improve integrity and authenticity efforts.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/securing-ai-supply-chains-coheres-commitment-to-model-signing</guid>\n      <category>Developers</category>\n      <pubDate>Thu, 30 Oct 2025 11:02:22 -0400</pubDate>\n    </item>\n    <item>\n      <title>Announcing the Cohere Partner Program: Boosting enterprise AI</title>\n      <link>https://cohere.com/blog/cohere-partner-program-boosting-enterprise-ai</link>\n      <description>Today, we are proud to announce the launch of the Cohere Partner Program, a new initiative designed to help our partners innovate faster, expand market impact, and lead the next wave of enterprise AI. </description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/cohere-partner-program-boosting-enterprise-ai</guid>\n      <category>Company</category>\n      <pubDate>Tue, 07 Oct 2025 09:53:39 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere adds $100M in second close to latest round as it scales security-first enterprise AI</title>\n      <link>https://cohere.com/blog/september-2025-funding-round</link>\n      <description>Additional funding supports our growing global operations and development of frontier enterprise AI technology.\n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/september-2025-funding-round</guid>\n      <category>Company</category>\n      <pubDate>Wed, 24 Sep 2025 08:55:36 -0400</pubDate>\n    </item>\n    <item>\n      <title>Exploring AI in Education</title>\n      <link>https://cohere.com/blog/exploring-ai-in-education</link>\n      <description>Using Cohere Grants to transform students into AI builders.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/exploring-ai-in-education</guid>\n      <category>Research</category>\n      <pubDate>Tue, 23 Sep 2025 15:23:41 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere opens Paris office as EMEA hub</title>\n      <link>https://cohere.com/blog/paris-office</link>\n      <description>Cohere strengthens presence in Paris with additions of VP of EMEA and Head of EMEA Public Policy. </description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/paris-office</guid>\n      <category>Company</category>\n      <pubDate>Mon, 15 Sep 2025 07:56:38 -0400</pubDate>\n    </item>\n    <item>\n      <title>AI adoption for national security: Modernizing defense</title>\n      <link>https://cohere.com/blog/ai-for-national-security</link>\n      <description>Second Front’s chief data scientist sees data security and LLM explainability as fundamental to overcoming government caution over AI adoption.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ai-for-national-security</guid>\n      <category>For Business</category>\n      <pubDate>Tue, 09 Sep 2025 09:40:28 -0400</pubDate>\n    </item>\n    <item>\n      <title>Command A Translate: Secure translation for global enterprises</title>\n      <link>https://cohere.com/blog/command-a-translate</link>\n      <description>The new industry standard for secure, enterprise-ready machine translation.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/command-a-translate</guid>\n      <category>Newsroom</category>\n      <pubDate>Thu, 28 Aug 2025 10:55:25 -0400</pubDate>\n    </item>\n    <item>\n      <title>Command A Reasoning: Enterprise-grade control for AI agents</title>\n      <link>https://cohere.com/blog/command-a-reasoning</link>\n      <description>Securely powering enterprise applications with exceptional reasoning performance, efficiency, and controllability.\n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/command-a-reasoning</guid>\n      <category>Newsroom</category>\n      <pubDate>Thu, 21 Aug 2025 10:50:26 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere deepens partnership with Government of Canada</title>\n      <link>https://cohere.com/blog/cohere-partnership-canada-government</link>\n      <description>Cohere and Government of Canada sign Memorandum of Understanding to transform the public sector with sovereign AI. \n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/cohere-partnership-canada-government</guid>\n      <category>Newsroom</category>\n      <pubDate>Tue, 19 Aug 2025 08:03:24 -0400</pubDate>\n    </item>\n    <item>\n      <title>Building AI agents that reshape financial services</title>\n      <link>https://cohere.com/blog/ai-agents-for-financial-services</link>\n      <description>Financial teams are unlocking a new era of compliance, efficiency, and customer trust—powered by AI agents.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ai-agents-for-financial-services</guid>\n      <category>For Business</category>\n      <pubDate>Fri, 15 Aug 2025 05:32:15 -0400</pubDate>\n    </item>\n    <item>\n      <title>Elo ratings beyond arena-style evaluations</title>\n      <link>https://cohere.com/blog/elo-ratings-beyond-arena-style-evaluations</link>\n      <description>Insights and best practices for using Elo scoring methods for evaluation leaderboards.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/elo-ratings-beyond-arena-style-evaluations</guid>\n      <category>Research</category>\n      <pubDate>Fri, 15 Aug 2025 01:00:57 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere raises $500M at $6.8B valuation to accelerate enterprise efficiency with agentic AI</title>\n      <link>https://cohere.com/blog/august-2025-funding-round</link>\n      <description>Fresh funding enables Cohere to accelerate its global expansion and build the next generation of secure enterprise and sovereign AI solutions.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/august-2025-funding-round</guid>\n      <category>Company</category>\n      <pubDate>Thu, 14 Aug 2025 09:59:06 -0400</pubDate>\n    </item>\n    <item>\n      <title>Modernizing FOI systems with AI</title>\n      <link>https://cohere.com/blog/foi-systems-with-ai-agents</link>\n      <description>Freedom of information (FOI) request systems need support. The manual, rule-based nature of the process makes them a prime candidate for government AI adoption.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/foi-systems-with-ai-agents</guid>\n      <category>For Business</category>\n      <pubDate>Fri, 08 Aug 2025 07:38:24 -0400</pubDate>\n    </item>\n    <item>\n      <title>Introducing North: The next era of enterprise AI</title>\n      <link>https://cohere.com/blog/north-ga</link>\n      <description>North enables enterprises that prioritize data security to deploy AI agents and automations at scale within their own infrastructure.\n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/north-ga</guid>\n      <category>Company</category>\n      <pubDate>Wed, 06 Aug 2025 08:57:19 -0400</pubDate>\n    </item>\n    <item>\n      <title>Introducing Command A Vision: Multimodal AI built for business</title>\n      <link>https://cohere.com/blog/command-a-vision</link>\n      <description>Command A Vision excels across enterprise image understanding tasks while keeping a low compute footprint.\n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/command-a-vision</guid>\n      <category>Product</category>\n      <pubDate>Thu, 31 Jul 2025 09:55:06 -0400</pubDate>\n    </item>\n    <item>\n      <title>Navigating the global push for sovereign AI</title>\n      <link>https://cohere.com/blog/global-push-for-sovereign-ai</link>\n      <description>Sovereign AI is driving a shift toward secure, locally tailored solutions, redefining global AI innovation and control.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/global-push-for-sovereign-ai</guid>\n      <category>For Business</category>\n      <pubDate>Wed, 30 Jul 2025 11:28:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere and Bell partner to deliver sovereign AI</title>\n      <link>https://cohere.com/blog/bell-partnership</link>\n      <description>Bell Canada and Cohere announced a strategic partnership to provide full-stack sovereign AI solutions for government and enterprise customers across Canada.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/bell-partnership</guid>\n      <category>Newsroom</category>\n      <pubDate>Mon, 28 Jul 2025 12:45:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>Secure and responsible AI for Europe</title>\n      <link>https://cohere.com/blog/secure-and-responsible-ai-for-europe</link>\n      <description>Announcing Cohere’s intention to sign the EU AI Act Code of Practice for General Purpose AI Models.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/secure-and-responsible-ai-for-europe</guid>\n      <category>Company</category>\n      <pubDate>Thu, 24 Jul 2025 09:10:37 -0400</pubDate>\n    </item>\n    <item>\n      <title>Legal work with AI: The DraftWise story</title>\n      <link>https://cohere.com/blog/legal-work-with-ai-the-draftwise-story</link>\n      <description>Transforming legal workflows through innovative and secure AI solutions.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/legal-work-with-ai-the-draftwise-story</guid>\n      <category>For Business</category>\n      <pubDate>Wed, 23 Jul 2025 11:38:23 -0400</pubDate>\n    </item>\n    <item>\n      <title>코히어, 서울에 APAC 허브 설립 발표</title>\n      <link>https://cohere.com/blog/seoul-office</link>\n      <description>새로운 서울 허브를 바탕으로 아시아 태평양 지역으로 확장\n</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/seoul-office</guid>\n      <category>Company</category>\n      <pubDate>Mon, 14 Jul 2025 19:56:06 -0400</pubDate>\n    </item>\n    <item>\n      <title>AI benchmarks: A business guide to effective evaluation</title>\n      <link>https://cohere.com/blog/ai-benchmarks-for-business</link>\n      <description>Public AI benchmarks are necessary but far from sufficient. Companies need to build evaluation systems that reflect real-world complexity and business needs.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ai-benchmarks-for-business</guid>\n      <category>For Business</category>\n      <pubDate>Tue, 08 Jul 2025 09:09:09 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere ouvre un bureau à Montréal</title>\n      <link>https://cohere.com/blog/montreal-office</link>\n      <description>Aujourd'hui, nous étendons notre présence au Canada avec l'ouverture d'un nouveau bureau de Cohere à Montréal.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/montreal-office</guid>\n      <category>Company</category>\n      <pubDate>Thu, 03 Jul 2025 09:59:07 -0400</pubDate>\n    </item>\n    <item>\n      <title>The AI advantage: How financial institutions win with AI</title>\n      <link>https://cohere.com/blog/how-financial-institutions-win-with-ai-infographic</link>\n      <description>This infographic explores how AI is transforming financial services. Learn about productivity gains, operational efficiencies, and the steps financial leaders are taking to win with AI.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/how-financial-institutions-win-with-ai-infographic</guid>\n      <category>For Business</category>\n      <pubDate>Thu, 03 Jul 2025 07:28:51 -0400</pubDate>\n    </item>\n    <item>\n      <title>Security risks in AI supply chains</title>\n      <link>https://cohere.com/blog/security-risks-in-ai-supply-chains</link>\n      <description>A new report by the Coalition for Secure AI details the unfamiliar threats from the data, models, and infrastructure that underpin AI, and how enterprises can tackle them.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/security-risks-in-ai-supply-chains</guid>\n      <category>For Business</category>\n      <pubDate>Tue, 01 Jul 2025 07:10:20 -0400</pubDate>\n    </item>\n    <item>\n      <title>Bringing secure AI to critical systems</title>\n      <link>https://cohere.com/blog/secure-ai-to-critical-systems</link>\n      <description>AI security needs to be tightly woven into the solutions that organizations adopt and the way they adopt them, rather than being treated as an add-on.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/secure-ai-to-critical-systems</guid>\n      <category>For Business</category>\n      <pubDate>Mon, 30 Jun 2025 05:58:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere achieves ISO 42001 and ISO 27001 certifications</title>\n      <link>https://cohere.com/blog/iso-42001-and-iso-27001-certifications</link>\n      <description>Achieving these milestones marks Cohere’s commitment to meet the highest global standards in cybersecurity and responsible AI for our customers.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/iso-42001-and-iso-27001-certifications</guid>\n      <category>Company</category>\n      <pubDate>Fri, 27 Jun 2025 10:10:46 -0400</pubDate>\n    </item>\n    <item>\n      <title>Enterprise AI security challenges and solutions</title>\n      <link>https://cohere.com/blog/ai-security-challenges-and-solutions-webinar</link>\n      <description>Empowering enterprises to innovate with confidence in the AI era.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ai-security-challenges-and-solutions-webinar</guid>\n      <category>For Business</category>\n      <pubDate>Thu, 19 Jun 2025 06:45:22 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere partners with Canada and UK Governments on secure AI</title>\n      <link>https://cohere.com/blog/canada-uk-government-partnerships</link>\n      <description>Canada and the UK will leverage Cohere's secure AI technology to enhance government services and national sovereignty.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/canada-uk-government-partnerships</guid>\n      <category>Company</category>\n      <pubDate>Sun, 15 Jun 2025 12:04:19 -0400</pubDate>\n    </item>\n    <item>\n      <title>Defining AI automation: A new kind of workplace</title>\n      <link>https://cohere.com/blog/ai-automation</link>\n      <description>Learn how to develop an enterprise AI strategy with our step-by-step template and choose the best AI approach for your company.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ai-automation</guid>\n      <category>For Business</category>\n      <pubDate>Fri, 13 Jun 2025 08:21:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere and Ensemble partner to bring agentic AI to healthcare</title>\n      <link>https://cohere.com/blog/ensemble-partnership</link>\n      <description>Ensemble will use North by Cohere to enhance healthcare revenue cycle management with secure AI.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ensemble-partnership</guid>\n      <category>Company</category>\n      <pubDate>Tue, 10 Jun 2025 09:00:59 -0400</pubDate>\n    </item>\n    <item>\n      <title>Secure AI: How to safeguard your AI systems</title>\n      <link>https://cohere.com/blog/secure-ai</link>\n      <description>Learn how to secure your AI systems, identify potential risks, and explore frameworks and best practices to protect your AI models and data.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/secure-ai</guid>\n      <category>For Business</category>\n      <pubDate>Thu, 05 Jun 2025 11:39:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>Cohere and Second Front bring secure AI to the public sector</title>\n      <link>https://cohere.com/blog/second-front-partnership</link>\n      <description>Cohere is partnering with Second Front to deliver secure AI solutions that bolster government services and national security</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/second-front-partnership</guid>\n      <category>Company</category>\n      <pubDate>Wed, 04 Jun 2025 08:55:33 -0400</pubDate>\n    </item>\n    <item>\n      <title>AI in finance: Navigating compliance, efficiency, and scale</title>\n      <link>https://cohere.com/blog/ai-for-financial-institutions-webinar</link>\n      <description>Discover how AI can drive innovation, efficiency, and value creation in your financial institution.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ai-for-financial-institutions-webinar</guid>\n      <category>For Business</category>\n      <pubDate>Tue, 03 Jun 2025 06:48:50 -0400</pubDate>\n    </item>\n    <item>\n      <title>AI customer experience: Shaping engagement with businesses</title>\n      <link>https://cohere.com/blog/ai-customer-experience</link>\n      <description>Discover how different AI solutions help enhance customer interactions by improving personalization, automation, and proactive services.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/ai-customer-experience</guid>\n      <category>For Business</category>\n      <pubDate>Mon, 02 Jun 2025 06:13:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>AI agents: Driving productivity at work</title>\n      <link>https://cohere.com/blog/enterprise-ai-agents-infographic</link>\n      <description>This infographic explores how AI agents boost workplace productivity by automating tasks, improving decision-making, and empowering teams.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/enterprise-ai-agents-infographic</guid>\n      <category>For Business</category>\n      <pubDate>Mon, 02 Jun 2025 04:31:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>Master agentic AI deployment</title>\n      <link>https://cohere.com/blog/agentic-ai-deployment</link>\n      <description>Enable faster agentic AI deployment with secure, customized, and efficient solutions.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/agentic-ai-deployment</guid>\n      <category>For Business</category>\n      <pubDate>Fri, 30 May 2025 08:40:00 -0400</pubDate>\n    </item>\n    <item>\n      <title>Five ways to modernize manufacturing with AI</title>\n      <link>https://cohere.com/blog/manufacturing-and-supply-chain-with-ai</link>\n      <description>From ensuring compliance to working with legacy systems, here are five ways manufacturers can overcome AI adoption challenges.</description>\n      <guid isPermaLink=\"false\">https://cohere.com/blog/manufacturing-and-supply-chain-with-ai</guid>\n      <category>For Business</category>\n      <pubDate>Wed, 28 May 2025 07:52:04 -0400</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_cursor.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Cursor Blog</title>\n    <link>https://cursor.com/blog</link>\n    <description>Latest updates from Cursor</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_cursor.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://cursor.com/favicon.ico</url>\n      <title>Cursor Blog</title>\n      <link>https://cursor.com/blog</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:31 +0000</lastBuildDate>\n    <item>\n      <title>Beyond efficiency: PayPal expands what's possible to build with AI</title>\n      <link>https://cursor.com/blog/paypal</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/paypal</guid>\n      <pubDate>Mon, 11 May 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Updates to Bugbot for Teams and Individuals</title>\n      <link>https://cursor.com/blog/may-2026-bugbot-changes</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/may-2026-bugbot-changes</guid>\n      <category>product</category>\n      <pubDate>Mon, 11 May 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bootstrapping Composer with autoinstall</title>\n      <link>https://cursor.com/blog/bootstrapping-composer-with-autoinstall</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/bootstrapping-composer-with-autoinstall</guid>\n      <category>research</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Continually improving our agent harness</title>\n      <link>https://cursor.com/blog/continually-improving-agent-harness</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/continually-improving-agent-harness</guid>\n      <category>research</category>\n      <pubDate>Thu, 30 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build programmatic agents with the Cursor SDK</title>\n      <link>https://cursor.com/blog/typescript-sdk</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/typescript-sdk</guid>\n      <category>product</category>\n      <pubDate>Wed, 29 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>National Australia Bank accelerates legacy migrations with Cursor</title>\n      <link>https://cursor.com/blog/nab</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/nab</guid>\n      <pubDate>Thu, 23 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cursor partners with SpaceX on model training</title>\n      <link>https://cursor.com/blog/spacex-model-training</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/spacex-model-training</guid>\n      <category>company</category>\n      <pubDate>Tue, 21 Apr 2026 22:17:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Keeping the Cursor app stable</title>\n      <link>https://cursor.com/blog/app-stability</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/app-stability</guid>\n      <category>research</category>\n      <pubDate>Tue, 21 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Amplitude ships 3x more production code with Cursor</title>\n      <link>https://cursor.com/blog/amplitude</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/amplitude</guid>\n      <pubDate>Wed, 15 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Better AI models enable more ambitious work</title>\n      <link>https://cursor.com/blog/better-models-ambitious-work</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/better-models-ambitious-work</guid>\n      <category>research</category>\n      <pubDate>Wed, 15 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Interact with agent-created visualizations in canvases</title>\n      <link>https://cursor.com/blog/canvas</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/canvas</guid>\n      <category>product</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Speeding up GPU kernels by 38% with a multi-agent system</title>\n      <link>https://cursor.com/blog/multi-agent-kernels</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/multi-agent-kernels</guid>\n      <category>research</category>\n      <pubDate>Tue, 14 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bugbot now self-improves with learned rules</title>\n      <link>https://cursor.com/blog/bugbot-learning</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/bugbot-learning</guid>\n      <category>product</category>\n      <pubDate>Wed, 08 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Better MoE model inference with warp decode</title>\n      <link>https://cursor.com/blog/warp-decode</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/warp-decode</guid>\n      <category>research</category>\n      <pubDate>Mon, 06 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meet the new Cursor</title>\n      <link>https://cursor.com/blog/cursor-3</link>\n      <description>Cursor 3 is a unified workspace for building software with agents.</description>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/cursor-3</guid>\n      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Composer 2</title>\n      <link>https://cursor.com/blog/composer-2</link>\n      <description>Frontier-level coding with strong CursorBench results, higher token efficiency, and a faster default variant.</description>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/composer-2</guid>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How we compare model quality in Cursor</title>\n      <link>https://cursor.com/blog/cursorbench</link>\n      <description>We use a hybrid online-offline eval process to keep our understanding of model quality aligned with what developers actually do.</description>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/cursorbench</guid>\n      <pubDate>Wed, 11 Mar 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>PlanetScale protects production reliability with Bugbot</title>\n      <link>https://cursor.com/blog/planetscale</link>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/planetscale</guid>\n      <pubDate>Mon, 02 Mar 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The third era of AI software development</title>\n      <link>https://cursor.com/blog/third-era</link>\n      <description>A third era of AI software development is emerging as autonomous cloud agents take on larger tasks over longer timescales.</description>\n      <guid isPermaLink=\"false\">https://cursor.com/blog/third-era</guid>\n      <pubDate>Thu, 26 Feb 2026 19:35:24 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_dagster.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Dagster Blog</title>\n    <link>https://dagster.io/blog</link>\n    <description>Latest updates from Dagster</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_dagster.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:33 +0000</lastBuildDate>\n    <item>\n      <title>Announcing the Dagster+ Terraform Provider</title>\n      <link>https://dagster.io/blog/announcing-the-dagster-terraform-provider</link>\n      <description>The Dagster+ Terraform provider lets platform teams manage deployments, access controls, alerting, and more as code. Define entire environments declaratively, review changes through pull requests, and integrate Dagster+ into your existing infrastructure workflows.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/announcing-the-dagster-terraform-provider</guid>\n      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Missing Half of the Enterprise Context Layer</title>\n      <link>https://dagster.io/blog/the-missing-half-of-the-enterprise-context-layer</link>\n      <description>AI agents that only understand business definitions without knowing whether the underlying pipeline actually succeeded are confidently wrong and operational context from the orchestrator is the missing piece.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/the-missing-half-of-the-enterprise-context-layer</guid>\n      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Orchestrate Across Multiple Databricks Workspaces Without Losing Your Mind</title>\n      <link>https://dagster.io/blog/how-to-orchestrate-across-multiple-databricks-workspaces-without-losing-your-mind</link>\n      <description>Once your pipelines span multiple Databricks workspaces, you're no longer orchestrating a single system you're coordinating a distributed one.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/how-to-orchestrate-across-multiple-databricks-workspaces-without-losing-your-mind</guid>\n      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster 1.13: Octopus's Garden</title>\n      <link>https://dagster.io/blog/dagster-1-13-octopuss-garden</link>\n      <description>Dagster skills, partitioned asset checks, state backed components, virtual assets, and stronger integrations.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-13-octopuss-garden</guid>\n      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Monorepos, the hub-and-spoke model, and Copybara</title>\n      <link>https://dagster.io/blog/monorepos-the-hub-and-spoke-model-and-copybara</link>\n      <description>How we configure Copybara for bi-directional syncing to enable a hub-and-spoke model for Git repositories</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/monorepos-the-hub-and-spoke-model-and-copybara</guid>\n      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Making Dagster Easier to Contribute to in an AI-Driven World</title>\n      <link>https://dagster.io/blog/making-dagster-easier-to-contribute</link>\n      <description>AI has made contributing to open source easier but reviewing contributions is still hard. At Dagster, we’re improving the contributor experience with smarter review tooling, clearer guidelines, and a focus on contributions that are easier to evaluate, merge, and maintain.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/making-dagster-easier-to-contribute</guid>\n      <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DataOps with Dagster: A Practical Guide to Building a Reliable Data Platform</title>\n      <link>https://dagster.io/blog/dataops-with-dagster-a-practical-guide-to-building-a-reliable-data-platform</link>\n      <description>DataOps is about building a system that provides visibility into what's happening and control over how it behaves</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dataops-with-dagster-a-practical-guide-to-building-a-reliable-data-platform</guid>\n      <pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unlocking the Full Value of Your Databricks</title>\n      <link>https://dagster.io/blog/unlocking-the-full-value-of-your-databricks</link>\n      <description>Standardizing on Databricks is a smart strategic move, but consolidation alone does not create a working operating model across teams, tools, and downstream systems. By pairing Databricks and Unity Catalog with Dagster, enterprises can add the coordination layer needed for dependency visibility, end-to-end lineage, and faster, more confident delivery at scale.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/unlocking-the-full-value-of-your-databricks</guid>\n      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing AI Driven Data Engineering</title>\n      <link>https://dagster.io/blog/announcing-ai-driven-data-engineering</link>\n      <description>AI coding agents are changing how data engineers work. This Dagster University course shows how to build a production-ready ELT pipeline from prompts while learning practical patterns for reliable AI-assisted development.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/announcing-ai-driven-data-engineering</guid>\n      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>When to Move from Dagster OSS to Dagster+</title>\n      <link>https://dagster.io/blog/when-to-move-from-dagster-oss-to-dagster</link>\n      <description>Dagster OSS is built for builders. But as teams grow, the operational burden of running the platform can quietly consume engineering time. This guide explains when it makes sense to move to Dagster+ and shift your focus back to building data products.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/when-to-move-from-dagster-oss-to-dagster</guid>\n      <pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sample-Level Versioning for ML Pipelines with Dagster and Metaxy</title>\n      <link>https://dagster.io/blog/building-real-time-interactive-avatars-with-metaxy</link>\n      <description>Learn how Metaxy can be used to build multimodal data pipelines with sample-level granularity on Dagster</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/building-real-time-interactive-avatars-with-metaxy</guid>\n      <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evaluating Skills</title>\n      <link>https://dagster.io/blog/evaluating-agent-skills</link>\n      <description>We built a light weight evaluation framework to quantiatively measure the effectiveness of the Dagster Skills, and these are our findings.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/evaluating-agent-skills</guid>\n      <pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Great Infrastructure Needs Great Stories: Designing our Children’s Book</title>\n      <link>https://dagster.io/blog/great-infrastructure-needs-great-stories</link>\n      <description>We set out to explain Dagster assets in the simplest possible way: as living characters that wait, react, and change with their dependencies. By designing a children’s book with warmth, visuals, and motion, we rediscovered what makes assets compelling in the first place.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/great-infrastructure-needs-great-stories</guid>\n      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Closing the DataOps Loop: Why We Built Compass for Dagster+</title>\n      <link>https://dagster.io/blog/closing-the-dataops-loop-why-we-built-compass-for-dagster</link>\n      <description>Detection isn't the bottleneck anymore. Understanding is. Compass closes the loop by turning Dagster+ operational data into a conversation.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/closing-the-dataops-loop-why-we-built-compass-for-dagster</guid>\n      <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pytest for Agent-Generated Code: Concrete Testing Strategies to Put Into Practice</title>\n      <link>https://dagster.io/blog/pytest-for-agent-generated-code-concrete-testing-strategies-to-put-into-practice</link>\n      <description>When agents write tests, intent matters as much as correctness. By defining clear testing levels, preferred patterns, and explicit anti-patterns, we give agents the structure they need to produce fast, reliable Pytest suites that scale with automation.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/pytest-for-agent-generated-code-concrete-testing-strategies-to-put-into-practice</guid>\n      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster + Snowflake: Building Production AI Pipelines with Cortex</title>\n      <link>https://dagster.io/blog/dagster-snowflake-cortex</link>\n      <description>Snowflake handles AI compute while Dagster handles orchestration, observability, and the operational patterns that turn AI experiments into reliable production pipelines.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-snowflake-cortex</guid>\n      <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Your GTM Data, Finally Untangled</title>\n      <link>https://dagster.io/blog/your-gtm-data-finally-untangled</link>\n      <description>Compass now connects directly to your go-to-market tools, letting you ask questions about pipeline, ad spend, and sales conversations in Slack without exporting CSVs or waiting on the data team.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/your-gtm-data-finally-untangled</guid>\n      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dignified Python: 10 Rules to Improve your LLM Agents</title>\n      <link>https://dagster.io/blog/dignified-python-10-rules-to-improve-your-llm-agents</link>\n      <description>Modern LLMs generate patterns, not principles. Dignified Python gives agents the intent they lack, ensuring code is explicit, consistent, and engineered with care. Here are ten rules from our Claude prompt.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dignified-python-10-rules-to-improve-your-llm-agents</guid>\n      <pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evaluating Model Behavior Through Chess</title>\n      <link>https://dagster.io/blog/evaluating-model-behavior-through-chess</link>\n      <description>Benchmarks measure outcomes, not behavior. By letting AI models play chess in repeatable tournaments, we can observe how they handle risk, repetition, and long-term objectives, revealing patterns that static evals hide.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/evaluating-model-behavior-through-chess</guid>\n      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Enforce Data Quality at Every Stage: A Practical Guide to Catching Issues Before They Cost You</title>\n      <link>https://dagster.io/blog/how-to-enforce-data-quality-at-every-stage</link>\n      <description>This post gives you a framework for enforcing data quality at every stage so you catch issues early, maintain trust, and build platforms that actually work in production.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/how-to-enforce-data-quality-at-every-stage</guid>\n      <pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>When Sync Isn’t Enough</title>\n      <link>https://dagster.io/blog/when-sync-isnt-enough</link>\n      <description>This post introduces a custom async executor for Dagster that enables high-concurrency fan-out, async-native libraries, and incremental adoption, without changing how runs are launched or monitored.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/when-sync-isnt-enough</guid>\n      <pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Build a Data Platform That Actually Scales</title>\n      <link>https://dagster.io/blog/how-to-build-a-data-platform-that-actually-scales</link>\n      <description>Most teams build data platforms reactively when you should be architecting one that scales with your business, not against it.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/how-to-build-a-data-platform-that-actually-scales</guid>\n      <pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Orchestrating Nanochat: Deploying the Model</title>\n      <link>https://dagster.io/blog/orchestrating-nanochat-deploying-the-model</link>\n      <description>Once the model is trained, the final step is getting it into users’ hands. This guide walks through turning your model into a fast, reliable RunPod endpoint—complete with orchestration and automated updates from Dagster.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/orchestrating-nanochat-deploying-the-model</guid>\n      <pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Data Ingestion Patterns: When to Use Push, Pull, and Poll (With Real Examples)</title>\n      <link>https://dagster.io/blog/data-ingestion-patterns-when-to-use-push-pull-and-poll</link>\n      <description>A practical guide to choosing between push, pull, and poll data ingestion patterns. With real Dagster code examples to help you build reliable, maintainable pipelines.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/data-ingestion-patterns-when-to-use-push-pull-and-poll</guid>\n      <pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster + Atlan: Real-Time Asset Observability in Your Data Catalog</title>\n      <link>https://dagster.io/blog/dagster-atlan-integration</link>\n      <description>Automatically sync asset materialization events and lineage from Dagster Cloud to Atlan</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-atlan-integration</guid>\n      <pubDate>Thu, 11 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Orchestrating Nanochat: Training the Models</title>\n      <link>https://dagster.io/blog/orchestrating-nanochat-training-the-models</link>\n      <description>Training an LLM isn’t one job—it’s a sequence of carefully managed stages. This part shows how Dagster coordinates your training steps on RunPod so every experiment is reproducible, scalable, and GPU-efficient.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/orchestrating-nanochat-training-the-models</guid>\n      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Orchestrating Nanochat: Building the Tokenizer</title>\n      <link>https://dagster.io/blog/orchestrating-nanochat-building-the-tokenizer</link>\n      <description>Every great model starts with great data. This first part walks through how to structure ingestion with Dagster, prepare your text corpus, and build a tokenizer that shapes how your model understands the world.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/orchestrating-nanochat-building-the-tokenizer</guid>\n      <pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>When (and When Not) to Optimize Data Pipelines</title>\n      <link>https://dagster.io/blog/when-and-when-not-to-optimize-data-pipelines</link>\n      <description>Engineers often optimize the wrong parts of their pipelines, here's a profiling-first framework to identify real bottlenecks and avoid the premature optimization trap.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/when-and-when-not-to-optimize-data-pipelines</guid>\n      <pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Your Data Team Shouldn't Be a Help Desk: Use Compass with Your Data</title>\n      <link>https://dagster.io/blog/compass-now-available</link>\n      <description>Compass now supports every major data warehouse. Connect your own data and get AI-powered answers directly in Slack, with your governance intact and your data staying exactly where it is.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/compass-now-available</guid>\n      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Our New eBook: Scaling Data Teams</title>\n      <link>https://dagster.io/blog/introducing-our-new-ebook-scaling-data-teams</link>\n      <description>Learn how real data teams, from solo practitioners to enterprise-scale organizations, build in Dagster’s new eBook, Scaling Data Teams.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/introducing-our-new-ebook-scaling-data-teams</guid>\n      <pubDate>Wed, 05 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster 1.12: Monster Mash</title>\n      <link>https://dagster.io/blog/dagster-1-12-monster-mash</link>\n      <description>A refined Dagster experience. Faster navigation, GA Components, plug-and-play deployment, improved orchestration with FreshnessPolicies, and a new Support Center for builders at scale.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-12-monster-mash</guid>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Compass Turns Questions Into Queries</title>\n      <link>https://dagster.io/blog/how-compass-turns-questions-into-queries</link>\n      <description>Go behind the scenes of Compass, Dagster’s analyst copilot, to see how it transforms plain-language questions into precise, optimized SQL queries. Learn how each step of the query-generation process helps analysts move faster and stay focused on insights.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/how-compass-turns-questions-into-queries</guid>\n      <pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Scaling Analysis Without Scaling the Team</title>\n      <link>https://dagster.io/blog/scaling-analysis-without-scaling-the-team</link>\n      <description>Learn how to maximize the impact of your data stack with a lean team—keeping your analysts at the heart of every decision.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/scaling-analysis-without-scaling-the-team</guid>\n      <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bridging High-Code and Low-Code</title>\n      <link>https://dagster.io/blog/bridging-high-code-and-low-code</link>\n      <description>Empowering engineers with flexibility and analysts with accessibility</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/bridging-high-code-and-low-code</guid>\n      <pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building a Better Lakehouse: From Airflow to Dagster</title>\n      <link>https://dagster.io/blog/building-a-better-lakehouse-from-airflow-to-dagster</link>\n      <description>How I took an excellent lakehouse tutorial and made it even better with modern data orchestration</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/building-a-better-lakehouse-from-airflow-to-dagster</guid>\n      <pubDate>Tue, 30 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Designing User-Friendly Dagster Components</title>\n      <link>https://dagster.io/blog/designing-user-friendly-dagster-components</link>\n      <description>The difference between components that thrive and components that collect digital dust? User experience design.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/designing-user-friendly-dagster-components</guid>\n      <pubDate>Thu, 25 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster+ Now Available in the EU</title>\n      <link>https://dagster.io/blog/dagster-plus-now-available-in-the-eu</link>\n      <description>We're thrilled to announce that Dagster+ has arrived in Europe!</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-plus-now-available-in-the-eu</guid>\n      <pubDate>Fri, 19 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Components are Generally Available (GA)</title>\n      <link>https://dagster.io/blog/dagster-components-ga</link>\n      <description>Featuring YAML-based pipeline definitions, plug-and-play integrations, automatic documentation, and a unified CLI experience.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-components-ga</guid>\n      <pubDate>Thu, 18 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Compass: Data-driven decisions right in Slack</title>\n      <link>https://dagster.io/blog/introducing-compass</link>\n      <description>Converse with your company's data right in Dagster. Compass moves beyond static dashboards by enabling a natural language, two-way conversation with your data. This allows anyone to ask follow-up questions, incorporate their own business context, and achieve true data fluency without writing a single line of SQL.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/introducing-compass</guid>\n      <pubDate>Wed, 10 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the new Dagster+ UI – Your Data Platform’s Command Center</title>\n      <link>https://dagster.io/blog/introducing-the-new-dagster-plus-ui</link>\n      <description>Featuring a new modern homepage, enhanced asset health and freshness monitoring, customizable dashboards, and real-time insights with cost monitoring.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/introducing-the-new-dagster-plus-ui</guid>\n      <pubDate>Wed, 10 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>dbt Fusion Support Comes to Dagster</title>\n      <link>https://dagster.io/blog/dbt-fusion-support-comes-to-dagster</link>\n      <description>Learn how to use the beta dbt Fusion engine in your Dagster pipelines, and the technical details of how support was added</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dbt-fusion-support-comes-to-dagster</guid>\n      <pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What CoPilot Won’t Teach You About Python (Part 2)</title>\n      <link>https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-2</link>\n      <description>Explore another set of powerful yet overlooked Python features—from overload and cached_property to contextvars and ExitStack</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-2</guid>\n      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Software-Defined Assets Explained</title>\n      <link>https://dagster.io/blog/software-defined-assets</link>\n      <description>Software-Defined Assets are a new abstraction that allows data teams to focus on the end products, not just the individual tasks, in their data pipeline.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/software-defined-assets</guid>\n      <pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Untangling Python Packages Part 2</title>\n      <link>https://dagster.io/blog/untangling-python-packages-part-2</link>\n      <description>A deep dive into how Dagster leverages pyproject.toml for modern Python packaging, from project metadata and dependencies to build systems and development tooling.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/untangling-python-packages-part-2</guid>\n      <pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Untangling Python Packages Part 1</title>\n      <link>https://dagster.io/blog/untangling-python-packages-part-1</link>\n      <description>Python's clean syntax makes it easy to jump into unfamiliar codebases, but this simplicity often masks the intricate world of packaging that confuses many developers.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/untangling-python-packages-part-1</guid>\n      <pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Practical Guide to Dagster Resources</title>\n      <link>https://dagster.io/blog/a-practical-guide-to-dagster-resources</link>\n      <description>How dependency injection and smart resource management can save your sanity (and your deployments)</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/a-practical-guide-to-dagster-resources</guid>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Structure Your Dagster Project</title>\n      <link>https://dagster.io/blog/how-to-structure-your-dagster-project</link>\n      <description>Setting up your Dagster project the right way from day one saves you headaches later, makes your team more effective, and helps scale.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/how-to-structure-your-dagster-project</guid>\n      <pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What CoPilot Won’t Teach You About Python (Part 1)</title>\n      <link>https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-1</link>\n      <description>Advanced Python features that AI agents may miss</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-1</guid>\n      <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing ETL Course with Dagster</title>\n      <link>https://dagster.io/blog/annoucing-etl-with-dagster</link>\n      <description>Dagster is excited to announce the launch of ETL with Dagster, a comprehensive seven-lesson course. This free course guides you through practical ETL implementation and architectural considerations, from single-file ingestion to full-scale database replication</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/annoucing-etl-with-dagster</guid>\n      <pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster 1.11: Build Me Up Buttercup</title>\n      <link>https://dagster.io/blog/dagster-1-11-build-me-up-buttercup</link>\n      <description>Significantly improved pipeline-building experience with Components and dg, enhanced orchestration capabilities, integration power-ups, and more.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-11-build-me-up-buttercup</guid>\n      <pubDate>Thu, 26 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DSLs to the Rescue</title>\n      <link>https://dagster.io/blog/dsls-to-the-rescue</link>\n      <description>Designing better data tooling with DSLs</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dsls-to-the-rescue</guid>\n      <pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Code Location Best Practices</title>\n      <link>https://dagster.io/blog/code-location-best-practices</link>\n      <description>How to organize your code locations for clarity, maintainability, and reuse.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/code-location-best-practices</guid>\n      <pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Beyond Point to Point</title>\n      <link>https://dagster.io/blog/beyond-point-to-point</link>\n      <description>Why Modern Data Teams Need Orchestration, Not Just Integration</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/beyond-point-to-point</guid>\n      <pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Vibe Coding Survival Guide</title>\n      <link>https://dagster.io/blog/vibe-coding-survival-guide</link>\n      <description>How data engineers can get the most from AI coding</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/vibe-coding-survival-guide</guid>\n      <pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Pipes: Now available for TypeScript, Rust, and Java</title>\n      <link>https://dagster.io/blog/pipes-typescript-rust-java</link>\n      <description>Expanding Dagster pipes to support Typescript, Rust, and Java</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/pipes-typescript-rust-java</guid>\n      <pubDate>Mon, 12 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cut Through the Noise: Precision Data Management with Dagster's Asset Selection Framework</title>\n      <link>https://dagster.io/blog/updated-asset-selection-syntax</link>\n      <description>Data platforms can be complex, Dagster's understanding of Lineage makes it easy to get to whats important.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/updated-asset-selection-syntax</guid>\n      <pubDate>Thu, 08 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Accelerate Data Pipeline Development with Dagster Components</title>\n      <link>https://dagster.io/blog/accelerate-data-pipeline-development-with-dagster-components</link>\n      <description>Introducing Dagster Components, a simplified approach to developing and managing your data pipelines</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/accelerate-data-pipeline-development-with-dagster-components</guid>\n      <pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Case for Dagster: Moving Beyond Airflow in the Modern Data Stack™</title>\n      <link>https://dagster.io/blog/moving-beyond-airflow-in-the-modern-data-stack</link>\n      <description>How we think about data orchestration needs to fundamentally change, and Dagster represents that shift in thinking.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/moving-beyond-airflow-in-the-modern-data-stack</guid>\n      <pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why we love uv</title>\n      <link>https://dagster.io/blog/why-we-love-uv</link>\n      <description>Making Python package management simple and how Dagster leverages uv.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/why-we-love-uv</guid>\n      <pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Free Your Mind With Dagster</title>\n      <link>https://dagster.io/blog/free-your-mind-with-dagster</link>\n      <description>You need tools that handle the trivial stuff and give you, your team, and your company space to think and act decisively.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/free-your-mind-with-dagster</guid>\n      <pubDate>Wed, 09 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>MS Fabric vs. Dagster: Why Your Architecture Choices Matter</title>\n      <link>https://dagster.io/blog/dagster-fabric</link>\n      <description>The fundamental challenge facing data teams today is building scalable platforms that enable self-service for data consumers.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-fabric</guid>\n      <pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster University Presents: Testing with Dagster</title>\n      <link>https://dagster.io/blog/dagster-university-presents-testing-with-dagster</link>\n      <description>Learn best practices for writing Pythonic tests for Dagster.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-university-presents-testing-with-dagster</guid>\n      <pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Observability That Matters with Dagster+ Alerts</title>\n      <link>https://dagster.io/blog/observability-that-matters-with-dagster-alerts</link>\n      <description>Broken pipelines are unavoidable. Catch problems as soon as they happen with the improved alerting suite in Dagster+.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/observability-that-matters-with-dagster-alerts</guid>\n      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building with Dagster vs Airflow</title>\n      <link>https://dagster.io/blog/building-with-dagster-vs-airflow</link>\n      <description>Rebuilding Airflow's tutorial in Dagster</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/building-with-dagster-vs-airflow</guid>\n      <pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster 1.10: Mambo No 5</title>\n      <link>https://dagster.io/blog/dagster-1-10-mambo-no-5</link>\n      <description>Intuitive Concurrency Controls, Improved ELT integrations, and Developer Experience Upgrades</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-10-mambo-no-5</guid>\n      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>From Prototype to Production: Building AI Products That Scale with Dagster</title>\n      <link>https://dagster.io/blog/building-ai-products-that-scale</link>\n      <description>Modern AI development requires different patterns than traditional software. By combining familiar engineering practices with new approaches for handling the probabilistic nature of AI, teams can successfully scale their AI products into production.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/building-ai-products-that-scale</guid>\n      <pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Reference Architectures</title>\n      <link>https://dagster.io/blog/ai-reference-architectures</link>\n      <description>Guide to the some common AI Architectures patterns with Dagster</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/ai-reference-architectures</guid>\n      <pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Data Platform Week 2024</title>\n      <link>https://dagster.io/blog/data-platform-week-2024</link>\n      <description>The future of data platforms are composable, unified, and leveraged</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/data-platform-week-2024</guid>\n      <pubDate>Tue, 17 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Interactive Debugging With Dagster and Docker</title>\n      <link>https://dagster.io/blog/interactive-debugging-with-dagster-and-docker</link>\n      <description>Step-by-step guide to debugging Dagster code directly in Docker, bridging the gap between development and deployment.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/interactive-debugging-with-dagster-and-docker</guid>\n      <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bridging Business Intelligence and Data Orchestration with Dagster + Sigma</title>\n      <link>https://dagster.io/blog/dagster-sigma</link>\n      <description>Break down the silos between data engineering and BI tools</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-sigma</guid>\n      <pubDate>Thu, 14 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing 4 New Integrations: Dagster + Your Favorite BI Tools</title>\n      <link>https://dagster.io/blog/dagster-power-bi</link>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-power-bi</guid>\n      <pubDate>Thu, 14 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster 1.9: Spooky</title>\n      <link>https://dagster.io/blog/dagster-1-9-spooky</link>\n      <description>Declarative automation has officially graduated, BI in your asset graph, Airlift to streamline migrations, and more.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-9-spooky</guid>\n      <pubDate>Thu, 31 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI's Long-Term Impact on Data Engineering Roles</title>\n      <link>https://dagster.io/blog/ai-and-data-engineering-roles</link>\n      <description>Expectations for Data Engineering will rapidly inflate; the nature of the work will change.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/ai-and-data-engineering-roles</guid>\n      <pubDate>Mon, 28 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>From Chaos to Control: How Dagster Unifies Orchestration and Data Cataloging</title>\n      <link>https://dagster.io/blog/data-catalog</link>\n      <description>Navigate complex data environments more effectively, and ensure that valuable data assets are easily discoverable and usable.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/data-catalog</guid>\n      <pubDate>Mon, 14 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>10 Reasons Why No-Code Solutions Almost Always Fail</title>\n      <link>https://dagster.io/blog/why-no-code-solutions-almost-always-fail</link>\n      <description>No-code solutions sound easy – until they aren’t. Here’s why they often fail and what you can do about it for your data engineering.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/why-no-code-solutions-almost-always-fail</guid>\n      <pubDate>Thu, 03 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>5 Best Practices AI Engineers Should Learn From Data Engineering</title>\n      <link>https://dagster.io/blog/ai-engineering-is-data-engineering</link>\n      <description>AI engineering is data engineering. Here are 5 best practices the former should adopt from the latter to succeed.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/ai-engineering-is-data-engineering</guid>\n      <pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Deep Dive Recap: Orchestrating Flexible Compute for ML with Dagster and Modal</title>\n      <link>https://dagster.io/blog/deepdive-recap-dagster-modal</link>\n      <description>Learn how to use Dagster and Modal to automate and streamline your machine learning model training and data processing.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/deepdive-recap-dagster-modal</guid>\n      <pubDate>Fri, 27 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Rise of the Data Platform Engineer</title>\n      <link>https://dagster.io/blog/rise-of-the-data-platform-engineer</link>\n      <description>How the next step in the evolution of the Data Engineering role requires a platform approach.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/rise-of-the-data-platform-engineer</guid>\n      <pubDate>Thu, 26 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster vs. Airflow</title>\n      <link>https://dagster.io/blog/dagster-airflow</link>\n      <description>Get the tale of the tape between the two orchestration giants and see why Dagster stands tall as the superior choice.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-airflow</guid>\n      <pubDate>Mon, 23 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What is Data Visibility?</title>\n      <link>https://dagster.io/blog/data-visibility-primer</link>\n      <description>The unseen data is often the deadliest. Here’s how to shine a light on it in your business.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/data-visibility-primer</guid>\n      <pubDate>Thu, 12 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Deep Dive Recap: Building a True Data Platform</title>\n      <link>https://dagster.io/blog/deepdive-recap-building-a-true-data-platform</link>\n      <description>Move past the MDS and build a data platform for observability, cost-efficiency, and top-tier orchestrating.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/deepdive-recap-building-a-true-data-platform</guid>\n      <pubDate>Fri, 06 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Deep Dive Recap: Evolution of the Data Platform</title>\n      <link>https://dagster.io/blog/deepdive-recap-evolution-data-platform</link>\n      <description>Dagster and SDF show how the power of two can connect local development and production orchestration.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/deepdive-recap-evolution-data-platform</guid>\n      <pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster 1.8: Call Me Maybe</title>\n      <link>https://dagster.io/blog/dagster-1-8-call-me-maybe</link>\n      <description>Ecosystem and integration improvements, data catalog improvements, new asset checks, new declarative automation, and more.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-8-call-me-maybe</guid>\n      <pubDate>Thu, 08 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Deep Dive Recap: Building Reliable Data Platforms</title>\n      <link>https://dagster.io/blog/deepdive-recap-data-reliability</link>\n      <description>Explore the importance of data quality and learn strategies for integrating quality checks using Dagster.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/deepdive-recap-data-reliability</guid>\n      <pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Look Inside the Dagster Labs Culture</title>\n      <link>https://dagster.io/blog/a-look-inside-dagster-labs-culture</link>\n      <description>Operations Lead Eunice Ho dives into the Dagster Labs culture and why it makes for an ideal work environment.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/a-look-inside-dagster-labs-culture</guid>\n      <pubDate>Thu, 18 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Enabling Data Quality with Dagster and Great Expectations</title>\n      <link>https://dagster.io/blog/ensuring-data-quality-with-dagster-and-great-expectations</link>\n      <description>Use Dagster and GX to improve data pipeline reliability without writing custom logic for data testing.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/ensuring-data-quality-with-dagster-and-great-expectations</guid>\n      <pubDate>Mon, 08 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Rise of Medium Code</title>\n      <link>https://dagster.io/blog/the-rise-of-medium-code</link>\n      <description>Why the reports of software’s demise are greatly exaggerated.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/the-rise-of-medium-code</guid>\n      <pubDate>Mon, 10 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ELT Options in Dagster</title>\n      <link>https://dagster.io/blog/elt-options-in-dagster</link>\n      <description>Why running data ingestion jobs straight from the orchestrator is often a preferred approach.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/elt-options-in-dagster</guid>\n      <pubDate>Wed, 05 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster’s Code Location Architecture</title>\n      <link>https://dagster.io/blog/dagster-code-locations</link>\n      <description>A structure for a reliable, maintainable data platform design.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-code-locations</guid>\n      <pubDate>Tue, 28 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What is Dagster: A Guide to the Data Orchestrator</title>\n      <link>https://dagster.io/blog/what-is-dagster</link>\n      <description>Get to know the tool that sets the standard for modern data orchestration.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/what-is-dagster</guid>\n      <pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building Cost Effective AI Pipelines with OpenAI, LangChain, and Dagster</title>\n      <link>https://dagster.io/blog/building-cost-effective-ai-pipelines-openai-langchain-dagster</link>\n      <description>Leverage the power of LLMs while keeping the costs in check using the Dagster OpenAI integration.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/building-cost-effective-ai-pipelines-openai-langchain-dagster</guid>\n      <pubDate>Wed, 08 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unlocking Flexible Pipelines: Customizing the Asset Decorator</title>\n      <link>https://dagster.io/blog/unlocking-flexible-pipelines-customizing-asset-decorator</link>\n      <description>Use Asset Factories within Dagster to streamline data asset creation, promote code reusability, and maintain data engineering workflows.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/unlocking-flexible-pipelines-customizing-asset-decorator</guid>\n      <pubDate>Tue, 30 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ensuring Reliable Data with Dagster+</title>\n      <link>https://dagster.io/blog/ensuring-reliable-data-dagster-plus</link>\n      <description>Dagster+ helps you monitor the freshness, quality, and schema of your data.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/ensuring-reliable-data-dagster-plus</guid>\n      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster+ Catalog: A New Built-in Asset Library for All Practitioners</title>\n      <link>https://dagster.io/blog/dagster-plus-calatog-a-new-built-in-asset-library</link>\n      <description>Give your data teams a powerful new system of record without the overhead of maintaining a third-party catalog.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-plus-calatog-a-new-built-in-asset-library</guid>\n      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>See Both the Forest and the Trees with Dagster+ Insights</title>\n      <link>https://dagster.io/blog/see-the-forest-and-trees-dagster-plus</link>\n      <description>How Dagster+ Insights helps you control costs and elevate your data platform’s observability.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/see-the-forest-and-trees-dagster-plus</guid>\n      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Change Tracking Branch Deployments in Dagster+</title>\n      <link>https://dagster.io/blog/change-tracking-branch-deployments-in-dagster-plus</link>\n      <description>Dagster+ further enhances identification and collaboration around changes to your data pipelines.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/change-tracking-branch-deployments-in-dagster-plus</guid>\n      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Data Engineering Impedance Mismatch</title>\n      <link>https://dagster.io/blog/impedance-mismatch-in-data-orchestration</link>\n      <description>A case for asset-oriented over workflow-oriented in data orchestration.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/impedance-mismatch-in-data-orchestration</guid>\n      <pubDate>Wed, 10 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Dagster 1.7: Love Plus One</title>\n      <link>https://dagster.io/blog/dagster-1-7-love-plus-one</link>\n      <description>A major set of updates to Dagster Core ahead of our Dagster+ launch.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-7-love-plus-one</guid>\n      <pubDate>Mon, 08 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding the Dagster Embedded ELT Ecosystem with dltHub for Data Ingestion</title>\n      <link>https://dagster.io/blog/expanding-dagsters-embedded-elt-ecosystem-with-dlthub-for-data-ingestion</link>\n      <description>We now have an officially supported dlt integration.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/expanding-dagsters-embedded-elt-ecosystem-with-dlthub-for-data-ingestion</guid>\n      <pubDate>Fri, 05 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sling Out Your ETL Provider with Embedded ELT</title>\n      <link>https://dagster.io/blog/sling-out-your-etl-provider-with-embedded-elt</link>\n      <description>How we saved $40k and gained better control over our ingestion steps.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/sling-out-your-etl-provider-with-embedded-elt</guid>\n      <pubDate>Wed, 03 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Exploring The Data Engineering Lifecycle</title>\n      <link>https://dagster.io/blog/the-data-engineering-lifecycle</link>\n      <description>Learn the fundamentals of a healthy data engineering lifecycle to optimize pipeline and asset production.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/the-data-engineering-lifecycle</guid>\n      <pubDate>Tue, 26 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New Dagster Integration: Include OpenAI Calls Into Your Data Pipelines</title>\n      <link>https://dagster.io/blog/dagster-openai</link>\n      <description>The new dagster-openai integration lets you tap into the power of LLMs in a cost-efficient way.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-openai</guid>\n      <pubDate>Mon, 11 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Breaking Packages in Python</title>\n      <link>https://dagster.io/blog/python-breaking-packages</link>\n      <description>An exposé of the nooks and crannies of Python’s modules and packages.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-breaking-packages</guid>\n      <pubDate>Tue, 27 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Balancing the Data Scales: Centralization vs. Decentralization</title>\n      <link>https://dagster.io/blog/balancing-the-data-scales-centralization-vs-decentralization</link>\n      <description>Learn how organizations can harness the strengths of both approaches to optimize their data operations.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/balancing-the-data-scales-centralization-vs-decentralization</guid>\n      <pubDate>Fri, 23 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Standardize Pipelines with Domain-Specific Languages</title>\n      <link>https://dagster.io/blog/scale-and-standardize-data-pipelines-with-dsl</link>\n      <description>By implementing DSLs, data teams can open their data platform to many more users without compromising on standards.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/scale-and-standardize-data-pipelines-with-dsl</guid>\n      <pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Thinking in Assets When Building Data Pipelines</title>\n      <link>https://dagster.io/blog/thinking-in-assets</link>\n      <description>How to develop data pipelines using Software-defined Assets.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/thinking-in-assets</guid>\n      <pubDate>Mon, 05 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Dagster Believes About Data Platforms</title>\n      <link>https://dagster.io/blog/what-dagster-believes-about-data-platforms</link>\n      <description>The beliefs that organizations adopt about the way their data platforms should function influence their outcomes. Here are ours.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/what-dagster-believes-about-data-platforms</guid>\n      <pubDate>Mon, 29 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Dagster 1.6: Back to Black</title>\n      <link>https://dagster.io/blog/dagster-1-6-back-to-black</link>\n      <description>Major UI enhancements, Dagster Pipes upgrades and of course, dark mode :-)</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-6-back-to-black</guid>\n      <pubDate>Fri, 12 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Retain.ai joins Dagster Labs</title>\n      <link>https://dagster.io/blog/dagster-labs-retain-ai</link>\n      <description>We’re excited and humbled to bring the Retain.ai organization into our fold to help build out Dagster’s data orchestration capabilities.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-labs-retain-ai</guid>\n      <pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Dagster Labs runs Dagster: Open-Sourcing our Own Pipelines</title>\n      <link>https://dagster.io/blog/how-dagster-labs-runs-dagster</link>\n      <description>A technical deep dive into the patterns and implementations of the Dagster Open Platform using our open-sourced code and dbt models.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/how-dagster-labs-runs-dagster</guid>\n      <pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Scaling Dagster’s DAG Visualization to Handle Tens of Thousands of Assets</title>\n      <link>https://dagster.io/blog/scaling-dag-visualization</link>\n      <description>How the Dagster frontend team rapidly scaled Dagster’s DAG visualization for enterprise-sized data asset graphs.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/scaling-dag-visualization</guid>\n      <pubDate>Wed, 29 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>High-performance Python for Data Engineering</title>\n      <link>https://dagster.io/blog/python-high-performance</link>\n      <description>Learn how to optimize your Python data pipeline code to run faster with our high-performance Python guide for data engineers.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-high-performance</guid>\n      <pubDate>Mon, 20 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Orchestrate Unstructured Data Pipelines with Dagster and dlt</title>\n      <link>https://dagster.io/blog/dagster-dlt</link>\n      <description>Load messy data sources into well-structured tables or datasets, through automatic schema inference and evolution.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-dlt</guid>\n      <pubDate>Wed, 08 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>CI/CD and Data Pipeline Automation (with Git)</title>\n      <link>https://dagster.io/blog/python-ci-cd-automation</link>\n      <description>Learn how to automate data pipelines and deployments by integrating Git and CI/CD in our Python for data engineering series.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-ci-cd-automation</guid>\n      <pubDate>Fri, 20 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Dagster Pipes</title>\n      <link>https://dagster.io/blog/dagster-pipes</link>\n      <description>A new protocol and toolkit for integrating and launching compute into remote execution environments from Dagster.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-pipes</guid>\n      <pubDate>Fri, 13 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Dagster External Assets</title>\n      <link>https://dagster.io/blog/dagster-external-assets</link>\n      <description>Use Dagster’s External Assets feature for data observability, lineage, data quality, and cataloging while bringing your own orchestration and scheduling.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-external-assets</guid>\n      <pubDate>Fri, 13 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Stop Reinventing Orchestration: Embedded ELT in the Orchestrator</title>\n      <link>https://dagster.io/blog/dagster-embedded-elt</link>\n      <description>Solve data ingestion issues with Dagster's Embedded ELT feature, a lightweight embedded library.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-embedded-elt</guid>\n      <pubDate>Thu, 12 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Improving the Dagster learning curve</title>\n      <link>https://dagster.io/blog/announcing-dagster-university</link>\n      <description>Learn Dagster essentials and build asset-based data pipelines with Dagster University, our new self-guided course for beginners.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/announcing-dagster-university</guid>\n      <pubDate>Wed, 11 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Improving visibility into data operations with Dagster Insights</title>\n      <link>https://dagster.io/blog/dagster-insights</link>\n      <description>Gain operational observability on your data pipelines and bring cloud costs back under control with the Dagster Insights feature.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-insights</guid>\n      <pubDate>Tue, 10 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Dagster Asset Checks</title>\n      <link>https://dagster.io/blog/dagster-asset-checks</link>\n      <description>Deliver high-quality data with Dagster Asset Checks, the ability to embed data quality checks into your data pipeline.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-asset-checks</guid>\n      <pubDate>Mon, 09 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Dagster 1.5: How Will I Know?</title>\n      <link>https://dagster.io/blog/dagster-1-5-how-will-i-know</link>\n      <description>Ahead of Launch Week, we are proud to be rolling out some exciting new capabilities.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-5-how-will-i-know</guid>\n      <pubDate>Mon, 02 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Write-Audit-Publish in data pipelines</title>\n      <link>https://dagster.io/blog/python-write-audit-publish</link>\n      <description>We look at the write-audit-publish software design pattern used in ETL to ensure quality and reliability in data engineering workflows.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-write-audit-publish</guid>\n      <pubDate>Fri, 29 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Escaping the Modern Data Trap</title>\n      <link>https://dagster.io/blog/dagster-escaping-the-modern-data-trap</link>\n      <description>Launch Week kicks off October 9th with new functionality being shared each day. Our theme: Escaping the Modern Data Trap!</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-escaping-the-modern-data-trap</guid>\n      <pubDate>Thu, 28 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pedram Navid: Why I Joined Dagster Labs</title>\n      <link>https://dagster.io/blog/pedram-why-i-joined-dagster-labs</link>\n      <description>It is not every day you get to join a company working on building a product purpose-built for you.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/pedram-why-i-joined-dagster-labs</guid>\n      <pubDate>Wed, 20 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Factory Patterns in Python</title>\n      <link>https://dagster.io/blog/python-factory-patterns</link>\n      <description>We explore design patterns — reusable solutions to common problems in software design — as used in data engineering, specifically factory patterns in Python.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-factory-patterns</guid>\n      <pubDate>Mon, 04 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Dagster Labs</title>\n      <link>https://dagster.io/blog/introducing-dagster-labs</link>\n      <description>In the spirit of simplification, the company formerly known as Elementl is now doing business as Dagster Labs.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/introducing-dagster-labs</guid>\n      <pubDate>Mon, 21 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building an Outbound Reporting Pipeline</title>\n      <link>https://dagster.io/blog/outbound-reporting-pipeline</link>\n      <description>Learn how to use data engineering patterns and Dagster’s dynamic partitioning to build an outbound email report delivery pipeline.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/outbound-reporting-pipeline</guid>\n      <pubDate>Fri, 18 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Type Hinting in Python</title>\n      <link>https://dagster.io/blog/python-type-hinting</link>\n      <description>In part VI of our Data Engineering with Python series, we explore type hinting functions and classes, and how type hints reduce errors.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-type-hinting</guid>\n      <pubDate>Fri, 11 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Environment Variables in Python</title>\n      <link>https://dagster.io/blog/python-environment-variables</link>\n      <description>In part V of our series on Data Engineering with Python, we cover best practices for managing environment variables in Python.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-environment-variables</guid>\n      <pubDate>Mon, 07 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Podcast: Drill to Detail - Dagster, Orchestration and Software-Defined Assets</title>\n      <link>https://dagster.io/blog/podcast-drill-to-detail-aug-2023</link>\n      <description>Dagster Labs founder Nick Shrock is interviewed by Rittman Analytics founder Mark Rittman</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/podcast-drill-to-detail-aug-2023</guid>\n      <pubDate>Thu, 03 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Orchestrating dbt™ with Dagster</title>\n      <link>https://dagster.io/blog/orchestrating-dbt-with-dagster</link>\n      <description>Orchestrate dbt with Dagster’s popular dbt integration, now with major enhancements to supercharge your dbt models as part of your data pipeline.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/orchestrating-dbt-with-dagster</guid>\n      <pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Speeding up the dbt™ docs by 20x with React Server Components</title>\n      <link>https://dagster.io/blog/dbt-docs-on-react</link>\n      <description>dbt docs slow? See how we dropped page load time and memory usage for a large dbt project by 20x using React Server Components.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dbt-docs-on-react</guid>\n      <pubDate>Mon, 31 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Dagster 1.4: Material Girl</title>\n      <link>https://dagster.io/blog/dagster-1-4-material-girl</link>\n      <description>The latest release brings major new dbt capabilities, new asset materialization controls, and more.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-4-material-girl</guid>\n      <pubDate>Fri, 21 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LLM training pipelines with Langchain, Airbyte, and Dagster</title>\n      <link>https://dagster.io/blog/training-llms</link>\n      <description>This tutorial shows you how to combine Langchain, Airbyte, and Dagster to build maintainable and scalable pipelines for training LLMs.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/training-llms</guid>\n      <pubDate>Wed, 05 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Two New Self-Serve Plans for Dagster Cloud</title>\n      <link>https://dagster.io/blog/new-standard-plans</link>\n      <description>Solo' and 'Team' plans, with event-based pricing, will replace the old compute-duration based plan. We explain why we are making this change.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/new-standard-plans</guid>\n      <pubDate>Mon, 26 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Revisiting the Poor Man’s Data Lake with MotherDuck</title>\n      <link>https://dagster.io/blog/poor-mans-datalake-motherduck</link>\n      <description>See how much easier you can collaborate using DuckDB’s high-powered cloud version MotherDuck to build a one-system data lake.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/poor-mans-datalake-motherduck</guid>\n      <pubDate>Thu, 22 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Dagster Master Plan</title>\n      <link>https://dagster.io/blog/dagster-master-plan</link>\n      <description>Elementl CEO Pete Hunt shares the three priorities that guide how we will evolve Dagster.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-master-plan</guid>\n      <pubDate>Thu, 15 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Backfills in Data &amp; Machine Learning: A Primer</title>\n      <link>https://dagster.io/blog/backfills-in-ml</link>\n      <description>A step-by-step guide to using backfills and partitions to make data management more simple for data &amp; ML engineers.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/backfills-in-ml</guid>\n      <pubDate>Tue, 06 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster and the Decade of Data Engineering</title>\n      <link>https://dagster.io/blog/decade-of-data-engineering</link>\n      <description>We are pleased to announce Elementl's $33M Series B and share our vision for what's next for Dagster and the practice of data engineering.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/decade-of-data-engineering</guid>\n      <pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Elementl Raises $33 Million in Series B Funding to Accelerate Data Orchestration and Unleash Advanced Data Use Cases</title>\n      <link>https://dagster.io/blog/elementl-series-b</link>\n      <description>The new capital will accelerate the development and adoption of Dagster, the open-source, cloud-native data orchestrator.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/elementl-series-b</guid>\n      <pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building Better Analytics Pipelines</title>\n      <link>https://dagster.io/blog/building-better-analytics-pipelines</link>\n      <description>A recap of our live event on the benefits and techniques for orchestrating analytics pipelines.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/building-better-analytics-pipelines</guid>\n      <pubDate>Tue, 23 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Dynamic Definitions for Flexible Asset Partitioning</title>\n      <link>https://dagster.io/blog/dynamic-partitioning</link>\n      <description>Dagster’s dynamic partition definitions allow engineers to use the power of partitions in a broader range of scenarios.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dynamic-partitioning</guid>\n      <pubDate>Fri, 19 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Deciphering Arcane Kubernetes and ECS Errors with Dagster</title>\n      <link>https://dagster.io/blog/surfacing-errors</link>\n      <description>Recent enhancements allow Dagster to surface clearer and more actionable errors to accelerate your development cycles.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/surfacing-errors</guid>\n      <pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Maintain High Product &amp; Code Quality As Your Startup Scales</title>\n      <link>https://dagster.io/blog/product-and-code-quality</link>\n      <description>Raising the quality bar requires process adjustments and a cultural shift.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/product-and-code-quality</guid>\n      <pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Dagster 1.3: Smooth Operator</title>\n      <link>https://dagster.io/blog/dagster-1-3-smooth-operator</link>\n      <description>Dagster 1.3 officially inducts Pythonic Config and Resources and brings new enhancements to Software-Defined Assets, integrations, documentation, and guides.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-3-smooth-operator</guid>\n      <pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>From Python Projects to Dagster Pipelines</title>\n      <link>https://dagster.io/blog/data-engineering-in-python</link>\n      <description>In part IV of our series, we explore setting up a Dagster project, and the key concept of Data Assets.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/data-engineering-in-python</guid>\n      <pubDate>Fri, 14 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Community Memo: Pythonic Config and Resources</title>\n      <link>https://dagster.io/blog/pythonic-config-and-resources</link>\n      <description>Major ergonomic improvements are coming to Dagster's config and resources systems, including a Pydantic frontend.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/pythonic-config-and-resources</guid>\n      <pubDate>Mon, 03 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Best Practices in Structuring Python Projects</title>\n      <link>https://dagster.io/blog/python-project-best-practices</link>\n      <description>We cover 9 best practices and examples on structuring your Python projects for collaboration and productivity.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-project-best-practices</guid>\n      <pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Partitions in Data Pipelines</title>\n      <link>https://dagster.io/blog/partitioned-data-pipelines</link>\n      <description>Partitioning is a technique that helps data engineers and ML engineers organize data and the computations that produce that data.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/partitioned-data-pipelines</guid>\n      <pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tracking the Fake GitHub Star Black Market with Dagster, dbt and BigQuery</title>\n      <link>https://dagster.io/blog/fake-stars</link>\n      <description>It's easy for an open-source project to buy fake GitHub stars. We share two approaches for detecting them.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/fake-stars</guid>\n      <pubDate>Thu, 16 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Dagster 1.2: Formation</title>\n      <link>https://dagster.io/blog/dagster-1-2-formation</link>\n      <description>Enhanced partitioned asset support and the introduction of Pythonic config and resources, and integration updates.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-2-formation</guid>\n      <pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Dagster Deploys 5X Faster with Warm Docker Containers</title>\n      <link>https://dagster.io/blog/fast-deploys-with-pex-and-docker</link>\n      <description>Using pex, Serverless Dagster Cloud now deploys 4 to 5 times faster by avoiding the overhead of building and launching Docker images.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/fast-deploys-with-pex-and-docker</guid>\n      <pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Python Packages: a Primer for Data People (part 2 of 2)</title>\n      <link>https://dagster.io/blog/python-packages-primer-2</link>\n      <description>An introduction to managing Python dependencies and some virtual environment best practices.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-packages-primer-2</guid>\n      <pubDate>Mon, 06 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Python Packages: a Primer for Data People (part 1 of 2)</title>\n      <link>https://dagster.io/blog/python-packages-primer-1</link>\n      <description>The foundation of a solid Python project is mastering modules, packages and imports.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/python-packages-primer-1</guid>\n      <pubDate>Mon, 06 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build a GitHub Support Bot with GPT3, LangChain, and Python</title>\n      <link>https://dagster.io/blog/chatgpt-langchain</link>\n      <description>In this tutorial, we tap into the power of OpenAI's ChatGPT to build a GitHub support bot using GPT3, LangChain, and Python.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/chatgpt-langchain</guid>\n      <pubDate>Mon, 09 Jan 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Dagster 1.1: Thank U, Next</title>\n      <link>https://dagster.io/blog/dagster-1-1-thank-u-next</link>\n      <description>A major release with Declarative Scheduling, multi-asset scheduling, and SDA partitioning. Plus Secrets management, Dagit enhancements, Integrations updates and more...</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-1-thank-u-next</guid>\n      <pubDate>Wed, 14 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Getting Stuff Done: a Guide to Productive Software Engineering</title>\n      <link>https://dagster.io/blog/productive-software-engineering</link>\n      <description>To be a more productive software engineer you need to master changes, how these affect the program and others on the team.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/productive-software-engineering</guid>\n      <pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>My Path to Elementl - Part 2</title>\n      <link>https://dagster.io/blog/pete-hunt-path-to-elementl-part2</link>\n      <description>Pete Hunt takes over as CEO as Nick Schrock takes on the CTO role.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/pete-hunt-path-to-elementl-part2</guid>\n      <pubDate>Fri, 18 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pushing REST-API data to Google Sheets with Dagster</title>\n      <link>https://dagster.io/blog/dagster-google-sheets-tutorial</link>\n      <description>A total beginners tutorial in which we store REST API data in Google Sheets and learn some key abstractions.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-google-sheets-tutorial</guid>\n      <pubDate>Fri, 11 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Adding Types to a Large Python Codebase</title>\n      <link>https://dagster.io/blog/adding-python-types</link>\n      <description>What we learned when we introduced dynamically typed code to a large Python codebase, bringing Dagster's public API to 100% type coverage.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/adding-python-types</guid>\n      <pubDate>Mon, 07 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Orchestrating Machine Learning Pipelines with Dagster</title>\n      <link>https://dagster.io/blog/dagster-ml-pipelines</link>\n      <description>How to use Dagster’s open source data orchestrator to build machine learning pipelines and train ML models.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-ml-pipelines</guid>\n      <pubDate>Mon, 31 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build a poor man’s data lake from scratch with DuckDB</title>\n      <link>https://dagster.io/blog/duckdb-data-lake</link>\n      <description>DuckDB is so hot right now. Learn how to build a data lake from dbt using DuckDB for SQL transformations, along with Python, Dagster, and Parquet files.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/duckdb-data-lake</guid>\n      <pubDate>Tue, 25 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Unreasonable Effectiveness of Data Pipeline Smoke Tests</title>\n      <link>https://dagster.io/blog/smoke-test-data-pipeline</link>\n      <description>Data practitioners waste time writing unit tests to catch bugs they could have caught with smoke tests.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/smoke-test-data-pipeline</guid>\n      <pubDate>Wed, 19 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Web Workers are not the Answer</title>\n      <link>https://dagster.io/blog/web-workers-performance-issue</link>\n      <description>A tale of overstretched logs, counterintuitive web worker behavior, and ultimately a troublesome cursor issue.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/web-workers-performance-issue</guid>\n      <pubDate>Mon, 17 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster at all 5 Steps of the Development Lifecycle</title>\n      <link>https://dagster.io/blog/dagster-five-stages-development-lifecycle</link>\n      <description>Dagster facilitates a data engineers work across all five steps in the development lifecycle.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-five-stages-development-lifecycle</guid>\n      <pubDate>Sun, 16 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Dagster Crash Course</title>\n      <link>https://dagster.io/blog/dagster-crash-course-oct-2022</link>\n      <description>If you are looking to get up and running with Dagster in 10 minutes or less, this is a good place to start. Buckle up.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-crash-course-oct-2022</guid>\n      <pubDate>Thu, 06 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Postgres: a Better Message Queue than Kafka?</title>\n      <link>https://dagster.io/blog/skip-kafka-use-postgres-message-queue</link>\n      <description>When lots of event logs must be stored and indexed, Kafka is the obvious choice. Naturally, our queue runs on Postgres.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/skip-kafka-use-postgres-message-queue</guid>\n      <pubDate>Tue, 04 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Spend Less Time Debugging with Dagster</title>\n      <link>https://dagster.io/blog/dagster-debugging</link>\n      <description>It’s not uncommon for a data engineer to devote 80% of their day to debugging. Dagster radically improves on this.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-debugging</guid>\n      <pubDate>Wed, 17 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Launching Dagster Cloud to GA</title>\n      <link>https://dagster.io/blog/dagster-cloud-ga-launch</link>\n      <description>The enterprise orchestration platform that puts developer experience first: hybrid or serverless deployments, native branching, and out-of-the-box CI/CD.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-cloud-ga-launch</guid>\n      <pubDate>Tue, 09 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Dagster 1.0: Hello</title>\n      <link>https://dagster.io/blog/dagster-1-0-hello</link>\n      <description>Announcing Dagster 1.0. - a stable foundation for building the orchestration layer for modern data platforms.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/dagster-1-0-hello</guid>\n      <pubDate>Fri, 05 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Open Core Business Model</title>\n      <link>https://dagster.io/blog/open-core-business-model-dagster</link>\n      <description>The relationship between Dagster, the open-source project, and Dagster Cloud, our hosted SaaS platform.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/open-core-business-model-dagster</guid>\n      <pubDate>Wed, 03 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Cloud goes SOC 2</title>\n      <link>https://dagster.io/blog/soc2-compliance-dagster-blog</link>\n      <description>Elementl, the company behind the Dagster data orchestration tool achieves SOC2 compliance.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/soc2-compliance-dagster-blog</guid>\n      <pubDate>Tue, 26 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dagster Day:  Announcing Dagster 1.0 and Dagster Cloud</title>\n      <link>https://dagster.io/blog/announcing-dagster-day</link>\n      <description>The release of Dagster 1.0 and the GA launch of Dagster Cloud represent major milestones in the evolution of our orchestration solution.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/announcing-dagster-day</guid>\n      <pubDate>Mon, 25 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>My Path to Elementl: Pete Hunt</title>\n      <link>https://dagster.io/blog/pete-hunt-path-to-elementl</link>\n      <description>Pete Hunt discusses what caused him to make the leap from Twitter to Elementl.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/pete-hunt-path-to-elementl</guid>\n      <pubDate>Wed, 22 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Rebundling the Data Platform</title>\n      <link>https://dagster.io/blog/rebundling-the-data-platform</link>\n      <description>The Unbundling of Airflow' argued that modern data stack solutions (data ingestion, data transformation, reverse ETL) manage their own data orchestration. Data teams need is a control plane for the modern data stack.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/rebundling-the-data-platform</guid>\n      <pubDate>Thu, 17 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Dagster Cloud</title>\n      <link>https://dagster.io/blog/introducing-dagster-cloud</link>\n      <description>Dagster Cloud, the enterprise orchestration platform that puts developer experience first, with fully serverless or hybrid deployments, is now here.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/introducing-dagster-cloud</guid>\n      <pubDate>Thu, 02 Dec 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Elementl and Dagster: The Decade of Data</title>\n      <link>https://dagster.io/blog/decade-of-data</link>\n      <description>Announcing our $14M Series A led by Index Ventures, alongside Sequoia Capital, Slow Ventures, Coatue, Amplify Partners, OSS Capital, and others.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/decade-of-data</guid>\n      <pubDate>Tue, 16 Nov 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Content Style Guide</title>\n      <link>https://dagster.io/blog/content-style-guide</link>\n      <description>This is an example blog post serving as a style guide.</description>\n      <guid isPermaLink=\"false\">https://dagster.io/blog/content-style-guide</guid>\n      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_google_ai.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Google Developers Blog - AI</title>\n    <link>https://developers.googleblog.com/search/?technology_categories=AI</link>\n    <description>Latest AI-related posts from Google Developers Blog</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_google_ai.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:34 +0000</lastBuildDate>\n    <item>\n      <title>Build Long-running AI agents that pause, resume, and never lose context with ADK</title>\n      <link>https://developers.googleblog.com/build-long-running-ai-agents-that-pause-resume-and-never-lose-context-with-adk/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Long-running-agent-banner.2e16d0ba.fill-800x400.jpg\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;How to transition from stateless chatbots to production-grade agents capable of managing long-running enterprise workflows, such as HR onboarding, that span days or weeks. It introduces the Agent Development Kit (ADK) and its architectural shifts, specifically using durable state machines and persistent session storage to ensure an agent never loses context during \"idle time\" or server restarts. By leveraging event-driven webhooks and multi-agent delegation, the tutorial demonstrates how to build resilient systems that \"sleep\" during pauses and wake up to resume complex tasks with high reasoning accuracy.</description>\n      <category>AI</category>\n      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Supercharging LLM inference on Google TPUs: Achieving 3X speedups with diffusion-style speculative decoding</title>\n      <link>https://developers.googleblog.com/supercharging-llm-inference-on-google-tpus-achieving-3x-speedups-with-diffusion-style-speculative-decoding/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_Generated_Image_5uj3px5uj3p.2e16d0ba.fill-800x400.jpg\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;Researchers at UCSD have successfully implemented DFlash, a block-diffusion speculative decoding method, on Google TPUs to bypass the sequential bottlenecks of traditional autoregressive drafting. By \"painting\" entire blocks of candidate tokens in a single forward pass rather than predicting them one-by-one, the system achieved average speedups of 3.13x, with peak performance nearly doubling that of existing methods like EAGLE-3. This open-source integration into the vLLM ecosystem optimizes TPU hardware by leveraging \"free\" parallel verification and high-quality draft predictions for complex reasoning tasks.</description>\n      <category>AI</category>\n      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building with Gemini Embedding 2: Agentic multimodal RAG and beyond</title>\n      <link>https://developers.googleblog.com/building-with-gemini-embedding-2/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/gemini-embedding2-retrieval_52_2.2e16d0ba.fill-800x400.png\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;Google has announced the general availability of Gemini Embedding 2, a unified model that maps text, images, video, audio, and documents into a single semantic space. This model allows developers to process interleaved multimodal inputs in a single request, significantly improving performance for tasks like agentic RAG, visual search, and content moderation. By supporting over 100 languages and offering features like task-specific prefixes and Matryoshka dimensionality reduction, the model provides a highly efficient and accurate foundation for building complex AI agents.</description>\n      <category>AI</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building real-world on-device AI with LiteRT and NPU</title>\n      <link>https://developers.googleblog.com/building-real-world-on-device-ai-with-litert-and-npu/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_Generated_Image_ignk8signk8.2e16d0ba.fill-800x400.png\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;LiteRT is a production-ready framework designed to help mobile developers unlock the power of Neural Processing Units (NPUs), overcoming the performance and battery limitations of traditional CPU or GPU processing. By providing a unified API that abstracts away hardware complexities, it allows industry leaders like Google Meet and Epic Games to deploy sophisticated AI models for real-time video, animation, and speech recognition with significantly higher efficiency. The platform further supports developers through benchmarking tools and cross-platform compatibility, enabling seamless AI deployment across mobile devices, AI PCs, and industrial IoT hardware.</description>\n      <category>Mobile</category>\n      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Agents CLI in Agent Platform:  create to production in one CLI</title>\n      <link>https://developers.googleblog.com/agents-cli-in-agent-platform-create-to-production-in-one-cli/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/hero_image_1.2e16d0ba.fill-800x400.jpg\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;Google Cloud has introduced the Agents CLI, a specialized tool designed to bridge the gap between local development and production-grade AI agent deployment. The CLI provides coding assistants with machine-readable access to the full Google Cloud stack, reducing context overload and token waste during the scaffolding process. By streamlining evaluation, infrastructure provisioning, and deployment into a single programmatic backbone, the tool enables developers to move from initial concept to a live service in hours rather than weeks.</description>\n      <category>AI</category>\n      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Production-Ready AI Agents: 5 Lessons from Refactoring a Monolith</title>\n      <link>https://developers.googleblog.com/production-ready-ai-agents-5-lessons-from-refactoring-a-monolith/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/AI_Agent_Clinic_Asset.2e16d0ba.fill-800x400.png\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;The blog post outlines the transition of a brittle sales research prototype into a robust production agent using Google’s Agent Development Kit (ADK). By replacing monolithic scripts with orchestrated sub-agents and structured Pydantic outputs, the developers eliminated silent failures and fragile parsing. Additionally, the post highlights the necessity of dynamic RAG pipelines and OpenTelemetry observability to ensure AI agents are scalable, cost-effective, and transparent in real-world applications.</description>\n      <category>AI</category>\n      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A2UI v0.9: The New Standard for Portable, Framework-Agnostic Generative UI</title>\n      <link>https://developers.googleblog.com/a2ui-v0-9-generative-ui/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Hero.2e16d0ba.fill-800x400.jpg\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;A2UI v0.9 introduces a framework-agnostic standard designed to help AI agents generate real-time, tailored UI widgets using a company’s existing design system. This update simplifies the developer experience with a new Agent SDK for Python, a shared web-core library, and official support for renderers like React, Flutter, and Angular. By decoupling UI intent from specific platforms, the release enables seamless, low-latency streaming of generative interfaces across web and mobile applications. Integrating with broader ecosystems like AG2 and Vercel, A2UI v0.9 aims to move generative UI from experimental demos to production-ready digital products.</description>\n      <category>Mobile</category>\n      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>MaxText Expands Post-Training Capabilities: Introducing SFT and RL on Single-Host TPUs</title>\n      <link>https://developers.googleblog.com/maxtext-expands-post-training-capabilities-introducing-sft-and-rl-on-single-host-tpus/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Building-1-banner_Tg8sqqU.2e16d0ba.fill-800x400.png\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;MaxText has introduced new support for Supervised Fine-Tuning (SFT) and Reinforcement Learning (RL) on single-host TPU configurations, leveraging JAX and the Tunix library for high-performance model refinement. These features enable developers to easily adapt pre-trained models for specialized tasks and complex reasoning using efficient algorithms like GRPO and GSPO. This update streamlines the post-training workflow, offering a scalable path from single-host setups to larger multi-host configurations.</description>\n      <category>AI</category>\n      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Subagents have arrived in Gemini CLI</title>\n      <link>https://developers.googleblog.com/subagents-have-arrived-in-gemini-cli/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_CLI_subagents_hero_image.2e16d0ba.fill-800x400.png\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;Gemini CLI has introduced subagents, specialized expert agents that handle complex or high-volume tasks in isolated context windows to keep the primary session fast and focused. These agents can be customized via Markdown files, run in parallel to boost productivity, and are easily invoked using the @agent syntax for targeted delegation. This architecture prevents \"context rot\" by consolidating intricate multi-step executions into concise summaries for the main orchestrator.</description>\n      <category>AI</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build Better AI Agents: 5 Developer Tips from the Agent Bake-Off</title>\n      <link>https://developers.googleblog.com/build-better-ai-agents-5-developer-tips-from-the-agent-bake-off/</link>\n      <description>&lt;img src=\"https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_Generated_Image_7z3w7s7z3w7.2e16d0ba.fill-800x400.jpg\" alt=\"Featured image\" /&gt;&lt;br/&gt;&lt;br/&gt;The Google Cloud AI Agent Bake-Off highlights a shift from simple prompt engineering to rigorous agentic engineering, emphasizing that production-ready AI requires a modular, multi-agent architecture. The post outlines five key developer tips, including decomposing complex tasks into specialized sub-agents and using deterministic code for execution to prevent probabilistic errors. Furthermore, it advises developers to prioritize multimodality and open-source protocols like MCP to ensure agents are scalable, integrated, and future-proof against rapidly evolving model capabilities.</description>\n      <category>AI</category>\n      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_groq.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Groq Blog</title>\n    <link>https://groq.com/blog/</link>\n    <description>LPU inference, AI infrastructure, and developer updates</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_groq.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:34 +0000</lastBuildDate>\n    <item>\n      <title>Canopy Labs’ Orpheus TTS is live on GroqCloud</title>\n      <link>https://groq.com/blog/canopy-labs-orpheus-tts-is-live-on-groqcloud</link>\n      <description>Canopy Labs’ Orpheus TTS is live on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/canopy-labs-orpheus-tts-is-live-on-groqcloud</guid>\n      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GroqCloud: Expanding to Meet Demand</title>\n      <link>https://groq.com/blog/groqcloud-expanding-to-meet-demand</link>\n      <description>GroqCloud: Expanding to Meet Demand</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/groqcloud-expanding-to-meet-demand</guid>\n      <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing the American AI Stack</title>\n      <link>https://groq.com/blog/advancingamericanai</link>\n      <description>Advancing the American AI Stack</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/advancingamericanai</guid>\n      <pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Groq Recognized in 2025 Gartner® Cool Vendor in AI Infrastructure report</title>\n      <link>https://groq.com/blog/groq-recognized-gartner-cool-vendor</link>\n      <description>Groq Recognized in 2025 Gartner® Cool Vendor in AI Infrastructure report</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/groq-recognized-gartner-cool-vendor</guid>\n      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing MCP Connectors in Beta on GroqCloud</title>\n      <link>https://groq.com/blog/introducing-mcp-connectors-in-beta-on-groqcloud</link>\n      <description>Introducing MCP Connectors in Beta on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/introducing-mcp-connectors-in-beta-on-groqcloud</guid>\n      <pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Day Zero Support for OpenAI Open Safety Model</title>\n      <link>https://groq.com/blog/day-zero-support-for-openai-open-safety-model</link>\n      <description>Day Zero Support for OpenAI Open Safety Model</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/day-zero-support-for-openai-open-safety-model</guid>\n      <pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LLMs Inside the Product: A Practical Field Guide</title>\n      <link>https://groq.com/blog/llms-inside-the-product-a-practical-field-guide</link>\n      <description>LLMs Inside the Product: A Practical Field Guide</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/llms-inside-the-product-a-practical-field-guide</guid>\n      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT‑OSS Improvements: Prompt Caching &amp; Lower Pricing</title>\n      <link>https://groq.com/blog/gpt-oss-improvements-prompt-caching-and-lower-pricing</link>\n      <description>GPT‑OSS Improvements: Prompt Caching &amp; Lower Pricing</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/gpt-oss-improvements-prompt-caching-and-lower-pricing</guid>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Remote MCP Support in Beta on GroqCloud</title>\n      <link>https://groq.com/blog/introducing-remote-mcp-support-in-beta-on-groqcloud</link>\n      <description>Introducing Remote MCP Support in Beta on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/introducing-remote-mcp-support-in-beta-on-groqcloud</guid>\n      <pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Kimi K2‑0905 on GroqCloud</title>\n      <link>https://groq.com/blog/introducing-kimi-k2-0905-on-groqcloud</link>\n      <description>Introducing Kimi K2‑0905 on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/introducing-kimi-k2-0905-on-groqcloud</guid>\n      <pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Next Generation of Compound on GroqCloud</title>\n      <link>https://groq.com/blog/introducing-the-next-generation-of-compound-on-groqcloud</link>\n      <description>Introducing the Next Generation of Compound on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/introducing-the-next-generation-of-compound-on-groqcloud</guid>\n      <pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Prompt Caching on GroqCloud</title>\n      <link>https://groq.com/blog/introducing-prompt-caching-on-groqcloud</link>\n      <description>Introducing Prompt Caching on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/introducing-prompt-caching-on-groqcloud</guid>\n      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Day Zero Support for OpenAI Open Models</title>\n      <link>https://groq.com/blog/day-zero-support-for-openai-open-models</link>\n      <description>Day Zero Support for OpenAI Open Models</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/day-zero-support-for-openai-open-models</guid>\n      <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inside the LPU: Deconstructing Groq’s Speed</title>\n      <link>https://groq.com/blog/inside-the-lpu-deconstructing-groq-speed</link>\n      <description>Inside the LPU: Deconstructing Groq’s Speed</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/inside-the-lpu-deconstructing-groq-speed</guid>\n      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenBench: Reproducible LLM Evals Made Easy</title>\n      <link>https://groq.com/blog/openbench-open-reproducible-evals</link>\n      <description>OpenBench: Reproducible LLM Evals Made Easy</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/openbench-open-reproducible-evals</guid>\n      <pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build Faster with Groq + Hugging Face</title>\n      <link>https://groq.com/blog/build-faster-with-groq-hugging-face</link>\n      <description>Build Faster with Groq + Hugging Face</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/build-faster-with-groq-hugging-face</guid>\n      <pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GroqCloud™ Now Supports Qwen3 32B</title>\n      <link>https://groq.com/blog/groqcloud-tm-now-supports-qwen3-32b</link>\n      <description>GroqCloud™ Now Supports Qwen3 32B</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/groqcloud-tm-now-supports-qwen3-32b</guid>\n      <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LoRA Fine-Tune Support Now Live on GroqCloud</title>\n      <link>https://groq.com/blog/introducing-groqcloud-lora-fine-tune-support-unlock-efficient-model-adaptation-for-enterprises</link>\n      <description>LoRA Fine-Tune Support Now Live on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/introducing-groqcloud-lora-fine-tune-support-unlock-efficient-model-adaptation-for-enterprises</guid>\n      <pubDate>Tue, 03 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>From Speed to Scale: How Groq Is Optimized for MoE &amp; Other Large Models</title>\n      <link>https://groq.com/blog/from-speed-to-scale-how-groq-is-optimized-for-moe-other-large-models</link>\n      <description>From Speed to Scale: How Groq Is Optimized for MoE &amp; Other Large Models</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/from-speed-to-scale-how-groq-is-optimized-for-moe-other-large-models</guid>\n      <pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Build Your Own AI Research Agent with One Groq API Call</title>\n      <link>https://groq.com/blog/how-to-build-your-own-ai-research-agent-with-one-groq-api-call</link>\n      <description>How to Build Your Own AI Research Agent with One Groq API Call</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/how-to-build-your-own-ai-research-agent-with-one-groq-api-call</guid>\n      <pubDate>Fri, 16 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Official Llama API Now Fastest via Groq Inference</title>\n      <link>https://groq.com/blog/the-official-llama-api-accelerated-by-groq</link>\n      <description>Official Llama API Now Fastest via Groq Inference</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/the-official-llama-api-accelerated-by-groq</guid>\n      <pubDate>Tue, 29 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Now in Preview: Groq’s First Compound AI System</title>\n      <link>https://groq.com/blog/now-in-preview-groqs-first-compound-ai-system</link>\n      <description>Now in Preview: Groq’s First Compound AI System</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/now-in-preview-groqs-first-compound-ai-system</guid>\n      <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama 4 Inference Fast &amp; Affordable – Now Live on GroqCloud</title>\n      <link>https://groq.com/blog/llama-4-now-live-on-groq-build-fast-at-the-lowest-cost-without-compromise</link>\n      <description>Llama 4 Inference Fast &amp; Affordable – Now Live on GroqCloud</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/llama-4-now-live-on-groq-build-fast-at-the-lowest-cost-without-compromise</guid>\n      <pubDate>Sat, 05 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build Fast with Text-to-Speech AI – Dialog Model on Groq</title>\n      <link>https://groq.com/blog/build-fast-with-text-to-speech</link>\n      <description>Build Fast with Text-to-Speech AI – Dialog Model on Groq</description>\n      <guid isPermaLink=\"false\">https://groq.com/blog/build-fast-with-text-to-speech</guid>\n      <pubDate>Wed, 26 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_hamel.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Hamel Husain's Blog</title>\n    <link>https://hamel.dev/</link>\n    <description>Applied AI engineering, machine learning, and data science</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_hamel.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Sat, 18 Apr 2026 14:13:46 +0000</lastBuildDate>\n    <item><title>[NOTICE] This feed is no longer maintained</title><description>Hamel's blog publishes an official RSS feed. This scraper is retired; the feed XML will be deleted in ~90 days.\n\nRecommended alternative: https://hamel.dev/index.xml</description><guid isPermaLink=\"false\">deprecation-notice-hamel</guid><pubDate>Sat, 18 Apr 2026 14:24:42 +0000</pubDate><link>https://hamel.dev/index.xml</link></item><item>\n      <title>Automated Machine Learning — A Paradigm Shift That Accelerates Data Scientist Productivity @ Airbnb</title>\n      <link>https://medium.com/airbnb-engineering/automated-machine-learning-a-paradigm-shift-that-accelerates-data-scientist-productivity-airbnb-f1f8a10d61f8</link>\n      <description>Automated Machine Learning — A Paradigm Shift That Accelerates Data Scientist Productivity @ Airbnb</description>\n      <guid isPermaLink=\"false\">https://medium.com/airbnb-engineering/automated-machine-learning-a-paradigm-shift-that-accelerates-data-scientist-productivity-airbnb-f1f8a10d61f8</guid>\n      <pubDate>Wed, 10 May 2017 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Docker Can Help You Become A More Effective Data Scientist</title>\n      <link>https://medium.com/towards-data-science/how-docker-can-help-you-become-a-more-effective-data-scientist-7fc048ef91d5</link>\n      <description>How Docker Can Help You Become A More Effective Data Scientist</description>\n      <guid isPermaLink=\"false\">https://medium.com/towards-data-science/how-docker-can-help-you-become-a-more-effective-data-scientist-7fc048ef91d5</guid>\n      <pubDate>Sat, 16 Dec 2017 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How To Create Magical Data Products Using Sequence-to-Sequence Models</title>\n      <link>https://towardsdatascience.com/how-to-create-data-products-that-are-magical-using-sequence-to-sequence-models-703f86a231f8</link>\n      <description>How To Create Magical Data Products Using Sequence-to-Sequence Models</description>\n      <guid isPermaLink=\"false\">https://towardsdatascience.com/how-to-create-data-products-that-are-magical-using-sequence-to-sequence-models-703f86a231f8</guid>\n      <pubDate>Thu, 18 Jan 2018 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How To Create Natural Language Semantic Search for Arbitrary Objects With Deep Learning</title>\n      <link>https://medium.com/@hamelhusain/semantic-code-search-3cd6d244a39c</link>\n      <description>How To Create Natural Language Semantic Search for Arbitrary Objects With Deep Learning</description>\n      <guid isPermaLink=\"false\">https://medium.com/@hamelhusain/semantic-code-search-3cd6d244a39c</guid>\n      <pubDate>Tue, 29 May 2018 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Automate Tasks on GitHub With Machine Learning for Fun and Profit</title>\n      <link>https://medium.com/@hamelhusain/mlapp-419f90e8f007?source=friends_link&amp;sk=760e18a2d6e60999d7eb2887352a92a8</link>\n      <description>How to Automate Tasks on GitHub With Machine Learning for Fun and Profit</description>\n      <guid isPermaLink=\"false\">https://medium.com/@hamelhusain/mlapp-419f90e8f007?source=friends_link&amp;sk=760e18a2d6e60999d7eb2887352a92a8</guid>\n      <pubDate>Wed, 10 Apr 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>CodeSearchNet Challenge: Evaluating the State of Semantic Code Search</title>\n      <link>https://arxiv.org/abs/1909.09436</link>\n      <description>CodeSearchNet Challenge: Evaluating the State of Semantic Code Search</description>\n      <guid isPermaLink=\"false\">https://arxiv.org/abs/1909.09436</guid>\n      <pubDate>Fri, 20 Sep 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Python Concurrency: The Tricky Bits</title>\n      <link>https://python.hamel.dev/concurrency/</link>\n      <description>Python Concurrency: The Tricky Bits</description>\n      <guid isPermaLink=\"false\">https://python.hamel.dev/concurrency/</guid>\n      <pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing fastpages, An easy to use blogging platform with extra features for Jupyter Notebooks.</title>\n      <link>https://fastpages.fast.ai/fastpages/jupyter/2020/02/21/introducing-fastpages.html</link>\n      <description>Introducing fastpages, An easy to use blogging platform with extra features for Jupyter Notebooks.</description>\n      <guid isPermaLink=\"false\">https://fastpages.fast.ai/fastpages/jupyter/2020/02/21/introducing-fastpages.html</guid>\n      <pubDate>Fri, 21 Feb 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GitHub Actions: Providing Data Scientists With New Superpowers.</title>\n      <link>https://fastpages.fast.ai/actions/markdown/2020/03/06/fastpages-actions.html</link>\n      <description>GitHub Actions: Providing Data Scientists With New Superpowers.</description>\n      <guid isPermaLink=\"false\">https://fastpages.fast.ai/actions/markdown/2020/03/06/fastpages-actions.html</guid>\n      <pubDate>Fri, 06 Mar 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Data Science Meets Devops: MLOps with Jupyter, Git, &amp; Kubernetes</title>\n      <link>https://blog.kubeflow.org/mlops/</link>\n      <description>Data Science Meets Devops: MLOps with Jupyter, Git, &amp; Kubernetes</description>\n      <guid isPermaLink=\"false\">https://blog.kubeflow.org/mlops/</guid>\n      <pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>fastcore: An Underrated Python Library</title>\n      <link>https://fastpages.fast.ai/fastcore</link>\n      <description>fastcore: An Underrated Python Library</description>\n      <guid isPermaLink=\"false\">https://fastpages.fast.ai/fastcore</guid>\n      <pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Nbdev: A literate programming environment that democratizes software engineering best practices</title>\n      <link>https://github.blog/2020-11-20-nbdev-a-literate-programming-environment-that-democratizes-software-engineering-best-practices/</link>\n      <description>Nbdev: A literate programming environment that democratizes software engineering best practices</description>\n      <guid isPermaLink=\"false\">https://github.blog/2020-11-20-nbdev-a-literate-programming-environment-that-democratizes-software-engineering-best-practices/</guid>\n      <pubDate>Fri, 20 Nov 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ghapi, a new third-party Python client for the GitHub API</title>\n      <link>https://github.blog/2020-12-18-learn-about-ghapi-a-new-third-party-python-client-for-the-github-api/</link>\n      <description>ghapi, a new third-party Python client for the GitHub API</description>\n      <guid isPermaLink=\"false\">https://github.blog/2020-12-18-learn-about-ghapi-a-new-third-party-python-client-for-the-github-api/</guid>\n      <pubDate>Fri, 18 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Notebooks in production with Metaflow</title>\n      <link>https://outerbounds.com/blog/notebooks-in-production-with-metaflow/</link>\n      <description>Notebooks in production with Metaflow</description>\n      <guid isPermaLink=\"false\">https://outerbounds.com/blog/notebooks-in-production-with-metaflow/</guid>\n      <pubDate>Wed, 09 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>nbdev + Quarto: A new secret weapon for productivity</title>\n      <link>https://www.fast.ai/2022/07/28/nbdev-v2/</link>\n      <description>nbdev + Quarto: A new secret weapon for productivity</description>\n      <guid isPermaLink=\"false\">https://www.fast.ai/2022/07/28/nbdev-v2/</guid>\n      <pubDate>Thu, 28 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Should ML Engineers Learn Kubernetes?</title>\n      <link>https://hamel.dev/./blog/posts/k8s/index.html</link>\n      <description>Why Should ML Engineers Learn Kubernetes?</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/k8s/index.html</guid>\n      <pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>On commercializing nbdev</title>\n      <link>https://hamel.dev/./blog/posts/nbdev/index.html</link>\n      <description>On commercializing nbdev</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/nbdev/index.html</guid>\n      <pubDate>Tue, 30 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Optimizing LLM latency</title>\n      <link>https://hamel.dev/notes/llm/inference/inference.html</link>\n      <description>Optimizing LLM latency</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/notes/llm/inference/inference.html</guid>\n      <pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>vLLM &amp; Large Models</title>\n      <link>https://hamel.dev/notes/llm/inference/big_inference.html</link>\n      <description>vLLM &amp; Large Models</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/notes/llm/inference/big_inference.html</guid>\n      <pubDate>Sat, 28 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tools for curating LLM Data</title>\n      <link>https://hamel.dev/notes/llm/finetuning/data_cleaning.html</link>\n      <description>Tools for curating LLM Data</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/notes/llm/finetuning/data_cleaning.html</guid>\n      <pubDate>Wed, 15 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tokenization Gotchas</title>\n      <link>https://hamel.dev/./notes/llm/finetuning/tokenizer_gotchas.html</link>\n      <description>Tokenization Gotchas</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./notes/llm/finetuning/tokenizer_gotchas.html</guid>\n      <pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dokku: my favorite personal serverless platform</title>\n      <link>https://hamel.dev/./blog/posts/dokku/index.html</link>\n      <description>Dokku: my favorite personal serverless platform</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/dokku/index.html</guid>\n      <pubDate>Tue, 09 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How To Debug Axolotl</title>\n      <link>https://hamel.dev/./blog/posts/axolotl/index.html</link>\n      <description>How To Debug Axolotl</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/axolotl/index.html</guid>\n      <pubDate>Thu, 11 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Fuck You, Show Me The Prompt.</title>\n      <link>https://hamel.dev/./blog/posts/prompt/index.html</link>\n      <description>Fuck You, Show Me The Prompt.</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/prompt/index.html</guid>\n      <pubDate>Wed, 14 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Is Fine-Tuning Still Valuable?</title>\n      <link>https://hamel.dev/./blog/posts/fine_tuning_valuable.html</link>\n      <description>Is Fine-Tuning Still Valuable?</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/fine_tuning_valuable.html</guid>\n      <pubDate>Wed, 27 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Your AI Product Needs Evals</title>\n      <link>https://hamel.dev/./blog/posts/evals/index.html</link>\n      <description>Your AI Product Needs Evals</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/evals/index.html</guid>\n      <pubDate>Fri, 29 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Debugging AI With Adversarial Validation</title>\n      <link>https://hamel.dev/./blog/posts/drift/index.html</link>\n      <description>Debugging AI With Adversarial Validation</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/drift/index.html</guid>\n      <pubDate>Fri, 12 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What We’ve Learned From A Year of Building with LLMs</title>\n      <link>https://applied-llms.org/</link>\n      <description>What We’ve Learned From A Year of Building with LLMs</description>\n      <guid isPermaLink=\"false\">https://applied-llms.org/</guid>\n      <pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An Open Course on LLMs, Led by Practitioners</title>\n      <link>https://hamel.dev/./blog/posts/course/index.html</link>\n      <description>An Open Course on LLMs, Led by Practitioners</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/course/index.html</guid>\n      <pubDate>Mon, 29 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Concurrency Foundations For FastHTML</title>\n      <link>https://hamel.dev/notes/fasthtml/concurrency.html</link>\n      <description>Concurrency Foundations For FastHTML</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/notes/fasthtml/concurrency.html</guid>\n      <pubDate>Thu, 10 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Using LLM-as-a-Judge For Evaluation: A Complete Guide</title>\n      <link>https://hamel.dev/./blog/posts/llm-judge/index.html</link>\n      <description>Using LLM-as-a-Judge For Evaluation: A Complete Guide</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/llm-judge/index.html</guid>\n      <pubDate>Tue, 29 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building an Audience Through Technical Writing: Strategies and Mistakes</title>\n      <link>https://hamel.dev/./blog/posts/audience/index.html</link>\n      <description>Building an Audience Through Technical Writing: Strategies and Mistakes</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/audience/index.html</guid>\n      <pubDate>Sat, 30 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>nbsanity - Share Notebooks as Polished Web Pages in Seconds</title>\n      <link>https://www.answer.ai/posts/2024-12-13-nbsanity.html</link>\n      <description>nbsanity - Share Notebooks as Polished Web Pages in Seconds</description>\n      <guid isPermaLink=\"false\">https://www.answer.ai/posts/2024-12-13-nbsanity.html</guid>\n      <pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Thoughts On A Month With Devin</title>\n      <link>https://www.answer.ai/posts/2025-01-08-devin.html</link>\n      <description>Thoughts On A Month With Devin</description>\n      <guid isPermaLink=\"false\">https://www.answer.ai/posts/2025-01-08-devin.html</guid>\n      <pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Field Guide to Rapidly Improving AI Products</title>\n      <link>https://hamel.dev/./blog/posts/field-guide/index.html</link>\n      <description>A Field Guide to Rapidly Improving AI Products</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/field-guide/index.html</guid>\n      <pubDate>Mon, 24 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inspect AI, An OSS Python Library For LLM Evals</title>\n      <link>https://hamel.dev/./notes/llm/evals/inspect.html</link>\n      <description>Inspect AI, An OSS Python Library For LLM Evals</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./notes/llm/evals/inspect.html</guid>\n      <pubDate>Mon, 23 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Stop Saying RAG Is Dead</title>\n      <link>https://hamel.dev/./notes/llm/rag/not_dead.html</link>\n      <description>Stop Saying RAG Is Dead</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./notes/llm/rag/not_dead.html</guid>\n      <pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Selecting The Right AI Evals Tool</title>\n      <link>https://hamel.dev/./blog/posts/eval-tools/index.html</link>\n      <description>Selecting The Right AI Evals Tool</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/eval-tools/index.html</guid>\n      <pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LLM Evals: Everything You Need to Know</title>\n      <link>https://hamel.dev/./blog/posts/evals-faq/index.html</link>\n      <description>LLM Evals: Everything You Need to Know</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/evals-faq/index.html</guid>\n      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why I Stopped Using nbdev</title>\n      <link>https://hamel.dev/./blog/posts/ai-stack/index.html</link>\n      <description>Why I Stopped Using nbdev</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/ai-stack/index.html</guid>\n      <pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evals Skills for Coding Agents</title>\n      <link>https://hamel.dev/./blog/posts/evals-skills/index.html</link>\n      <description>Evals Skills for Coding Agents</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/evals-skills/index.html</guid>\n      <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Revenge of the Data Scientist</title>\n      <link>https://hamel.dev/./blog/posts/revenge/index.html</link>\n      <description>The Revenge of the Data Scientist</description>\n      <guid isPermaLink=\"false\">https://hamel.dev/./blog/posts/revenge/index.html</guid>\n      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_meta_ai.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>AI at Meta Blog</title>\n    <link>https://ai.meta.com/blog/</link>\n    <description>AI research, open source, and applications from Meta</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_meta_ai.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 11:21:25 +0000</lastBuildDate>\n    <item>\n      <title>Scaling How We Build and Test Our Most Advanced AI</title>\n      <link>https://ai.meta.com/blog/scaling-how-we-build-test-advanced-ai/</link>\n      <description>Scaling How We Build and Test Our Most Advanced AI</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/scaling-how-we-build-test-advanced-ai/</guid>\n      <category>Research</category>\n      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Muse Spark: Scaling Towards Personal Superintelligence</title>\n      <link>https://ai.meta.com/blog/introducing-muse-spark-msl/</link>\n      <description>Introducing Muse Spark: Scaling Towards Personal Superintelligence</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/introducing-muse-spark-msl/</guid>\n      <category>Featured</category>\n      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Alta Daily Uses Meta’s Segment Anything to Reimagine the Digital Closet</title>\n      <link>https://ai.meta.com/blog/alta-daily-fashion-app-segment-anything/</link>\n      <description>How Alta Daily Uses Meta’s Segment Anything to Reimagine the Digital Closet</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/alta-daily-fashion-app-segment-anything/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>SAM 3.1: Faster and More Accessible Real-Time Video Detection and Tracking With Multiplexing and Global Reasoning</title>\n      <link>https://ai.meta.com/blog/segment-anything-model-3/</link>\n      <description>SAM 3.1: Faster and More Accessible Real-Time Video Detection and Tracking With Multiplexing and Global Reasoning</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/segment-anything-model-3/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing TRIBE v2: A Predictive Foundation Model Trained to Understand How the Human Brain Processes Complex Stimuli</title>\n      <link>https://ai.meta.com/blog/tribe-v2-brain-predictive-foundation-model/</link>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/tribe-v2-brain-predictive-foundation-model/</guid>\n      <category>Research</category>\n      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Four MTIA Chips in Two Years: Scaling AI Experiences for Billions</title>\n      <link>https://ai.meta.com/blog/meta-mtia-scale-ai-chips-for-billions/</link>\n      <description>Four MTIA Chips in Two Years: Scaling AI Experiences for Billions</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/meta-mtia-scale-ai-chips-for-billions/</guid>\n      <category>AI</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mapping the World's Forests with Greater Precision: Introducing Canopy Height Maps v2</title>\n      <link>https://ai.meta.com/blog/world-resources-institute-dino-canopy-height-maps-v2/</link>\n      <description>Today, in partnership with the World Resources Institute, we’re announcing Canopy Height Maps v2 (CHMv2): an open source model and world-scale maps generated with it.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/world-resources-institute-dino-canopy-height-maps-v2/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reducing Government Costs and Increasing Access to Greenspaces in the United Kingdom with DINO</title>\n      <link>https://ai.meta.com/blog/forest-research-dino/</link>\n      <description>Meta's DINOv2 model is enhancing reforestation efforts around the world. Learn how the UK government is using DINO to help reduce costs and increase access to greenspaces.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/forest-research-dino/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Universities Space Research Association Applies Segment Anything Model for Responding to Flood Emergencies</title>\n      <link>https://ai.meta.com/blog/usra-sam-flood-emergencies/</link>\n      <description>The Universities Space Research Association and Meta are collaborating to help support water observing systems set up by the U.S. Geological Survey.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/usra-sam-flood-emergencies/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How DINO and SAM are Helping Modernize Essential Medical Triage Practices</title>\n      <link>https://ai.meta.com/blog/upenn-dino-sam-helping-medical-triage/</link>\n      <description>By leveraging advanced AI models, teams at the University of Pennsylvania are aiming to bring cutting-edge automation to emergency response.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/upenn-dino-sam-helping-medical-triage/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing SAM Audio: The First Unified Multimodal Model for Audio Separation</title>\n      <link>https://ai.meta.com/blog/sam-audio/</link>\n      <description>SAM Audio transforms audio processing by making it easy to isolate any sound from complex audio mixtures using natural, multimodal prompts — whether through text, visual cues, or marking time segments.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/sam-audio/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Conservation X Labs Is Using Segment Anything Model 3 for Endangered Wildlife Monitoring</title>\n      <link>https://ai.meta.com/blog/segment-anything-conservation-x-wildlife-monitoring/</link>\n      <description>Start-ups like Conservation X Labs are using Meta’s Segment Anything Models to bolster on-the-ground conservation expertise.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/segment-anything-conservation-x-wildlife-monitoring/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ExecuTorch Adoption in Reality Labs: Powering On-Device AI Across Meta Devices</title>\n      <link>https://ai.meta.com/blog/executorch-reality-labs-on-device-ai/</link>\n      <description>ExecuTorch, Meta’s open source, lightweight, and efficient inference engine, has been instrumental in enabling on-device AI capabilities across Meta’s family of apps.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/executorch-reality-labs-on-device-ai/</guid>\n      <category>Open Source</category>\n      <pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing SAM 3D: Powerful 3D Reconstruction for Physical World Images</title>\n      <link>https://ai.meta.com/blog/sam-3d/</link>\n      <description>This release introduces two new state-of-the-art models: SAM 3D Objects for object and scene reconstruction, and SAM 3D Body for human body and shape estimation.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/sam-3d/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Wed, 19 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Omnilingual ASR: Advancing Automatic Speech Recognition for 1,600+ Languages</title>\n      <link>https://ai.meta.com/blog/omnilingual-asr-advancing-automatic-speech-recognition/</link>\n      <description>We’re introducing Meta Omnilingual Automatic Speech Recognition, a suite of models providing automatic speech recognition capabilities for over 1,600 languages.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/omnilingual-asr-advancing-automatic-speech-recognition/</guid>\n      <category>Open Source</category>\n      <pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Agents Rule of Two: A Practical Approach to AI Agent Security</title>\n      <link>https://ai.meta.com/blog/practical-ai-agent-security/</link>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/practical-ai-agent-security/</guid>\n      <category></category>\n      <pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Building Blocks of Agentic AI: From Kernels to Clusters</title>\n      <link>https://ai.meta.com/blog/introducing-pytorch-native-agentic-stack/</link>\n      <description>At PyTorch Conference 2025 in San Francisco, we unveiled five new projects spanning kernel languages, distributed systems, reinforcement learning, agentic frameworks, and edge AI deployment.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/introducing-pytorch-native-agentic-stack/</guid>\n      <category>Open Source</category>\n      <pubDate>Fri, 24 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Llama and Oracle are helping Instituto PROA kickstart careers for students in Brazil</title>\n      <link>https://ai.meta.com/blog/llama-oracle-help-students-in-brazil/</link>\n      <description>Instituto PROA, a nonprofit organization in Brazil, has transformed its job preparation process for young candidates by leveraging Llama and Oracle Cloud Infrastructure.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llama-oracle-help-students-in-brazil/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How DINOv3 is helping World Resources Institute restore forests and farms globally</title>\n      <link>https://ai.meta.com/blog/world-resources-institute-dinov3/</link>\n      <description>WRI and the Bezos Earth Fund used DINOv3 to develop an algorithm to accurately count individual trees from drone and satellite imagery.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/world-resources-institute-dinov3/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Small robots, mighty vision: NASA Jet Propulsion Laboratory's DINOv2-enabled robot rovers and the future of planetary exploration</title>\n      <link>https://ai.meta.com/blog/nasa-jpl-dino-robot-explorers/</link>\n      <description>Using DINOv2, the team at NASA's Jet Propulsion Laboratory built a convenient robot operating system interface for robotic tasks.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/nasa-jpl-dino-robot-explorers/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DINOv3: Self-supervised learning for vision at unprecedented scale</title>\n      <link>https://ai.meta.com/blog/dinov3-self-supervised-vision-model/</link>\n      <description>DINOv3 scales self-supervised learning for images to create universal vision backbones that achieve absolute state-of-the-art performance across diverse domains, including web and satellite imagery.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/dinov3-self-supervised-vision-model/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Llama helps Biofy Technologies in the fight against antibiotic resistance</title>\n      <link>https://ai.meta.com/blog/llama-helps-biofy-fight-antibiotic-resistance/</link>\n      <description>Brazil, the biotech company Biofy Technologies has developed a groundbreaking platform using Llama that reduces diagnostic time for antibiotic resistance from five days to less than four hours.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llama-helps-biofy-fight-antibiotic-resistance/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Upwork helps freelancers win more work with Llama</title>\n      <link>https://ai.meta.com/blog/upwork-helps-freelancers-with-llama/</link>\n      <description>Upwork, one of the world’s largest work marketplaces, is using Llama to power Uma, its mindful AI, to help freelancers land jobs faster and more confidently.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/upwork-helps-freelancers-with-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Joining forces with AWS on a new program to help startups build with Llama</title>\n      <link>https://ai.meta.com/blog/aws-program-startups-build-with-llama/</link>\n      <description>We're joining forces with Amazon Web Services to announce a new program that will provide resources and support to 30 promising startups in the U.S. that are building with Llama.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/aws-program-startups-build-with-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Modeling natural conversational dynamics with Seamless Interaction</title>\n      <link>https://ai.meta.com/blog/seamless-interaction-natural-conversational-dynamics/</link>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/seamless-interaction-natural-conversational-dynamics/</guid>\n      <category>Open Source</category>\n      <pubDate>Fri, 27 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Llama helps drive engineering efficiency at a major Australian bank</title>\n      <link>https://ai.meta.com/blog/llama-helps-efficiency-anz-bank/</link>\n      <description>ANZ, one of Australia's Big Four banks, is driving engineering efficiency with Llama.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llama-helps-efficiency-anz-bank/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing the inaugural Llama Startup Program cohort</title>\n      <link>https://ai.meta.com/blog/llama-startup-program-first-cohort/</link>\n      <description>At Meta, we believe in the potential of early-stage startups to drive innovation in the generative AI market, and through the Llama Startup Program, we aim to lower the barrier to entry for getting started with Llama models.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llama-startup-program-first-cohort/</guid>\n      <category>Large Language Model</category>\n      <pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the V-JEPA 2 world model and new benchmarks for physical reasoning</title>\n      <link>https://ai.meta.com/blog/v-jepa-2-world-model-benchmarks/</link>\n      <description>We’re excited to share V-JEPA 2, the first world model trained on video that enables state-of-the-art understanding and prediction, as well as zero-shot planning and robot control in new environments.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/v-jepa-2-world-model-benchmarks/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inside Aria Gen 2: Explore the cutting-edge tech behind the device</title>\n      <link>https://ai.meta.com/blog/aria-gen-2-research-glasses-under-the-hood-reality-labs/</link>\n      <description>Today, we’re excited to share more about the technology inside Aria Gen 2. This includes an in-depth overview of the form factor, audio capabilities, battery life, upgraded cameras and sensors, on-device compute, and more.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/aria-gen-2-research-glasses-under-the-hood-reality-labs/</guid>\n      <category>Computer Vision</category>\n      <pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Llama Startup Program</title>\n      <link>https://ai.meta.com/blog/llama-startup-program/</link>\n      <description>We’re excited to announce the Llama Startup Program, a new initiative to empower early stage startups to innovate and build generative AI applications with Llama.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llama-startup-program/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sharing new breakthroughs and artifacts supporting molecular property prediction, language processing, and neuroscience</title>\n      <link>https://ai.meta.com/blog/meta-fair-science-new-open-source-releases/</link>\n      <description>Meta FAIR is sharing new research artifacts that highlight our commitment to advanced machine intelligence (AMI) through focused scientific and academic progress.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/meta-fair-science-new-open-source-releases/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meet the winners of our first-ever LlamaCon Hackathon</title>\n      <link>https://ai.meta.com/blog/llamacon-hackathon/</link>\n      <description>The challenge was to create a demonstrable project using the Llama API, Llama 4 Scout, or Llama 4 Maverick—or any combination of these cutting-edge tools—within just 24 hours.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llamacon-hackathon/</guid>\n      <category>Open Source</category>\n      <pubDate>Tue, 13 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Meta Segment Anything Model enables Cutouts in the Instagram Edits app</title>\n      <link>https://ai.meta.com/blog/instagram-edits-cutouts-segment-anything/</link>\n      <description>People can use Cutouts to edit across several layers of video, applying filters to specific parts of videos and easily place elements like text and stickers behind objects.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/instagram-edits-cutouts-segment-anything/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Common Sense Machines uses Meta Segment Anything Model and AI to generate production-ready 3D assets</title>\n      <link>https://ai.meta.com/blog/segment-anything-common-sense-machines-3d-assets/</link>\n      <description>Common Sense Machines uses Meta Segment Anything Model 2 to analyze 2D images and video and translate their components to 3D.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/segment-anything-common-sense-machines-3d-assets/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Everything we announced at our first-ever LlamaCon</title>\n      <link>https://ai.meta.com/blog/llamacon-llama-news/</link>\n      <description>Here’s a look at what we announced at LlamaCon and how you can get started with our newest releases.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llamacon-llama-news/</guid>\n      <category>Open Source</category>\n      <pubDate>Tue, 29 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sharing new open source protection tools and advancements in AI privacy and security</title>\n      <link>https://ai.meta.com/blog/ai-defenders-program-llama-protection-tools/</link>\n      <description>Today, we’re releasing new Llama protection tools for the open source AI community.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/ai-defenders-program-llama-protection-tools/</guid>\n      <category>Open Source</category>\n      <pubDate>Tue, 29 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Litmos is using Llama to make corporate learning more intuitive</title>\n      <link>https://ai.meta.com/blog/litmos-llama-intuitive-corporate-learning/</link>\n      <description>With Llama 3.1 8B, Litmos created an AI-powered assistant that enables natural language search, making the LMS more intuitive and user-friendly.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/litmos-llama-intuitive-corporate-learning/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing AI systems through progress in perception, localization, and reasoning</title>\n      <link>https://ai.meta.com/blog/meta-fair-updates-perception-localization-reasoning/</link>\n      <description>Meta FAIR is releasing several new research artifacts that advance our understanding of perception and support our goal of achieving advanced machine intelligence (AMI).</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/meta-fair-updates-perception-localization-reasoning/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Llama 4 herd: The beginning of a new era of natively multimodal AI innovation</title>\n      <link>https://ai.meta.com/blog/llama-4-multimodal-intelligence/</link>\n      <description>We’re introducing Llama 4 Scout and Llama 4 Maverick, the first open-weight natively multimodal models with unprecedented context support and our first built using a mixture-of-experts (MoE) architecture.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llama-4-multimodal-intelligence/</guid>\n      <category>Large Language Model</category>\n      <pubDate>Sat, 05 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Tavus is helping to make AI videos feel like real conversations</title>\n      <link>https://ai.meta.com/blog/tavus-real-feeling-ai-videos-llama/</link>\n      <description>Tavus, an AI video research company, leverages advanced AI models to create human-like digital interactions that feel as authentic as real human conversations.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/tavus-real-feeling-ai-videos-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Cornerstone is transforming XR training to build essential skills for the modern workforce</title>\n      <link>https://ai.meta.com/blog/cornerstone-transforming-training-llama/</link>\n      <description>Cornerstone is transforming how employees learn. Using Llama, they’re taking that experience to the next level through extended reality training scenarios.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/cornerstone-transforming-training-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 26 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meta at SXSW: How Llama and open source AI is leveling the playing field and enabling innovation</title>\n      <link>https://ai.meta.com/blog/sxsw-meta-llama-open-source-innovation/</link>\n      <description>At SXSW, Meta and Llama developers showcased the impact of open source AI, and participated in policy discussions and hands-on demos.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/sxsw-meta-llama-open-source-innovation/</guid>\n      <category>Open Source</category>\n      <pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our open source Llama models are helping to spur economic growth in the US</title>\n      <link>https://ai.meta.com/blog/built-with-llama-writesea-fynopsis-srimoyee-mukhopadhyay-united-states-economy/</link>\n      <description>We’ve shared how Llama’s impact has already been felt by businesses and entrepreneurs. And today, we’re looking at how Llama is helping to spur economic growth in the US.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/built-with-llama-writesea-fynopsis-srimoyee-mukhopadhyay-united-states-economy/</guid>\n      <category>Open Source</category>\n      <pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Smartly is improving customer service and automating technical support with generative AI</title>\n      <link>https://ai.meta.com/blog/smartly-improving-customer-service-llama/</link>\n      <description>Smartly, a digital advertising platform, harnesses the power of AI to scale ads across channels.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/smartly-improving-customer-service-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 12 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building foundation models for understanding human pathology using DINOv2</title>\n      <link>https://ai.meta.com/blog/mahmood-lab-human-pathology-dinov2/</link>\n      <description>When Dr. Faisal Mahmood set up his laboratory at the intersection of pathology and machine learning. The team credits open source models, including Meta’s DINO, with helping them do their work.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/mahmood-lab-human-pathology-dinov2/</guid>\n      <category></category>\n      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Sofya is taking clinical reasoning to the next level with Llama</title>\n      <link>https://ai.meta.com/blog/sofya-clinical-reasoning-with-llama/</link>\n      <description>Sofya turned to Llama with the goal of fostering the development of healthcare solutions in Brazil and Latin America.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/sofya-clinical-reasoning-with-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Sevilla FC is discovering future soccer stars with Llama</title>\n      <link>https://ai.meta.com/blog/sevilla-fc-scout-advisor-llama-ibm-watsonx/</link>\n      <description>Sevilla FC’s data department partnered with IBM to create Scout Advisor, a generative AI-driven scouting tool designed and deployed on watsonx, with Llama 3.1 70B Instruct.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/sevilla-fc-scout-advisor-llama-ibm-watsonx/</guid>\n      <category>Open Source</category>\n      <pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Orakl Oncology is using DINOv2 to accelerate cancer treatment discovery</title>\n      <link>https://ai.meta.com/blog/orakl-oncology-dinov2-accelerating-cancer-treatment/</link>\n      <description>Orakl Oncology aims to accelerate cancer research and drug development by combining experimental, lab-based insights and machine learning.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/orakl-oncology-dinov2-accelerating-cancer-treatment/</guid>\n      <category></category>\n      <pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>EgoMimic: Georgia Tech PhD student uses Project Aria Research Glasses to help train humanoid robots</title>\n      <link>https://ai.meta.com/blog/egomimic-project-aria-georgia-tech-ego4d-robotics-embodied-ai/</link>\n      <description>Today, we’re highlighting new research from Georgia Tech that helps train robots to perform basic everyday tasks using egocentric recordings from wearers of Meta’s Project Aria research glasses.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/egomimic-project-aria-georgia-tech-ego4d-robotics-embodied-ai/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 19 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dramatically accelerating patient-matching in clinical trials with open source</title>\n      <link>https://ai.meta.com/blog/mendel-ai-accelerating-clinical-trials-with-llama/</link>\n      <description>Mendel AI’s flagship product, Mendel Hypercube, tackles clinical tasks. With Llama, Hypercube can also be used for trial matching and putting together patient groups.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/mendel-ai-accelerating-clinical-trials-with-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 19 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Artifacts: An interview with Ruben Fro and Benjamin Bardou</title>\n      <link>https://ai.meta.com/blog/ai-action-summit-2025-ruben-fro-benjamin-bardou-mehdi-mejri/</link>\n      <description>In honor of this year’s AI Action Summit, we partnered with the Bibliothèque Nationale de France (BnF), Fisheye Immersive, Convergence, and Institut Montaigne to commission two open source AI-generated art installations by innovative artists, Ruben Fro and Benjamin Bardou.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/ai-action-summit-2025-ruben-fro-benjamin-bardou-mehdi-mejri/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Update: Expanding access to Meta Segment Anything 2.1 on Amazon SageMaker JumpStart</title>\n      <link>https://ai.meta.com/blog/segment-anything-2/</link>\n      <description>Starting today, SAM 2.1 is available in Amazon SageMaker JumpStart, making it easier than ever to deploy SAM 2.1 and integrate it into new applications and workflows.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/segment-anything-2/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reimagining K-12 Education: How Blended Labs is raising the bar with AI-driven schools</title>\n      <link>https://ai.meta.com/blog/blended-labs-ai-driven-schools-with-llama/</link>\n      <description>Blended, an educational technology and  AI company based in Germany, is using Llama 3.1 as the foundation of its flagship product, Blended OS, an AI-native school operating system.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/blended-labs-ai-driven-schools-with-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Using AI to decode language from the brain and advance our understanding of human communication</title>\n      <link>https://ai.meta.com/blog/brain-ai-research-human-communication/</link>\n      <description>Today, in collaboration with the Basque Center on Cognition, Brain and Language,  we’re excited to share two breakthroughs that show how AI can help advance our understanding of human intelligence, leading us closer to AMI.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/brain-ai-research-human-communication/</guid>\n      <category>Research</category>\n      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing machine intelligence through human-centered research</title>\n      <link>https://ai.meta.com/blog/machine-intelligence-research-new-models/</link>\n      <description>Meta FAIR is sharing some of our most recent research and models that support our goal of achieving AMI, and our long-held commitment to sharing open and reproducible science.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/machine-intelligence-research-new-models/</guid>\n      <category></category>\n      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Enlisting Llama in India’s first open source audio language model</title>\n      <link>https://ai.meta.com/blog/sarvam-india-audio-language-model-llama/</link>\n      <description>Sarvam used Llama to develop enterprise voice AI agents with improved reasoning capabilities that are proficient in 10 Indian languages.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/sarvam-india-audio-language-model-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Altana employs Llama to elevate global value chain management</title>\n      <link>https://ai.meta.com/blog/altana-value-chain-management-llama/</link>\n      <description>Altana uses AI to help businesses and governments manage their global supply chains, providing insight into extended supplier and distribution networks.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/altana-value-chain-management-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How BrightHeart uses Meta’s DINOv2 to transform fetal heart screenings</title>\n      <link>https://ai.meta.com/blog/brightheart-transforms-fetal-heart-screenings-dinov2/</link>\n      <description>BrightHeart has created an AI-powered medical software with the support of Meta’s DINOv2 model to help clinicians identify or rule out signs suggestive of congenital heart defects.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/brightheart-transforms-fetal-heart-screenings-dinov2/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 23 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Scaling an AI coding assistant built with Llama to hundreds of thousands of users</title>\n      <link>https://ai.meta.com/blog/codeium-ai-coding-assistant-llama/</link>\n      <description>Codeium’s AI-enabled coding assistant leverages Llama for its free and premiere offerings.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/codeium-ai-coding-assistant-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 22 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How digital artist Josephine Miller uses Meta Segment Anything to help design the future of fashion</title>\n      <link>https://ai.meta.com/blog/josephine-miller-designer-meta-segment-anything-2/</link>\n      <description>Josephine, a London-based XR creative designer and content creator, takes us behind the scenes of how she uses open source technology in her work.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/josephine-miller-designer-meta-segment-anything-2/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Llama is helping Saama deliver new possibilities in personalized medicine and data-driven care</title>\n      <link>https://ai.meta.com/blog/saama-data-driven-care-built-with-llama/</link>\n      <description>OpenBioLLM, a series of fine-tuned Llama models from life sciences company Saama, streamlines tasks that can accelerate clinical trials and potentially create new possibilities in personalized medicine.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/saama-data-driven-care-built-with-llama/</guid>\n      <category></category>\n      <pubDate>Tue, 14 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Virgo is using DINOv2 to analyze endoscopy videos for precision medicine</title>\n      <link>https://ai.meta.com/blog/virgo-dino-endoscopy-video/</link>\n      <description>Virgo, a company based in San Diego, California, believes endoscopy video and AI are a powerful combination that could lead to improved patient outcomes.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/virgo-dino-endoscopy-video/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 09 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How TU Dresden is advancing precision oncology and transforming healthcare AI</title>\n      <link>https://ai.meta.com/blog/dresden-advancing-precision-oncology-built-with-llama/</link>\n      <description>TUD Dresden University of Technology’s Clinical AI research group is transforming cancer care through computational innovation, focusing on precision oncology.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/dresden-advancing-precision-oncology-built-with-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 08 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Nymeria, a dataset for improving human motion prediction for AR and VR devices</title>\n      <link>https://ai.meta.com/blog/nymeria-dataset-reality-labs-research-egocentric-human-motion-understanding/</link>\n      <description>The Nymeria dataset provides egocentric human motion in the wild at an unprecedented scale, capturing a broad spectrum of people engaging in everyday activities across varied locations.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/nymeria-dataset-reality-labs-research-egocentric-human-motion-understanding/</guid>\n      <category>Open Source</category>\n      <pubDate>Fri, 20 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Finding the perfect book to read next with a Llama-based assistant</title>\n      <link>https://ai.meta.com/blog/scribd-everand-llama/</link>\n      <description>Scribd, Inc.’s Everand reading service is home to a global library of millions of ebooks, audiobooks and more.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/scribd-everand-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Fri, 20 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The future of AI: Built with Llama</title>\n      <link>https://ai.meta.com/blog/future-of-ai-built-with-llama/</link>\n      <description>As we close out 2024, Meta is leading the industry forward in AI product and technology experiences and setting a new standard for how the industry builds and advances AI.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/future-of-ai-built-with-llama/</guid>\n      <category>Large Language Model</category>\n      <pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Spotify is using Llama to create personalized recommendations and enhance content discovery</title>\n      <link>https://ai.meta.com/blog/spotify-personalized-recommendations-built-with-llama/</link>\n      <description>Spotify uses Llama to deliver contextualized recommendations to boost artist discovery and create an even richer user experience.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/spotify-personalized-recommendations-built-with-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sharing new research, models, and datasets from Meta FAIR</title>\n      <link>https://ai.meta.com/blog/meta-fair-updates-agents-robustness-safety-architecture/</link>\n      <description>Meta FAIR is releasing new research artifacts that highlight our recent innovations in developing agents, robustness and safety, and architectures that facilitate machine learning.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/meta-fair-updates-agents-robustness-safety-architecture/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 12 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Inarix is using DINOv2 to revolutionize the agricultural supply chain</title>\n      <link>https://ai.meta.com/blog/inarix-agricultural-supply-chain-meta-dino-v2/</link>\n      <description>Inarix is transforming the agricultural industry by turning smartphones into pocket laboratories using Meta FAIR’s DinoV2.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/inarix-agricultural-supply-chain-meta-dino-v2/</guid>\n      <category></category>\n      <pubDate>Fri, 06 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing Neuromotor Interfaces by Open Sourcing Surface Electromyography (sEMG) Datasets for Pose Estimation and Surface Typing</title>\n      <link>https://ai.meta.com/blog/open-sourcing-surface-electromyography-datasets-neurips-2024/</link>\n      <description>We’re releasing emg2qwerty and emg2pose—two large datasets and benchmarks for sEMG-based typing and pose estimation, as part of the NeurIPS 2024 Datasets and Benchmarks track.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/open-sourcing-surface-electromyography-datasets-neurips-2024/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 05 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Scaling semiconductor expertise with Llama-powered Domain-Expert Agents</title>\n      <link>https://ai.meta.com/blog/aitomatic-built-with-llama/</link>\n      <description>Aitomatic enables semiconductor companies to build Domain-Expert Agents to capture and scale their deep domain expertise using Llama-based foundation models.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/aitomatic-built-with-llama/</guid>\n      <category></category>\n      <pubDate>Wed, 04 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Extending healthcare access to underserved communities with AI</title>\n      <link>https://ai.meta.com/blog/bimedix-built-with-llama/</link>\n      <description>The team behind BiMediX2, an Arabic-English medical large multimodal model, aims to expand healthcare access in Africa and the Middle East.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/bimedix-built-with-llama/</guid>\n      <category></category>\n      <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing SPDL: Faster AI model training with thread-based data loading</title>\n      <link>https://ai.meta.com/blog/spdl-faster-ai-model-training-with-thread-based-data-loading-reality-labs/</link>\n      <description>SPDL is a framework-agnostic data loading solution that uses multi-threading, which achieves high-throughput in a regular Python interpreter (built without free-threading option enabled).</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/spdl-faster-ai-model-training-with-thread-based-data-loading-reality-labs/</guid>\n      <category>Model Training</category>\n      <pubDate>Fri, 22 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building a chatbot based on Llama to engage an intergovernmental organization’s stakeholders</title>\n      <link>https://ai.meta.com/blog/accenture-built-with-llama/</link>\n      <description>Accenture turned to Llama for a leading global intergovernmental body’s first large-scale, public-facing generative AI application.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/accenture-built-with-llama/</guid>\n      <category>Large Language Model</category>\n      <pubDate>Wed, 20 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Open Catalyst experiments 2024</title>\n      <link>https://ai.meta.com/blog/open-catalyst-simulations-experiments/</link>\n      <description>Meta FAIR is releasing a large-scale dataset of experimental results on various materials, providing valuable insights for the development of new catalysts.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/open-catalyst-simulations-experiments/</guid>\n      <category></category>\n      <pubDate>Tue, 19 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>IBM and Llama: Working to enable AI builder creativity globally</title>\n      <link>https://ai.meta.com/blog/ibm-watsonx-ai-llama/</link>\n      <description>IBM and Meta are implementing the combined power of IBM’s watsonx AI and data platform and Llama to help businesses reach their AI goals.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/ibm-watsonx-ai-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 13 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Highlights from the first-ever Llama hackathon in India</title>\n      <link>https://ai.meta.com/blog/llama-hackathon-india/</link>\n      <description>Teams embarked on a 30-hour journey to create AI solutions tackling real-world challenges, leveraging Meta’s Llama 3 models and WhatsApp APIs.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/llama-hackathon-india/</guid>\n      <category>Large Language Model</category>\n      <pubDate>Fri, 08 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Advancing embodied AI through progress in touch perception, dexterity, and human-robot interaction</title>\n      <link>https://ai.meta.com/blog/fair-robotics-open-source/</link>\n      <description>Meta FAIR is publicly releasing several new research artifacts that advance robotics and support our goal of reaching advanced machine intelligence (AMI).</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/fair-robotics-open-source/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 31 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Roboflow estimates a 74-year time savings across its community from using Meta’s Segment Anything</title>\n      <link>https://ai.meta.com/blog/segment-anything-roboflow-image-segmentation/</link>\n      <description>As a company with a mission to help make the world more programmable, Roboflow uses SAM to help build systems that enable their customers to have visual understanding for just about anything.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/segment-anything-roboflow-image-segmentation/</guid>\n      <category>Open Source</category>\n      <pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing quantized Llama models with increased speed and a reduced memory footprint</title>\n      <link>https://ai.meta.com/blog/meta-llama-quantized-lightweight-models/</link>\n      <description>As our first quantized models in this Llama category, these instruction-tuned models retain the quality and safety of the original 1B and 3B models, while achieving 2-4x speedup.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/meta-llama-quantized-lightweight-models/</guid>\n      <category>Large Language Model</category>\n      <pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How an online gifting site is using Llama to help protect customer privacy</title>\n      <link>https://ai.meta.com/blog/untukmu-built-with-llama/</link>\n      <description>Untukmu.AI, a platform that offers personalized gift recommendations, designed a semi-decentralized personal assistant that ensures the company won’t have access to customer data.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/untukmu-built-with-llama/</guid>\n      <category></category>\n      <pubDate>Tue, 22 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sharing new research, models, and datasets from Meta FAIR</title>\n      <link>https://ai.meta.com/blog/fair-news-segment-anything-2-1-meta-spirit-lm-layer-skip-salsa-lingua/</link>\n      <description>Today, Meta FAIR is releasing several new research artifacts in support of our goal of achieving advanced machine intelligence (AMI) while also supporting open science and reproducibility.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/fair-news-segment-anything-2-1-meta-spirit-lm-layer-skip-salsa-lingua/</guid>\n      <category>Open Source</category>\n      <pubDate>Fri, 18 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Partnering with Blumhouse, creators, and the entertainment industry as we develop Meta Movie Gen</title>\n      <link>https://ai.meta.com/blog/movie-gen-video-sound-generation-blumhouse/</link>\n      <description>We’re sharing initial results from our work with award-winning production company Blumhouse and select creators—part of a pilot program focused on creative industry feedback.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/movie-gen-video-sound-generation-blumhouse/</guid>\n      <category>Research</category>\n      <pubDate>Thu, 17 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Llama helped CodeGPT become one of the top AI-powered coding assistants</title>\n      <link>https://ai.meta.com/blog/codegpt-built-with-llama/</link>\n      <description>CodeGPT integrates large language models like Llama to make developers and CTOs more productive.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/codegpt-built-with-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 16 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Neuromnia is transforming ABA therapy with Llama 3.1</title>\n      <link>https://ai.meta.com/blog/neuromnia-autism-aba-therapy-built-with-llama/</link>\n      <description>Harnessing Llama 3.1, Neuromnia recently developed Nia, a human-centric AI co-pilot for Applied Behavior Analysis therapy.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/neuromnia-autism-aba-therapy-built-with-llama/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 09 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Meta Movie Gen could usher in a new AI-enabled era for content creators</title>\n      <link>https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/</link>\n      <description>Today, we’re excited to premiere Meta Movie Gen, our breakthrough generative AI research for media, which includes modalities like image, video, and audio.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/</guid>\n      <category>Research</category>\n      <pubDate>Fri, 04 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Making data science more accessible to enterprises with Llama</title>\n      <link>https://ai.meta.com/blog/meta-learner-llama-data-science/</link>\n      <description>By leveraging Llama 3.1, MetaLearner enables enterprises to tap into powerful AI capabilities without the need for specialized expertise, making advanced analytics accessible to non-technical users.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/meta-learner-llama-data-science/</guid>\n      <category>Open Source</category>\n      <pubDate>Wed, 02 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Digital Twin Catalog from Reality Labs Research</title>\n      <link>https://ai.meta.com/blog/digital-twin-catalog-3d-reconstruction-shopify-reality-labs-research/</link>\n      <description>Reality Labs Research is releasing the Digital Twin Catalog (DTC), which we believe is the world’s largest and highest quality 3D object model dataset for 3D reconstruction research.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/digital-twin-catalog-3d-reconstruction-shopify-reality-labs-research/</guid>\n      <category>Open Source</category>\n      <pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Connect 2024: The responsible approach we’re taking to generative AI</title>\n      <link>https://ai.meta.com/blog/responsible-ai-connect-2024/</link>\n      <description>With the rapidly evolving AI landscape, we recognize the importance of sharing our responsibility and safety approach with everyone.</description>\n      <guid isPermaLink=\"false\">https://ai.meta.com/blog/responsible-ai-connect-2024/</guid>\n      <category>Responsible AI</category>\n      <pubDate>Wed, 25 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_mistral.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Mistral AI News</title>\n    <link>https://mistral.ai/news</link>\n    <description>News, research, and product updates from Mistral AI</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_mistral.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 11:21:50 +0000</lastBuildDate>\n    <item>\n      <title>Remote agents in Vibe. Powered by Mistral Medium 3.5.</title>\n      <link>https://mistral.ai/news/vibe-remote-agents-mistral-medium-3-5</link>\n      <description>Introducing Mistral Medium 3.5, remote coding agents in Vibe, plus new Work mode in Le Chat for complex tasks.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/vibe-remote-agents-mistral-medium-3-5</guid>\n      <category>Product</category>\n      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Workflows for work that runs the business</title>\n      <link>https://mistral.ai/news/workflows</link>\n      <description>Workflows is now in public preview.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/workflows</guid>\n      <category>Product</category>\n      <pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Connect the dots: Build with built-in and custom MCPs in Studio</title>\n      <link>https://mistral.ai/news/connectors</link>\n      <description>Connect enterprise data to your AI applications with reusable connectors, direct tool calling, and human-in-the-loop approval controls.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/connectors</guid>\n      <category>Product</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Two users, one CLI: people and agents</title>\n      <link>https://mistral.ai/news/two-users-one-cli-people-and-agents</link>\n      <description>Designing for agents forced us to build better tools, starting with our internal ones.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/two-users-one-cli-people-and-agents</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Speaking of Voxtral</title>\n      <link>https://mistral.ai/news/voxtral-tts</link>\n      <description>Voxtral TTS: A frontier, open-weights text-to-speech model that’s fast, instantly adaptable, and produces lifelike speech for voice agents.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/voxtral-tts</guid>\n      <category>Research</category>\n      <pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Forge</title>\n      <link>https://mistral.ai/news/forge</link>\n      <description>Today, we’re introducing Forge, a system that allows enterprises to build frontier-grade AI models grounded in their proprietary knowledge.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/forge</guid>\n      <category>Product</category>\n      <pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Leanstral: Open-Source foundation for trustworthy vibe-coding</title>\n      <link>https://mistral.ai/news/leanstral</link>\n      <description>First open-source code agent for Lean 4.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/leanstral</guid>\n      <category>Research</category>\n      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral AI partners with NVIDIA to accelerate open frontier models</title>\n      <link>https://mistral.ai/news/mistral-ai-and-nvidia-partner-to-accelerate-open-frontier-models</link>\n      <description>As a founding member of the NVIDIA Nemotron Coalition, Mistral AI is contributing large-scale model development and multimodal capabilities.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-ai-and-nvidia-partner-to-accelerate-open-frontier-models</guid>\n      <category>Company</category>\n      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Mistral Small 4</title>\n      <link>https://mistral.ai/news/mistral-small-4</link>\n      <description>Introducing Mistral Small 4</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-small-4</guid>\n      <category>Research</category>\n      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Rails testing on autopilot: Building an agent that writes what developers won't</title>\n      <link>https://mistral.ai/news/rails-testing-on-autopilot-building-an-agent-that-writes-what-developers-wont</link>\n      <description>Rails testing on autopilot: Building an agent that writes what developers won't</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/rails-testing-on-autopilot-building-an-agent-that-writes-what-developers-wont</guid>\n      <category>Solutions</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Voxtral transcribes at the speed of sound.</title>\n      <link>https://mistral.ai/news/voxtral-transcribe-2</link>\n      <description>Precision diarization, real-time transcription, and a new audio playground.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/voxtral-transcribe-2</guid>\n      <category>Research</category>\n      <pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Terminally online Mistral Vibe.</title>\n      <link>https://mistral.ai/news/mistral-vibe-2-0</link>\n      <description>Terminally online Mistral Vibe.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-vibe-2-0</guid>\n      <category>Product</category>\n      <pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Heaps do lie: debugging a memory leak in vLLM.</title>\n      <link>https://mistral.ai/news/debugging-memory-leak-in-vllm</link>\n      <description>Heaps do lie: debugging a memory leak in vLLM.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/debugging-memory-leak-in-vllm</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Mistral OCR 3</title>\n      <link>https://mistral.ai/news/mistral-ocr-3</link>\n      <description>Achieving a new frontier for both accuracy and efficiency in document processing.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-ocr-3</guid>\n      <category>Research</category>\n      <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing: Devstral 2 and Mistral Vibe CLI.</title>\n      <link>https://mistral.ai/news/devstral-2-vibe-cli</link>\n      <description>State-of-the-art, open-source agentic coding models and CLI agent.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/devstral-2-vibe-cli</guid>\n      <category>Research</category>\n      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Mistral 3</title>\n      <link>https://mistral.ai/news/mistral-3</link>\n      <description>A family of frontier open-source multimodal models</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-3</guid>\n      <category>Research</category>\n      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral AI - KI für Deutschland</title>\n      <link>https://mistral.ai/news/ki-fur-deutschland</link>\n      <description>Mistral AI - KI für Deutschland</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/ki-fur-deutschland</guid>\n      <category>Company</category>\n      <pubDate>Wed, 19 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Mistral AI Studio.</title>\n      <link>https://mistral.ai/news/ai-studio</link>\n      <description>The Production AI Platform.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/ai-studio</guid>\n      <category>Product</category>\n      <pubDate>Fri, 24 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral AI raises 1.7B€ to accelerate technological progress with AI</title>\n      <link>https://mistral.ai/news/mistral-ai-raises-1-7-b-to-accelerate-technological-progress-with-ai</link>\n      <description>Mistral AI raises 1.7B€ to accelerate technological progress with AI</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-ai-raises-1-7-b-to-accelerate-technological-progress-with-ai</guid>\n      <category>Company</category>\n      <pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Le Chat. Custom MCP connectors. Memories.</title>\n      <link>https://mistral.ai/news/le-chat-mcp-connectors-memories</link>\n      <description>Le Chat now integrates with 20+ enterprise platforms—powered by MCP—and remembers what matters with Memories.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/le-chat-mcp-connectors-memories</guid>\n      <category>Product</category>\n      <pubDate>Tue, 02 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Make Memory work for you.</title>\n      <link>https://mistral.ai/news/memory</link>\n      <description>Designing transparency and control into AI recall.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/memory</guid>\n      <category>Product</category>\n      <pubDate>Tue, 02 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unlocking the potential of vision language models on satellite imagery through fine-tuning</title>\n      <link>https://mistral.ai/news/unlocking-potential-vision-language-models-satellite-imagery-fine-tuning</link>\n      <description>Unlocking the potential of vision language models on satellite imagery through fine-tuning</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/unlocking-potential-vision-language-models-satellite-imagery-fine-tuning</guid>\n      <category>Solutions</category>\n      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Codestral 25.08 and the Complete Mistral Coding Stack for Enterprise</title>\n      <link>https://mistral.ai/news/codestral-25-08</link>\n      <description>Announcing Codestral 25.08 and the Complete Mistral Coding Stack for Enterprise</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/codestral-25-08</guid>\n      <category>Research</category>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our contribution to a global environmental standard for AI</title>\n      <link>https://mistral.ai/news/our-contribution-to-a-global-environmental-standard-for-ai</link>\n      <description>Our contribution to a global environmental standard for AI</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/our-contribution-to-a-global-environmental-standard-for-ai</guid>\n      <category>Company</category>\n      <pubDate>Tue, 22 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Le Chat dives deep.</title>\n      <link>https://mistral.ai/news/le-chat-dives-deep</link>\n      <description>Introducing Deep Research (Preview), plus Audio-in, Projects, and other updates.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/le-chat-dives-deep</guid>\n      <category>Product</category>\n      <pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Voxtral</title>\n      <link>https://mistral.ai/news/voxtral</link>\n      <description>Introducing frontier open source speech understanding models.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/voxtral</guid>\n      <category>Research</category>\n      <pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Upgrading agentic coding capabilities with the new Devstral models</title>\n      <link>https://mistral.ai/news/devstral-2507</link>\n      <description>Upgrading agentic coding capabilities with the new Devstral models</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/devstral-2507</guid>\n      <category>Research</category>\n      <pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing AI for Citizens</title>\n      <link>https://mistral.ai/news/ai-for-citizens</link>\n      <description>Empowering countries to use AI to transform public action and catalyze innovation for the benefit of their citizens.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/ai-for-citizens</guid>\n      <category>Solutions</category>\n      <pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral Compute</title>\n      <link>https://mistral.ai/news/mistral-compute</link>\n      <description>Frontier AI infrastructure for everyone.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-compute</guid>\n      <category>Company</category>\n      <pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Magistral</title>\n      <link>https://mistral.ai/news/magistral</link>\n      <description>Stands to reason.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/magistral</guid>\n      <category>Research</category>\n      <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Mistral Code</title>\n      <link>https://mistral.ai/news/mistral-code</link>\n      <description>Introducing Mistral Code</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-code</guid>\n      <category>Product</category>\n      <pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codestral Embed</title>\n      <link>https://mistral.ai/news/codestral-embed</link>\n      <description>The new state-of-the-art embedding model for code.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/codestral-embed</guid>\n      <category>Research</category>\n      <pubDate>Wed, 28 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build AI agents with the Mistral Agents API</title>\n      <link>https://mistral.ai/news/agents-api</link>\n      <description>Build AI agents with the Mistral Agents API</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/agents-api</guid>\n      <category>Product</category>\n      <pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Devstral</title>\n      <link>https://mistral.ai/news/devstral</link>\n      <description>Introducing the best open-source model for coding agents.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/devstral</guid>\n      <category>Research</category>\n      <pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Le Chat Enterprise</title>\n      <link>https://mistral.ai/news/le-chat-enterprise</link>\n      <description>Your Enterprise. Your AI.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/le-chat-enterprise</guid>\n      <category>Product</category>\n      <pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Medium is the new large.</title>\n      <link>https://mistral.ai/news/mistral-medium-3</link>\n      <description>Mistral Medium 3 delivers state-of-the-art performance at 8X lower cost with radically simplified enterprise deployments.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-medium-3</guid>\n      <category>Research</category>\n      <pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evaluating RAG with LLM as a Judge</title>\n      <link>https://mistral.ai/news/llm-as-rag-judge</link>\n      <description>Using Mistral Models for LLM as a Judge (With Structured Outputs)</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/llm-as-rag-judge</guid>\n      <category>Solutions</category>\n      <pubDate>Wed, 09 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral Small 3.1</title>\n      <link>https://mistral.ai/news/mistral-small-3-1</link>\n      <description>SOTA. Multimodal. Multilingual. Apache 2.0</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-small-3-1</guid>\n      <category>Research</category>\n      <pubDate>Mon, 17 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral OCR</title>\n      <link>https://mistral.ai/news/mistral-ocr</link>\n      <description>Introducing the world’s best document understanding API.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-ocr</guid>\n      <category>Research</category>\n      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Empowering product development with an agentic workflow</title>\n      <link>https://mistral.ai/news/agentic-workflows-from-meetings-to-dev-tickets</link>\n      <description>Transform meeting transcripts into development tasks with Mistral AI: From call transcript to PRD to engineering tickets.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/agentic-workflows-from-meetings-to-dev-tickets</guid>\n      <category>Solutions</category>\n      <pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral Saba</title>\n      <link>https://mistral.ai/news/mistral-saba</link>\n      <description>One of the many custom-trained models to serve specific geographies, markets, and customers</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-saba</guid>\n      <category>Research</category>\n      <pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The all new le Chat: Your AI assistant for life and work</title>\n      <link>https://mistral.ai/news/all-new-le-chat</link>\n      <description>Brand new features, iOS and Android apps, Pro, Team, and Enterprise tiers.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/all-new-le-chat</guid>\n      <category>Product</category>\n      <pubDate>Thu, 06 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral Small 3</title>\n      <link>https://mistral.ai/news/mistral-small-3</link>\n      <description>Mistral Small 3: Apache 2.0, 81% MMLU, 150 tokens/s</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-small-3</guid>\n      <category>Research</category>\n      <pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Purr-fectly informed</title>\n      <link>https://mistral.ai/news/mistral-afp</link>\n      <description>Le Chat and AFP team up to deliver AI powered by news, providing Le Chat users with richer, more reliable and more accurate responses.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-afp</guid>\n      <category>Product</category>\n      <pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codestral 25.01</title>\n      <link>https://mistral.ai/news/codestral-2501</link>\n      <description>Access the Codestral 25.01 API</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/codestral-2501</guid>\n      <category>Research</category>\n      <pubDate>Mon, 13 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pixtral Large</title>\n      <link>https://mistral.ai/news/pixtral-large</link>\n      <description>Pixtral grows up.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/pixtral-large</guid>\n      <category>Research</category>\n      <pubDate>Mon, 18 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral has entered the chat</title>\n      <link>https://mistral.ai/news/mistral-chat</link>\n      <description>Search, vision, ideation, coding… all yours for free.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-chat</guid>\n      <category>Product</category>\n      <pubDate>Mon, 18 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral Moderation API</title>\n      <link>https://mistral.ai/news/mistral-moderation</link>\n      <description>We are introducing our new moderation service enabling our users to detect undesirable text content along several policy dimensions.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-moderation</guid>\n      <category>Research</category>\n      <pubDate>Thu, 07 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral Batch API</title>\n      <link>https://mistral.ai/news/batch-api</link>\n      <description>Lower cost API for AI builders.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/batch-api</guid>\n      <category>Product</category>\n      <pubDate>Thu, 07 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Un Ministral, des Ministraux</title>\n      <link>https://mistral.ai/news/ministraux</link>\n      <description>Introducing the world’s best edge models.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/ministraux</guid>\n      <category>Research</category>\n      <pubDate>Wed, 16 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Pixtral 12B</title>\n      <link>https://mistral.ai/news/pixtral-12b</link>\n      <description>Pixtral 12B - the first-ever multimodal Mistral model. Apache 2.0.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/pixtral-12b</guid>\n      <category>Research</category>\n      <pubDate>Tue, 17 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI in abundance</title>\n      <link>https://mistral.ai/news/september-24-release</link>\n      <description>Introducing a free API, improved pricing across the board, a new enterprise-grade Mistral Small, and free vision capabilities on le Chat.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/september-24-release</guid>\n      <category>Product</category>\n      <pubDate>Tue, 17 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build, tweak, repeat</title>\n      <link>https://mistral.ai/news/build-tweak-repeat</link>\n      <description>Making it easier to develop and share generative AI applications.</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/build-tweak-repeat</guid>\n      <category>Research</category>\n      <pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Large Enough</title>\n      <link>https://mistral.ai/news/mistral-large-2407</link>\n      <description>Today, we are announcing Mistral Large 2, the new generation of our flagship model. Compared to its predecessor, Mistral Large 2 is significantly more capable in code generation, mathematics, and reasoning. It also provides a much stronger multilingual support, and advanced function calling capabili</description>\n      <guid isPermaLink=\"false\">https://mistral.ai/news/mistral-large-2407</guid>\n      <category>Research</category>\n      <pubDate>Wed, 24 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_ollama.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Ollama Blog</title>\n    <link>https://ollama.com/blog</link>\n    <description>Latest updates from Ollama</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_ollama.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://ollama.com/public/icon-64x64.png</url>\n      <title>Ollama Blog</title>\n      <link>https://ollama.com/blog</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:50:35 +0000</lastBuildDate>\n    <item>\n      <title>Run Llama 2 uncensored locally</title>\n      <link>https://ollama.com/blog/run-llama2-uncensored-locally</link>\n      <description>This post will give some example comparisons running Llama 2 uncensored model versus its censored model.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/run-llama2-uncensored-locally</guid>\n      <pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Run Code Llama locally</title>\n      <link>https://ollama.com/blog/run-code-llama-locally</link>\n      <description>Meta's Code Llama is now available on Ollama to try.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/run-code-llama-locally</guid>\n      <pubDate>Thu, 24 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to prompt Code Llama</title>\n      <link>https://ollama.com/blog/how-to-prompt-code-llama</link>\n      <description>This guide walks through the different ways to structure prompts for Code Llama and its different variations and features including instructions, code completion and fill-in-the-middle (FIM).</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/how-to-prompt-code-llama</guid>\n      <pubDate>Sat, 09 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Leveraging LLMs in your Obsidian Notes</title>\n      <link>https://ollama.com/blog/llms-in-obsidian</link>\n      <description>This post walks through how you could incorporate a local LLM using Ollama in Obsidian, or potentially any note taking tool.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/llms-in-obsidian</guid>\n      <pubDate>Thu, 21 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ollama is now available as an official Docker image</title>\n      <link>https://ollama.com/blog/ollama-is-now-available-as-an-official-docker-image</link>\n      <description>Ollama can now run with Docker Desktop on the Mac, and run inside Docker containers with GPU acceleration on Linux.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/ollama-is-now-available-as-an-official-docker-image</guid>\n      <pubDate>Thu, 05 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building LLM-Powered Web Apps with Client-Side Technology</title>\n      <link>https://ollama.com/blog/building-llm-powered-web-apps</link>\n      <description>Recreate one of the most popular LangChain use-cases with open source, locally running software - a chain that performs Retrieval-Augmented Generation, or RAG for short, and allows you to “chat with your documents”</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/building-llm-powered-web-apps</guid>\n      <pubDate>Fri, 13 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Python &amp; JavaScript Libraries</title>\n      <link>https://ollama.com/blog/python-javascript-libraries</link>\n      <description>The initial versions of the Ollama Python and JavaScript libraries are now available, making it easy to integrate your Python or JavaScript, or Typescript app with Ollama in a few lines of code. Both libraries include all the features of the Ollama REST API, are familiar in design, and compatible with new and previous versions of Ollama.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/python-javascript-libraries</guid>\n      <pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Vision models</title>\n      <link>https://ollama.com/blog/vision-models</link>\n      <description>New vision models are now available: LLaVA 1.6, in 7B, 13B and 34B parameter sizes. These models support higher resolution images, improved text recognition and logical reasoning.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/vision-models</guid>\n      <pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI compatibility</title>\n      <link>https://ollama.com/blog/openai-compatibility</link>\n      <description>Ollama now has initial compatibility with the OpenAI Chat Completions API, making it possible to use existing tooling built for OpenAI with local models via Ollama.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/openai-compatibility</guid>\n      <pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windows preview</title>\n      <link>https://ollama.com/blog/windows-preview</link>\n      <description>Ollama is now available on Windows in preview, making it possible to pull, run and create large language models in a new native Windows experience. Ollama on Windows includes built-in GPU acceleration, access to the full model library, and serves the Ollama API including OpenAI compatibility.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/windows-preview</guid>\n      <pubDate>Thu, 15 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ollama now supports AMD graphics cards</title>\n      <link>https://ollama.com/blog/amd-preview</link>\n      <description>Ollama now supports AMD graphics cards in preview on Windows and Linux. All the features of Ollama can now be accelerated by AMD graphics cards on Ollama for Linux and Windows.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/amd-preview</guid>\n      <pubDate>Thu, 14 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Embedding models</title>\n      <link>https://ollama.com/blog/embedding-models</link>\n      <description>Embedding models are available in Ollama, making it easy to generate vector embeddings for use in search and retrieval augmented generation (RAG) applications.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/embedding-models</guid>\n      <pubDate>Mon, 08 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama 3</title>\n      <link>https://ollama.com/blog/llama3</link>\n      <description>Llama 3 is now available to run on Ollama. This model is the next generation of Meta's state-of-the-art large language model, and is the most capable openly available LLM to date.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/llama3</guid>\n      <pubDate>Thu, 18 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama 3 is not very censored</title>\n      <link>https://ollama.com/blog/llama-3-is-not-very-censored</link>\n      <description>Compared to Llama 2, Llama 3 feels much less censored. Meta has substantially lowered false refusal rates. Llama 3 will refuse less than 1/3 of the prompts previously refused by Llama 2.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/llama-3-is-not-very-censored</guid>\n      <pubDate>Fri, 19 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google announces Firebase Genkit with Ollama support</title>\n      <link>https://ollama.com/blog/firebase-genkit</link>\n      <description>At Google IO 2024, Google announced Ollama support in Firebase Genkit, a new open-source framework for developers to build, deploy and monitor production-ready AI-powered apps.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/firebase-genkit</guid>\n      <pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An entirely open-source AI code assistant inside your editor</title>\n      <link>https://ollama.com/blog/continue-code-assistant</link>\n      <description>Continue enables you to easily create your own coding assistant directly inside Visual Studio Code and JetBrains with open-source LLMs.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/continue-code-assistant</guid>\n      <pubDate>Fri, 31 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google Gemma 2</title>\n      <link>https://ollama.com/blog/gemma2</link>\n      <description>Gemma 2 is now available on Ollama in 3 sizes - 2B, 9B and 27B.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/gemma2</guid>\n      <pubDate>Thu, 27 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tool support</title>\n      <link>https://ollama.com/blog/tool-support</link>\n      <description>Ollama now supports tool calling with popular models such as Llama 3.1. This enables a model to answer a given prompt using tool(s) it knows about, making it possible for models to perform more complex tasks or interact with the outside world.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/tool-support</guid>\n      <pubDate>Thu, 25 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reduce hallucinations with Bespoke-Minicheck</title>\n      <link>https://ollama.com/blog/reduce-hallucinations-with-bespoke-minicheck</link>\n      <description>Bespoke-Minicheck is a new grounded factuality checking model developed by Bespoke Labs that is now available in Ollama. It can fact-check responses generated by other models to detect and reduce hallucinations.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/reduce-hallucinations-with-bespoke-minicheck</guid>\n      <pubDate>Wed, 18 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama 3.2 goes small and multimodal</title>\n      <link>https://ollama.com/blog/llama3.2</link>\n      <description>Ollama partners with Meta to bring Llama 3.2 to Ollama.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/llama3.2</guid>\n      <pubDate>Wed, 25 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>IBM Granite 3.0 models</title>\n      <link>https://ollama.com/blog/ibm-granite</link>\n      <description>Ollama partners with IBM to bring Granite 3.0 models to Ollama.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/ibm-granite</guid>\n      <pubDate>Mon, 21 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama 3.2 Vision</title>\n      <link>https://ollama.com/blog/llama3.2-vision</link>\n      <description>Llama 3.2 Vision 11B and 90B models are now available in Ollama.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/llama3.2-vision</guid>\n      <pubDate>Wed, 06 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ollama Python library 0.4 with function calling improvements</title>\n      <link>https://ollama.com/blog/functions-as-tools</link>\n      <description>With Ollama Python library version 0.4, functions can now be provided as tools. The library now also has full typing support and new examples have been added.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/functions-as-tools</guid>\n      <pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Structured outputs</title>\n      <link>https://ollama.com/blog/structured-outputs</link>\n      <description>Ollama now supports structured outputs making it possible to constrain a model's output to a specific format defined by a JSON schema. The Ollama Python and JavaScript libraries have been updated to support structured outputs.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/structured-outputs</guid>\n      <pubDate>Fri, 06 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Minions: where local and cloud LLMs meet</title>\n      <link>https://ollama.com/blog/minions</link>\n      <description>Avanika Narayan, Dan Biderman, and Sabri Eyuboglu from Christopher Ré's Stanford Hazy Research lab, along with Avner May, Scott Linderman, James Zou, have developed a way to shift a substantial portion of LLM workloads to consumer devices by having small on-device models (such as Llama 3.2 with Ollama) collaborate with larger models in the cloud (such as GPT-4o).</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/minions</guid>\n      <pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ollama's new engine for multimodal models</title>\n      <link>https://ollama.com/blog/multimodal-models</link>\n      <description>Ollama now supports new multimodal models with its new engine.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/multimodal-models</guid>\n      <pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Streaming responses with tool calling</title>\n      <link>https://ollama.com/blog/streaming-tool</link>\n      <description>Ollama now supports streaming responses with tool calling. This enables all chat applications to stream content and also call tools in real time.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/streaming-tool</guid>\n      <pubDate>Wed, 28 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Thinking</title>\n      <link>https://ollama.com/blog/thinking</link>\n      <description>Ollama now has the ability to enable or disable thinking. This gives users the flexibility to choose the model’s thinking behavior for different applications and use cases.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/thinking</guid>\n      <pubDate>Fri, 30 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Secure Minions: private collaboration between Ollama and frontier models</title>\n      <link>https://ollama.com/blog/secureminions</link>\n      <description>Secure Minions is a secure protocol built by Stanford's Hazy Research lab to allow encrypted local-remote communication.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/secureminions</guid>\n      <pubDate>Tue, 03 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ollama's new app</title>\n      <link>https://ollama.com/blog/new-app</link>\n      <description>Ollama's new app is now available for macOS and Windows.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/new-app</guid>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI gpt-oss</title>\n      <link>https://ollama.com/blog/gpt-oss</link>\n      <description>Ollama partners with OpenAI to bring gpt-oss to Ollama and its community.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/gpt-oss</guid>\n      <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cloud models</title>\n      <link>https://ollama.com/blog/cloud-models</link>\n      <description>Cloud models are now in preview, letting you run larger models with fast, datacenter-grade hardware. You can keep using your local tools while running larger models that wouldn’t fit on a personal computer.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/cloud-models</guid>\n      <pubDate>Fri, 19 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New model scheduling</title>\n      <link>https://ollama.com/blog/new-model-scheduling</link>\n      <description>Ollama now includes a significantly improved model scheduling system, reducing crashes due to out of memory issues, maximizing GPU utilization and performance, especially on multi-GPU systems.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/new-model-scheduling</guid>\n      <pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Web search</title>\n      <link>https://ollama.com/blog/web-search</link>\n      <description>A new web search API is now available in Ollama. Ollama provides a generous free tier of web searches for individuals to use, and higher rate limits are available via Ollama’s cloud.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/web-search</guid>\n      <pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>NVIDIA DGX Spark</title>\n      <link>https://ollama.com/blog/nvidia-spark</link>\n      <description>The latest NVIDIA DGX Spark is here! Ollama has partnered with NVIDIA to ensure it runs fast and efficiently out-of-the-box.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/nvidia-spark</guid>\n      <pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Qwen3-VL</title>\n      <link>https://ollama.com/blog/qwen3-vl</link>\n      <description>Ollama now supports Alibaba's Qwen3-VL.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/qwen3-vl</guid>\n      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New coding models &amp; integrations</title>\n      <link>https://ollama.com/blog/coding-models</link>\n      <description>GLM-4.6 and Qwen3-coder-480B are available on Ollama’s cloud service with easy integrations to the tools you are familiar with. Qwen3-Coder-30B has been updated for faster, more reliable tool calling in Ollama’s new engine.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/coding-models</guid>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>NVIDIA DGX Spark performance</title>\n      <link>https://ollama.com/blog/nvidia-spark-performance</link>\n      <description>We ran performance tests on release day firmware and an updated Ollama version to see how Ollama performs.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/nvidia-spark-performance</guid>\n      <pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>MiniMax M2</title>\n      <link>https://ollama.com/blog/minimax-m2</link>\n      <description>MiniMax M2 is now available on Ollama's cloud. It's a model built for coding and agentic workflows.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/minimax-m2</guid>\n      <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI gpt-oss-safeguard</title>\n      <link>https://ollama.com/blog/gpt-oss-safeguard</link>\n      <description>Ollama is partnering with OpenAI and ROOST (Robust Open Online Safety Tools) to bring the latest gpt-oss-safeguard reasoning models to users for safety classification tasks. gpt-oss-safeguard models are available in two sizes: 20B and 120B, and are permissively licensed under the Apache 2.0 license.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/gpt-oss-safeguard</guid>\n      <pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI Codex with Ollama</title>\n      <link>https://ollama.com/blog/codex</link>\n      <description>Open models can be used with OpenAI's Codex CLI through Ollama. Codex can read, modify, and execute code in your working directory using models such as gpt-oss:20b, gpt-oss:120b, or other open-weight alternatives.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/codex</guid>\n      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code with Anthropic API compatibility</title>\n      <link>https://ollama.com/blog/claude</link>\n      <description>Ollama is now compatible with the Anthropic Messages API, making it possible to use tools like Claude Code with open models.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/claude</guid>\n      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Image generation (experimental)</title>\n      <link>https://ollama.com/blog/image-generation</link>\n      <description>Generate images locally with Ollama on macOS. Windows and Linux support coming soon.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/image-generation</guid>\n      <pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ollama launch</title>\n      <link>https://ollama.com/blog/launch</link>\n      <description>ollama launch is a new command which sets up and runs coding tools like Claude Code, OpenCode, and Codex with local or cloud models. No environment variables or config files needed.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/launch</guid>\n      <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenClaw</title>\n      <link>https://ollama.com/blog/openclaw</link>\n      <description>OpenClaw is a personal AI assistant that connects your messaging apps to local AI coding agents, all running on your own device.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/openclaw</guid>\n      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Subagents and web search in Claude Code</title>\n      <link>https://ollama.com/blog/web-search-subagents-claude-code</link>\n      <description>Ollama now supports subagents and web search in Claude Code.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/web-search-subagents-claude-code</guid>\n      <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The simplest and fastest way to setup OpenClaw</title>\n      <link>https://ollama.com/blog/openclaw-tutorial</link>\n      <description>Setup OpenClaw in under two minutes with a single Ollama command.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/openclaw-tutorial</guid>\n      <pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ollama is now powered by MLX on Apple Silicon in preview</title>\n      <link>https://ollama.com/blog/mlx</link>\n      <description>Today, we're previewing the fastest way to run Ollama on Apple silicon, powered by MLX, Apple's machine learning framework.</description>\n      <guid isPermaLink=\"false\">https://ollama.com/blog/mlx</guid>\n      <pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_openai_research.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>OpenAI Research News</title>\n    <link>https://openai.com/news/research</link>\n    <description>Latest research news and updates from OpenAI</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_openai_research.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Sat, 18 Apr 2026 13:51:52 +0000</lastBuildDate>\n    <item><title>[NOTICE] This feed is no longer maintained</title><description>OpenAI publishes an official RSS feed. This scraper is retired; the feed XML will be deleted in ~90 days.\n\nRecommended alternative: https://openai.com/blog/rss.xml</description><guid isPermaLink=\"false\">deprecation-notice-openai_research</guid><pubDate>Sat, 18 Apr 2026 14:24:42 +0000</pubDate><link>https://openai.com/blog/rss.xml</link></item><item>\n      <title>Introducing GPT-Rosalind for life sciences research</title>\n      <link>https://openai.com/index/introducing-gpt-rosalind/</link>\n      <description>Introducing GPT-Rosalind for life sciences research</description>\n      <category>Research</category>\n      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inside our approach to the Model Spec</title>\n      <link>https://openai.com/index/our-approach-to-the-model-spec/</link>\n      <description>Inside our approach to the Model Spec</description>\n      <category>Research</category>\n      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How we monitor internal coding agents for misalignment</title>\n      <link>https://openai.com/index/how-we-monitor-internal-coding-agents-misalignment/</link>\n      <description>How we monitor internal coding agents for misalignment</description>\n      <category>Safety</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Improving instruction hierarchy in frontier LLMs</title>\n      <link>https://openai.com/index/instruction-hierarchy-challenge/</link>\n      <description>Improving instruction hierarchy in frontier LLMs</description>\n      <category>Research</category>\n      <pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing GPT-5.4</title>\n      <link>https://openai.com/index/introducing-gpt-5-4/</link>\n      <description>Introducing GPT-5.4</description>\n      <category>Product</category>\n      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5.4 Thinking System Card</title>\n      <link>https://openai.com/index/gpt-5-4-thinking-system-card/</link>\n      <description>GPT-5.4 Thinking System Card</description>\n      <category>Publication</category>\n      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reasoning models struggle to control their chains of thought, and that’s good</title>\n      <link>https://openai.com/index/reasoning-models-chain-of-thought-controllability/</link>\n      <description>Reasoning models struggle to control their chains of thought, and that’s good</description>\n      <category>Research</category>\n      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Extending single-minus amplitudes to gravitons</title>\n      <link>https://openai.com/index/extending-single-minus-amplitudes-to-gravitons/</link>\n      <description>Extending single-minus amplitudes to gravitons</description>\n      <category>Research</category>\n      <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5.3 Instant System Card</title>\n      <link>https://openai.com/index/gpt-5-3-instant-system-card/</link>\n      <description>GPT-5.3 Instant System Card</description>\n      <category>Publication</category>\n      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_paulgraham.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Paul Graham Essays</title>\n    <link>https://paulgraham.com/articles.html</link>\n    <description>Paul Graham's Essays and Writings</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_paulgraham.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:51:10 +0000</lastBuildDate>\n    <item>\n      <title>This Year We Can End the Death Penalty in California</title>\n      <link>https://paulgraham.com/prop62.html</link>\n      <description>If you're a California voter, there is an important proposition\non your ballot this year: Proposition 62, which bans the death\npenalty.When I was younger I used to think the debate about the death\npenalty was about when it's ok to take a human life.  Is it ok\nto kill a killer?But that is not the issue here.The real world does not work like the version I was shown on TV growing up.  The police \noften arrest the wrong person.\nDefendants' lawyers are often incompetent.  And prosecutors\nare often mo...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/prop62.html</guid>\n      <pubDate>Tue, 01 Nov 2016 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Lisp for Web-Based Applications</title>\n      <link>https://paulgraham.com/lwba.html</link>\n      <description>After a link to \nBeating the Averages was posted on slashdot, \nsome readers wanted to hear in more detail \nabout the specific technical advantages we got from using\nLisp in Viaweb.  For those who are interested,\nhere are some excerpts from a talk I gave in April 2001 at\nBBN Labs in Cambridge, MA.</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/lwba.html</guid>\n      <pubDate>Sun, 01 Apr 2001 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Beating the Averages</title>\n      <link>https://paulgraham.com/avg.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nApril 2001, rev. April 2003(This article is derived from a talk given at the 2001 Franz\nDeveloper Symposium.)\nIn the summer of 1995, my friend Robert Morris and I\nstarted a startup called \nViaweb.  \nOur plan was to write\nsoftware that would let end users build online stores.\nWhat was novel about this software, at the time, was\nthat it ran on our server, using ordinary Web pages\nas the interface.A lot of people could have been having this ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/avg.html</guid>\n      <pubDate>Wed, 01 Jan 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Java's Cover</title>\n      <link>https://paulgraham.com/javacover.html</link>\n      <description>This essay developed out of conversations I've had with\nseveral other programmers about why Java smelled suspicious.  It's not\na critique of Java!  It is a case study of hacker's radar.Over time, hackers develop a nose for good (and bad) technology.\nI thought it might be interesting to try and write down what\nmade Java seem suspect to me.Some people who've read this think it's an interesting attempt to write about\nsomething that hasn't been written about before.  Others say I\nwill get in trouble...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/javacover.html</guid>\n      <pubDate>Sun, 01 Apr 2001 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Being Popular</title>\n      <link>https://paulgraham.com/popular.html</link>\n      <description>(This article was written as a kind of business plan for a\nnew language.\nSo it is missing (because it takes for granted) the most important\nfeature of a good programming language: very powerful abstractions.)A friend of mine once told an eminent operating systems\nexpert that he wanted to design a really good\nprogramming language.  The expert told him that it would be a\nwaste of time, that programming languages don't become popular\nor unpopular based on their merits, and so no matter how\ngood his...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/popular.html</guid>\n      <pubDate>Tue, 01 May 2001 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Five Questions about Language Design</title>\n      <link>https://paulgraham.com/langdes.html</link>\n      <description>(These are some notes I made\nfor a panel discussion on programming language design\nat MIT on May 10, 2001.)1. Programming Languages Are for People.Programming languages\nare how people talk to computers.  The computer would be just as\nhappy speaking any language that was unambiguous.  The reason we\nhave high level languages is because people can't deal with\nmachine language.  The point of programming\nlanguages is to prevent our poor frail human brains from being \noverwhelmed by a mass of detail.A...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/langdes.html</guid>\n      <pubDate>Tue, 01 May 2001 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Roots of Lisp</title>\n      <link>https://paulgraham.com/rootsoflisp.html</link>\n      <description>(I wrote this article to help myself understand exactly\nwhat McCarthy discovered.  You don't need to know this stuff\nto program in Lisp, but it should be helpful to \nanyone who wants to\nunderstand the essence of Lisp  both in the sense of its\norigins and its semantic core.  The fact that it has such a core\nis one of Lisp's distinguishing features, and the reason why,\nunlike other languages, Lisp has dialects.)In 1960, John \nMcCarthy published a remarkable paper in\nwhich he did for programming s...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/rootsoflisp.html</guid>\n      <pubDate>Tue, 01 May 2001 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Other Road Ahead</title>\n      <link>https://paulgraham.com/road.html</link>\n      <description>(This article explains why much of the next generation of software\nmay be server-based, what that will mean for programmers,\nand why this new kind of software is a great opportunity for startups.\nIt's derived from a talk at BBN Labs.)\nIn the summer of 1995, my friend Robert Morris and I decided to\nstart a startup.  The PR campaign leading up to Netscape's IPO was\nrunning full blast then, and there was a lot of talk in the press\nabout online commerce.  At the time there might have been thirty\nact...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/road.html</guid>\n      <pubDate>Sat, 01 Sep 2001 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Made Lisp Different</title>\n      <link>https://paulgraham.com/diff.html</link>\n      <description>(rev. May 2002)\n\n(This article came about in response to some questions on\nthe LL1 mailing list.  It is now\nincorporated in Revenge of the Nerds.)When McCarthy designed Lisp in the late 1950s, it was\na radical departure from existing languages,\nthe most important of which was Fortran.Lisp embodied nine new ideas:\n1. Conditionals.  A conditional is an if-then-else\nconstruct.  We take these for granted now.  They were \ninvented\nby McCarthy in the course of developing Lisp. \n(Fortran at that time o...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/diff.html</guid>\n      <pubDate>Wed, 01 May 2002 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Taste for Makers</title>\n      <link>https://paulgraham.com/taste.html</link>\n      <description>\"...Copernicus'\naesthetic objections to [equants] provided one essential\nmotive for his rejection of the Ptolemaic system....\"- Thomas Kuhn, The Copernican Revolution\"All of us had been trained by Kelly Johnson and believed\nfanatically in his insistence that an airplane that looked\nbeautiful would fly the same way.\"- Ben Rich, Skunk Works\"Beauty is the first test: there is no permanent place in this\nworld for ugly mathematics.\"- G. H. Hardy, A Mathematician's Apology\n\n\nI was talking recently to ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/taste.html</guid>\n      <pubDate>Fri, 01 Feb 2002 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Succinctness is Power</title>\n      <link>https://paulgraham.com/power.html</link>\n      <description>\"The quantity of meaning compressed into a small space by \nalgebraic signs, is another circumstance that facilitates \nthe reasonings we are accustomed to carry on by their aid.\"- Charles Babbage, quoted in Iverson's Turing Award Lecture\n\n\n\nIn the discussion about issues raised by Revenge \nof the Nerds on the LL1 mailing list, Paul Prescod wrote\nsomething that stuck in my mind.\n\nPython's goal is regularity and readability, not succinctness.\n\nOn the face of it, this seems a rather damning thing to...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/power.html</guid>\n      <pubDate>Wed, 01 May 2002 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Revenge of the Nerds</title>\n      <link>https://paulgraham.com/icad.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMay 2002\n\n\n\n\"We were after the C++ programmers. We managed to drag a \nlot of them about halfway to Lisp.\"- Guy Steele, co-author of the Java spec\n\n\n\n\nIn the software business there is an ongoing\nstruggle between the pointy-headed academics, and another\nequally formidable force, the pointy-haired bosses.  Everyone\nknows who the pointy-haired boss is, right?  I think most\npeople in the technology world not only recognize this\ncartoon charac...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/icad.html</guid>\n      <pubDate>Wed, 01 May 2002 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Plan for Spam</title>\n      <link>https://paulgraham.com/spam.html</link>\n      <description>Like to build things? Try Hacker\nNews.\n\n\n\n\nAugust 2002(This article describes the spam-filtering techniques\nused in the spamproof web-based mail reader we\nbuilt to exercise Arc. An\nimproved algorithm is described in Better\nBayesian Filtering.)I think it's possible to stop spam, and that \ncontent-based filters are the way to do it.\nThe Achilles heel of the spammers is their message.\nThey can circumvent any other barrier you set up.  They have so far, at\nleast.  But they have to deliver their mess...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/spam.html</guid>\n      <pubDate>Thu, 01 Aug 2002 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Design and Research</title>\n      <link>https://paulgraham.com/desres.html</link>\n      <description>(This article is derived from a keynote talk at the fall 2002 meeting\nof NEPLS.)Visitors to this country are often surprised to find that\nAmericans like to begin a conversation by asking \"what do you do?\"\nI've never liked this question.  I've rarely had a\nneat answer to it.  But I think I have finally solved the problem.\nNow, when someone asks me what I do, I look them straight\nin the eye and say \"I'm designing a \nnew dialect of Lisp.\"   \nI recommend this answer to anyone who doesn't like being ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/desres.html</guid>\n      <pubDate>Wed, 01 Jan 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Better Bayesian Filtering</title>\n      <link>https://paulgraham.com/better.html</link>\n      <description>(This article was given as a talk at the 2003 Spam Conference.\nIt describes the work I've done to improve the performance of\nthe algorithm described in A Plan for Spam,\nand what I plan to do in the future.)The first discovery I'd like to present here is an algorithm for\nlazy evaluation of research papers.  Just\nwrite whatever you want and don't cite any previous work, and\nindignant readers will send you references to all the papers you\nshould have cited.   I discovered this algorithm\nafter ``A P...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/better.html</guid>\n      <pubDate>Wed, 01 Jan 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Nerds are Unpopular</title>\n      <link>https://paulgraham.com/nerds.html</link>\n      <description>When we were in junior high school, my friend Rich and I made a map\nof the school lunch tables according to popularity. This was easy\nto do, because kids only ate lunch with others of about the same\npopularity. We graded them from A to E. A tables were full of\nfootball players and cheerleaders and so on. E tables contained the\nkids with mild cases of Down's Syndrome, what in the language of\nthe time we called \"retards.\"We sat at a D table, as low as you could get without looking\nphysically diffe...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/nerds.html</guid>\n      <pubDate>Sat, 01 Feb 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Hundred-Year Language</title>\n      <link>https://paulgraham.com/hundred.html</link>\n      <description>(This essay is derived from a keynote talk at PyCon 2003.)It's hard to predict what\nlife will be like in a hundred years.  There are only a few\nthings we can say with certainty.  We know that everyone will\ndrive flying cars,\nthat zoning laws will be relaxed to allow buildings\nhundreds of stories tall, that it will be dark most of the\ntime, and that women will all be trained in the martial arts.  \nHere I want to zoom in on one detail of this\npicture.  What kind of programming language will they u...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hundred.html</guid>\n      <pubDate>Tue, 01 Apr 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>If Lisp is So Great</title>\n      <link>https://paulgraham.com/iflisp.html</link>\n      <description>If Lisp is so great, why don't more people use it?  I was    \nasked this question by a student in the audience at a \ntalk I gave recently.  Not for the first time, either.In languages, as in so many things, there's not much     \ncorrelation between popularity and quality.  Why does   \nJohn Grisham (King of Torts sales rank, 44) outsell\nJane Austen (Pride and Prejudice sales rank, 6191)?\nWould even Grisham claim that it's because he's a better\nwriter?Here's the first sentence of Pride and Prejudi...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/iflisp.html</guid>\n      <pubDate>Thu, 01 May 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hackers and Painters</title>\n      <link>https://paulgraham.com/hp.html</link>\n      <description>(This essay is derived from a guest lecture at Harvard, which incorporated\nan earlier talk at Northeastern.)When I finished grad school in computer science I went\nto art school to study painting.  A lot of people seemed surprised\nthat someone interested in computers would also be interested in painting.\nThey seemed to think that\nhacking and painting were very different kinds of work-- that\nhacking was cold, precise, and methodical, and that\npainting was the frenzied expression of some primal urg...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hp.html</guid>\n      <pubDate>Thu, 01 May 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Filters that Fight Back</title>\n      <link>https://paulgraham.com/ffb.html</link>\n      <description>We may be able to improve the accuracy of Bayesian spam filters\nby having them follow links to see what's\nwaiting at the other end.  Richard Jowsey of\ndeath2spam now does\nthis in borderline cases, and reports that it works well.Why only do it in borderline cases?  And why only do it once?As I mentioned in Will Filters Kill Spam?,\nfollowing all the urls in\na spam would have an amusing side-effect.  If popular email clients\ndid this in order to filter spam, the spammer's servers\nwould take a serio...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ffb.html</guid>\n      <pubDate>Fri, 01 Aug 2003 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What You Can't Say</title>\n      <link>https://paulgraham.com/say.html</link>\n      <description>Have you ever seen an old photo of yourself and\nbeen embarrassed at the way you looked?   Did we actually\ndress like that?  We did.  And we had no idea how\nsilly we looked.\nIt's the nature of fashion to be invisible, in the\nsame way the movement of the earth is invisible to all\nof us riding on it.What scares me is that there are moral fashions too.\nThey're just as arbitrary, and just as invisible to most people.\nBut they're much more dangerous.\nFashion is mistaken for good design; \nmoral fashion...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/say.html</guid>\n      <pubDate>Thu, 01 Jan 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Word \"Hacker\"</title>\n      <link>https://paulgraham.com/gba.html</link>\n      <description>To the popular press, \"hacker\" means someone who breaks\ninto computers.  Among programmers it means a good programmer.\nBut the two meanings are connected.  To programmers,\n\"hacker\" connotes mastery in the most literal sense: someone\nwho can make a computer do what he wants—whether the computer\nwants to or not.To add to the confusion, the noun \"hack\" also has two senses.  It can\nbe either a compliment or an insult.  It's called a hack when\nyou do something in an ugly way.  But when you do somethi...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/gba.html</guid>\n      <pubDate>Thu, 01 Apr 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Make Wealth</title>\n      <link>https://paulgraham.com/wealth.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMay 2004\n(This essay was originally published in Hackers \n&amp; Painters.)\nIf you wanted to get rich, how would you do it? I think your best\nbet would be to start or join a startup.  That's been a \nreliable way to get rich for hundreds of years.  The word \"startup\" \ndates from the 1960s, but what happens in one is \nvery similar to the venture-backed trading voyages of the\nMiddle Ages.Startups usually involve technology, so much so that the ph...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/wealth.html</guid>\n      <pubDate>Sat, 01 May 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mind the Gap</title>\n      <link>https://paulgraham.com/gap.html</link>\n      <description>When people care enough about something to do it well, those who\ndo it best tend to be far better than everyone else.  There's a\nhuge gap between Leonardo and second-rate contemporaries like\nBorgognone.  You see the same gap between Raymond Chandler and the\naverage writer of detective novels.  A top-ranked professional chess\nplayer could play ten thousand games against an ordinary club player\nwithout losing once.Like chess or painting or writing novels, making money is a very\nspecialized skill. ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/gap.html</guid>\n      <pubDate>Sat, 01 May 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Great Hackers</title>\n      <link>https://paulgraham.com/gh.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJuly 2004(This essay is derived from a talk at Oscon 2004.)\nA few months ago I finished a new \nbook, \nand in reviews I keep\nnoticing words like \"provocative'' and \"controversial.'' To say\nnothing of \"idiotic.''I didn't mean to make the book controversial.  I was trying to make\nit efficient.  I didn't want to waste people's time telling them\nthings they already knew.  It's more efficient just to give them\nthe diffs.  But I suppose that's b...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/gh.html</guid>\n      <pubDate>Thu, 01 Jul 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Python Paradox</title>\n      <link>https://paulgraham.com/pypar.html</link>\n      <description>In a recent talk I said something that upset a lot of\npeople: that you could get smarter programmers to work on\na Python project than you could to work on a Java project.I didn't mean by this that Java programmers are dumb.  I\nmeant that Python programmers are smart. It's a lot of\nwork to learn a new programming language.  And people don't\nlearn Python because it will get them a job; they learn it\nbecause they genuinely like to program and aren't satisfied with the languages they\nalready know.Wh...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/pypar.html</guid>\n      <pubDate>Sun, 01 Aug 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Age of the Essay</title>\n      <link>https://paulgraham.com/essay.html</link>\n      <description>Remember the essays you had to write in high school?\nTopic sentence, introductory paragraph,\nsupporting paragraphs, conclusion.  The conclusion being,\nsay, that Ahab in Moby Dick was a Christ-like figure.Oy.  So I'm going to try to give the other side of the\nstory: what an essay really is, and how you write one.\nOr at least, how I write one.ModsThe most obvious difference between real essays and\nthe things one has to write in school is that real\nessays are not exclusively about English literatur...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/essay.html</guid>\n      <pubDate>Wed, 01 Sep 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What the Bubble Got Right</title>\n      <link>https://paulgraham.com/bubble.html</link>\n      <description>(This essay is derived from an invited talk at ICFP 2004.)I had a front row seat for the Internet Bubble,\nbecause I worked at Yahoo during 1998 and 1999.  One day,\nwhen the stock was trading around $200, I sat down and calculated\nwhat I thought the price should be. The \nanswer I got was $12.  I went to\nthe next cubicle and told my friend Trevor.  \"Twelve!\" he said.\nHe tried to sound indignant, but he didn't quite manage it.  He\nknew as well as I did that our valuation was crazy.Yahoo was a speci...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/bubble.html</guid>\n      <pubDate>Sat, 01 Jan 2000 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Version 1.0</title>\n      <link>https://paulgraham.com/laundry.html</link>\n      <description>As E. B. White said, \"good writing is rewriting.\"  I didn't\nrealize this when I was in school.  In writing, as in math and \nscience, they only show you the finished product.\nYou don't see all the false starts.  This gives students a\nmisleading view of how things get made.Part of the reason it happens is that writers don't want   \npeople to see their mistakes.  But I'm willing to let people\nsee an early draft if it will show how much you have\nto rewrite to beat an essay into shape.Below is the ol...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/laundry.html</guid>\n      <pubDate>Fri, 01 Oct 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bradley's Ghost</title>\n      <link>https://paulgraham.com/polls.html</link>\n      <description>A lot of people are writing now about \nwhy Kerry lost.  Here I want to\nexamine a more specific question: why were the exit polls so \nwrong?In Ohio, which Kerry ultimately\nlost 49-51, exit polls gave him a 52-48 victory.  And this wasn't just\nrandom error.  In every swing state they overestimated the Kerry vote.\nIn Florida, which Bush ultimately won 52-47, exit polls predicted\na dead heat.(These are not early numbers. They're from about midnight eastern time, \nlong after polls closed in Ohio and ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/polls.html</guid>\n      <pubDate>Mon, 01 Nov 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>It's Charisma, Stupid</title>\n      <link>https://paulgraham.com/charisma.html</link>\n      <description>, corrected June 2006Occam's razor says we should prefer the simpler of two explanations.\nI begin by reminding readers of this principle because I'm about\nto propose a theory that will offend both liberals and conservatives.\nBut Occam's razor means, in effect, that if you want to disagree\nwith it, you have a hell of a coincidence to explain.Theory: In US presidential elections, the more \ncharismatic candidate wins.People who write about politics, whether on the left or the right,\nhave a consiste...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/charisma.html</guid>\n      <pubDate>Thu, 01 Jun 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Made in USA</title>\n      <link>https://paulgraham.com/usa.html</link>\n      <description>(This is a new essay for the Japanese edition of \nHackers \n&amp; Painters.\nIt tries to explain why Americans make some things well \nand others badly.)A few years ago an Italian friend of mine travelled by train from\nBoston to Providence.  She had only been in America for a\ncouple weeks and hadn't seen much of the country yet.  She arrived\nlooking astonished.  \"It's so ugly!\"People from other rich countries can scarcely imagine\nthe squalor of the man-made bits of America.  In travel books\nthey show y...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/usa.html</guid>\n      <pubDate>Mon, 01 Nov 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What You'll Wish You'd Known</title>\n      <link>https://paulgraham.com/hs.html</link>\n      <description>(I wrote this talk for a\nhigh school.  I never actually \ngave it, because the school authorities vetoed the plan to invite me.)When I said I was speaking at a high school, my friends were curious.\nWhat will you say to high school students?  So I asked them, what\ndo you wish someone had told you in high school?  Their answers\nwere remarkably similar.  So I'm going to tell you what we all wish\nsomeone had told us.I'll start by telling you something you don't have to know in high\nschool: what you w...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hs.html</guid>\n      <pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Start a Startup</title>\n      <link>https://paulgraham.com/start.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMarch 2005(This essay is derived from a talk at the Harvard Computer\nSociety.)You need three things to create a successful startup: to start with\ngood people, to make something customers actually want, and to spend\nas little money as possible.  Most startups that fail do it because\nthey fail at one of these.  A startup that does all three will\nprobably succeed.And that's kind of exciting, when you think about it, because all\nthree are doa...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/start.html</guid>\n      <pubDate>Tue, 01 Mar 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Unified Theory of VC Suckage</title>\n      <link>https://paulgraham.com/venturecapital.html</link>\n      <description>A couple months ago I got an email from a recruiter asking if I was\ninterested in being a \"technologist in residence\" at a new venture\ncapital fund.  I think the idea was to play Karl Rove to the VCs'\nGeorge Bush.I considered it for about four seconds.  Work for a VC fund?  Ick.One of my most vivid memories from our startup is going to visit\nGreylock, the famous Boston VCs. They were the most arrogant\npeople I've met in my life.  And I've met a lot of arrogant people.\n[1]I'm not alone in feeling...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/venturecapital.html</guid>\n      <pubDate>Tue, 01 Mar 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Undergraduation</title>\n      <link>https://paulgraham.com/college.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\n\nMarch 2005(Parts of this essay began as replies to students who wrote to\nme with questions.)Recently I've had several emails from computer science\nundergrads asking what to do in college. I might not\nbe the best source of advice, because I was a philosophy major in\ncollege.  But I took so many CS classes that most CS majors thought\nI was one.  I was certainly a hacker, at least.HackingWhat should you do in college to become a \ngood hacke...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/college.html</guid>\n      <pubDate>Tue, 01 Mar 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Writing,  Briefly</title>\n      <link>https://paulgraham.com/writing44.html</link>\n      <description>(In the process\nof answering an email, I accidentally wrote a tiny essay about writing.\nI usually spend weeks on an essay.  This one took  67 minutes—23\nof writing, and  44 of rewriting.)I think it's far more important to write well than most people\nrealize.  Writing doesn't just communicate ideas; it generates them.\nIf you're bad at writing and don't like to do it, you'll miss out\non most of the ideas writing would have generated.As for how to write well, here's the short version: \nWrite a bad ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/writing44.html</guid>\n      <pubDate>Tue, 01 Mar 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Return of the Mac</title>\n      <link>https://paulgraham.com/mac.html</link>\n      <description>All the best hackers \nI know are gradually switching to Macs.  My\nfriend Robert said his whole research group at MIT recently bought\nthemselves Powerbooks.  These guys are not the graphic designers\nand grandmas who were buying Macs at Apple's low point in the\nmid 1990s.  They're about as hardcore OS hackers as you can get.The reason, of course, is OS X.  Powerbooks are beautifully designed\nand run FreeBSD.  What more do you need to know?I got a Powerbook at the end of last year.   When my IBM Th...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/mac.html</guid>\n      <pubDate>Tue, 01 Mar 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Smart People Have Bad Ideas</title>\n      <link>https://paulgraham.com/bronze.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nApril 2005This summer, as an \nexperiment, some \nfriends and I are giving seed\nfunding to a bunch of new startups.  It's an experiment because\nwe're prepared to fund younger founders than most investors would.\nThat's why we're doing it during the summer—so even college\nstudents can participate.We know from Google and Yahoo that grad students can start successful\nstartups.  And we know from experience that some undergrads are as\ncapable as ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/bronze.html</guid>\n      <pubDate>Sun, 01 Jan 1995 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Submarine</title>\n      <link>https://paulgraham.com/submarine.html</link>\n      <description>\"Suits make a corporate comeback,\" says the New\nYork Times.  Why does this sound familiar?  Maybe because\nthe suit was also back in February,\n\nSeptember\n2004, June\n2004, March\n2004, September\n2003, \n\nNovember\n2002, \nApril 2002,\nand February\n2002.\n\nWhy do the media keep running stories saying suits are back?  Because\nPR firms tell \nthem to.  One of the most surprising things I discovered\nduring my brief business career was the existence of the PR industry,\nlurking like a huge, quiet submarine ben...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/submarine.html</guid>\n      <pubDate>Fri, 01 Feb 2002 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hiring is Obsolete</title>\n      <link>https://paulgraham.com/hiring.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMay 2005(This essay is derived from a talk at the Berkeley CSUA.)The three big powers on the Internet now are Yahoo, Google, and\nMicrosoft.  Average age of their founders: 24.  So it is pretty\nwell established now that grad students can start successful\ncompanies.  And if grad students can do it, why not undergrads?Like everything else in technology, the cost of starting a startup\nhas decreased dramatically.  Now it's so low that it has d...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hiring.html</guid>\n      <pubDate>Tue, 01 Feb 1994 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Business Can Learn from Open Source</title>\n      <link>https://paulgraham.com/opensource.html</link>\n      <description>(This essay is derived from a talk at Oscon 2005.)Lately companies have been paying more attention to open source.\nTen years ago there seemed a real danger Microsoft would extend its\nmonopoly to servers.  It seems safe to say now that open source has\nprevented that.  A recent survey found 52% of companies are replacing\nWindows servers with Linux servers.\n[1]More significant, I think, is which 52% they are.  At this point,\nanyone proposing to run Windows on servers should be prepared to\nexplain w...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/opensource.html</guid>\n      <pubDate>Mon, 01 Aug 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>After the Ladder</title>\n      <link>https://paulgraham.com/ladder.html</link>\n      <description>Thirty years ago, one was supposed to work one's way up the corporate\nladder.  That's less the rule now.  Our generation wants to get\npaid up front.  Instead of developing a product for some big company\nin the expectation of getting job security in return, we develop\nthe product ourselves, in a startup, and sell it to the big company.\nAt the very least we want options.Among other things, this shift has created the appearance of a rapid\nincrease in economic inequality.  But really the two cases a...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ladder.html</guid>\n      <pubDate>Mon, 01 Aug 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inequality and Risk</title>\n      <link>https://paulgraham.com/inequality.html</link>\n      <description>(This essay is derived from a talk at Defcon 2005.)Suppose you wanted to get rid of economic inequality.  There are\ntwo ways to do it: give money to the poor, or take it away from the \nrich.  But they amount to the same thing, because if you want to\ngive money to the poor, you have to get it from somewhere.  You\ncan't get it from the poor, or they just end up where they started.\nYou have to get it from the rich.There is of course a way to make the poor richer without simply\nshifting money from t...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/inequality.html</guid>\n      <pubDate>Mon, 01 Aug 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What I Did this Summer</title>\n      <link>https://paulgraham.com/sfp.html</link>\n      <description>The first Summer Founders Program has just finished.  We were\nsurprised how well it went.  Overall only about 10% of startups   \nsucceed, but if I had to guess now, I'd predict three or four of  \nthe eight startups we funded will make it.Of the startups that needed further funding, I believe all have\neither closed a round or are likely to soon.  Two have already\nturned down (lowball) acquisition offers.We would have been happy if just one of the eight seemed promising\nby the end of the summer.  ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/sfp.html</guid>\n      <pubDate>Sat, 01 Oct 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ideas for Startups</title>\n      <link>https://paulgraham.com/ideas.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2005(This essay is derived from a talk at the 2005 \nStartup School.)How do you get good ideas for \nstartups?  That's probably the number\none question people ask me.I'd like to reply with another question: why do people think it's\nhard to come up with ideas for startups?That might seem a stupid thing to ask.  Why do they think\nit's hard?  If people can't do it, then it is hard, at least\nfor them.  Right?Well, maybe not.  What peopl...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ideas.html</guid>\n      <pubDate>Sat, 01 Oct 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Venture Capital Squeeze</title>\n      <link>https://paulgraham.com/vcsqueeze.html</link>\n      <description>In the next few years, venture capital funds will find themselves\nsqueezed from four directions.  They're already stuck with a seller's\nmarket, because of the huge amounts they raised at the end of the\nBubble and still haven't invested.  This by itself is not the end\nof the world.  In fact, it's just a more extreme version of the\nnorm\nin the VC business: too much money chasing too few deals.Unfortunately, those few deals now want less and less money, because\nit's getting so cheap to start a star...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/vcsqueeze.html</guid>\n      <pubDate>Tue, 01 Nov 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Fund a Startup</title>\n      <link>https://paulgraham.com/startupfunding.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nNovember 2005\nVenture funding works like gears.  A typical startup goes through\nseveral rounds of funding, and at each round you want to take just\nenough money to reach the speed where you can shift into the next\ngear.Few startups get it quite right.  Many are underfunded.  A few are\noverfunded, which is like trying to start driving in third gear.I think it would help founders to understand funding better—not\njust the mechanics of it, but...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/startupfunding.html</guid>\n      <pubDate>Tue, 01 Nov 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Web 2.0</title>\n      <link>https://paulgraham.com/web20.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nNovember 2005Does \"Web 2.0\" mean anything?  Till recently I thought it didn't,\nbut the truth turns out to be more complicated.  Originally, yes,\nit was meaningless.  Now it seems to have acquired a meaning.  And\nyet those who dislike the term are probably right, because if it\nmeans what I think it does, we don't need it.I first heard the phrase \"Web 2.0\" in the name of the Web 2.0\nconference in 2004.  At the time it was supposed to mean u...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/web20.html</guid>\n      <pubDate>Tue, 01 Jun 2004 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Good and Bad Procrastination</title>\n      <link>https://paulgraham.com/procrastination.html</link>\n      <description>The most impressive people I know are all terrible procrastinators.\nSo could it be that procrastination isn't always bad?Most people who write about procrastination write about how to cure\nit.  But this is, strictly speaking, impossible.  There are an\ninfinite number of things you could be doing.  No matter what you\nwork on, you're not working on everything else.  So the question\nis not how to avoid procrastination, but how to procrastinate well.There are three variants of procrastination, depen...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/procrastination.html</guid>\n      <pubDate>Thu, 01 Dec 2005 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Do What You Love</title>\n      <link>https://paulgraham.com/love.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJanuary 2006To do something well you have to like it.   That idea is not exactly\nnovel.  We've got it down to four words: \"Do what you love.\"  But\nit's not enough just to tell people that.  Doing what you love is\ncomplicated.The very idea is foreign to what most of us learn as kids.  When I\nwas a kid, it seemed as if work and fun were opposites by definition.\nLife had two states: some of the time adults were making you do\nthings, and that...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/love.html</guid>\n      <pubDate>Sun, 01 Jan 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why YC</title>\n      <link>https://paulgraham.com/whyyc.html</link>\n      <description>, rev August 2009Yesterday one of the founders we funded asked me why we started \nY\nCombinator.  Or more precisely, he asked if we'd started YC mainly\nfor fun.Kind of, but not quite.  It is enormously fun to be able to work\nwith Rtm and Trevor again.  I missed that after we sold Viaweb, and\nfor all the years after I always had a background process running,\nlooking for something we could do together.  There is definitely\nan aspect of a band reunion to Y Combinator.  Every couple days I\nslip and c...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/whyyc.html</guid>\n      <pubDate>Wed, 01 Mar 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>6,631,372</title>\n      <link>https://paulgraham.com/6631327.html</link>\n      <description>, rev August 2009A couple days ago I found to my surprise that I'd been granted a\npatent.\nIt issued in 2003, but no one told me.  I wouldn't know about it\nnow except that a few months ago, while visiting Yahoo, I happened\nto run into a Big Cheese I knew from working there in the late\nnineties.  He brought up something called Revenue Loop, which Viaweb\nhad been working on when they bought us.The idea is basically that you sort search results not in order of\ntextual \"relevance\" (as search engines ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/6631327.html</guid>\n      <pubDate>Sun, 01 Feb 1998 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Are Software Patents Evil?</title>\n      <link>https://paulgraham.com/softwarepatents.html</link>\n      <description>(This essay is derived from a talk at Google.)A few weeks ago I found to my surprise that I'd been granted four patents.  \nThis was all the more surprising\nbecause I'd only applied for three.  The patents aren't mine, of\ncourse.  They were assigned to Viaweb, and became Yahoo's when they\nbought us.  But the news set me thinking about the question of\nsoftware patents generally.Patents are a hard problem.  I've had to advise most of the startups\nwe've funded about them, and despite years of experi...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/softwarepatents.html</guid>\n      <pubDate>Wed, 01 Mar 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>See Randomness</title>\n      <link>https://paulgraham.com/randomness.html</link>\n      <description>, rev August 2009Plato quotes Socrates as saying \"the unexamined life is not worth\nliving.\"  Part of what he meant was that the proper role of humans is to\nthink, just as the proper role of anteaters is to poke their noses\ninto anthills.A lot of ancient philosophy had the quality — and I\ndon't mean this in an insulting way — of the kind of conversations\nfreshmen have late at night in common rooms:\n\nWhat is our purpose?  Well, we humans are\nas conspicuously different from other animals as the ant...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/randomness.html</guid>\n      <pubDate>Sat, 01 Apr 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Hardest Lessons for Startups to Learn</title>\n      <link>https://paulgraham.com/startuplessons.html</link>\n      <description>(This essay is derived from a talk at the 2006 \nStartup School.)The startups we've funded so far are pretty quick, but they seem\nquicker to learn some lessons than others.  I think it's because\nsome things about startups are kind of counterintuitive.We've now \ninvested \nin enough companies that I've learned a trick\nfor determining which points are the counterintuitive ones:\nthey're the ones I have to keep repeating.So I'm going to number these points, and maybe with future startups\nI'll be able ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/startuplessons.html</guid>\n      <pubDate>Sat, 01 Apr 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Be Silicon Valley</title>\n      <link>https://paulgraham.com/siliconvalley.html</link>\n      <description>(This essay is derived from a keynote at Xtech.)Could you reproduce Silicon Valley elsewhere, or is there something\nunique about it?It wouldn't be surprising if it were hard to reproduce in other\ncountries, because you couldn't reproduce it in most of the US\neither.  What does it take to make a silicon valley even here?What it takes is the right people.  If you could get the right ten\nthousand people to move from Silicon Valley to Buffalo, Buffalo\nwould become Silicon Valley.  \n[1]That's a strik...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/siliconvalley.html</guid>\n      <pubDate>Mon, 01 May 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Startups Condense in America</title>\n      <link>https://paulgraham.com/america.html</link>\n      <description>(This essay is derived from a keynote at Xtech.)Startups happen in clusters.  There are a lot of them in Silicon\nValley and Boston, and few in Chicago or Miami.  A country that\nwants startups will probably also have to reproduce whatever makes\nthese clusters form.I've claimed that the recipe is a\ngreat university near a town smart\npeople like.  If you set up those conditions within the US, startups\nwill form as inevitably as water droplets condense on a cold piece\nof metal.  But when I consider ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/america.html</guid>\n      <pubDate>Mon, 01 May 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Power of the Marginal</title>\n      <link>https://paulgraham.com/marginal.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJune 2006(This essay is derived from talks at Usenix 2006 and\nRailsconf 2006.)A couple years ago my friend Trevor and I went to look at the Apple\ngarage.  As we stood there, he said that as a kid growing up in\nSaskatchewan he'd been amazed at the dedication Jobs and Wozniak\nmust have had to work in a garage.\"Those guys must have been\nfreezing!\"That's one of California's hidden advantages: the mild climate means\nthere's lots of marginal sp...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/marginal.html</guid>\n      <pubDate>Thu, 01 Jun 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Island Test</title>\n      <link>https://paulgraham.com/island.html</link>\n      <description>I've discovered a handy test for figuring out what you're addicted\nto.  Imagine you were going to spend the weekend at a friend's house\non a little island off the coast of Maine.  There are no shops on\nthe island and you won't be able to leave while you're there.  Also,\nyou've never been to this house before, so you can't assume it will\nhave more than any house might.What, besides clothes and toiletries, do you make a point of packing?\nThat's what you're addicted to.  For example, if you find yo...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/island.html</guid>\n      <pubDate>Sat, 01 Jul 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Copy What You Like</title>\n      <link>https://paulgraham.com/copy.html</link>\n      <description>When I was in high school I spent a lot of time imitating bad\nwriters.  What we studied in English classes was mostly fiction,\nso I assumed that was the highest form of writing.  Mistake number\none.  The stories that seemed to be most admired were ones in which\npeople suffered in complicated ways.  Anything funny or\ngripping was ipso facto suspect, unless it was old enough to be hard to\nunderstand, like Shakespeare or Chaucer.  Mistake number two.  The\nideal medium seemed the short story, which ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/copy.html</guid>\n      <pubDate>Sat, 01 Jul 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Present to Investors</title>\n      <link>https://paulgraham.com/investors.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nAugust 2006, rev. April 2007, September 2010In a few days it will be Demo Day, when the startups we funded\nthis summer present to investors.  Y Combinator funds startups twice\na year, in January and June.  Ten weeks later we invite all the\ninvestors we know to hear them present what they've built so far.Ten weeks is not much time.  The average startup probably doesn't\nhave much to show for itself after ten weeks.  But the average\nstartup ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/investors.html</guid>\n      <pubDate>Sun, 01 Apr 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Student's Guide to Startups</title>\n      <link>https://paulgraham.com/mit.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2006(This essay is derived from a talk at MIT.)Till recently graduating seniors had two choices: get a job or go\nto grad school.  I think there will increasingly be a third option:\nto start your own startup.  But how common will that be?I'm sure the default will always be to get a job, but starting a\nstartup could well become as popular as grad school.  In the late\n90s my professor friends used to complain that they couldn't get\ng...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/mit.html</guid>\n      <pubDate>Sun, 01 Oct 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The 18 Mistakes That Kill Startups</title>\n      <link>https://paulgraham.com/startupmistakes.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2006In the Q &amp; A period after a recent talk, someone asked what made\nstartups fail.  After standing there gaping for a few seconds I\nrealized this was kind of a trick question.  It's equivalent to\nasking how to make a startup succeed — if you avoid every cause of\nfailure, you succeed — and that's too big a question to answer on\nthe fly.Afterwards I realized it could be helpful to look at the problem\nfrom this direction.  If you ha...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/startupmistakes.html</guid>\n      <pubDate>Sun, 01 Oct 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Art Can Be Good</title>\n      <link>https://paulgraham.com/goodart.html</link>\n      <description>I grew up believing that taste is just a matter of personal preference.\nEach person has things they like, but no one's preferences are any\nbetter than anyone else's.  There is no such thing as good taste.Like a lot of things I grew up believing, this turns out to be\nfalse, and I'm going to try to explain why.One problem with saying there's no such thing as good taste is that\nit also means there's no such thing as good art.  If there were\ngood art, then people who liked it would have better taste...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/goodart.html</guid>\n      <pubDate>Fri, 01 Dec 2006 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Learning from Founders</title>\n      <link>https://paulgraham.com/foundersatwork.html</link>\n      <description>(Foreword to Jessica Livingston's \nFounders at Work.)Apparently sprinters reach their highest speed right out of the\nblocks, and spend the rest of the race slowing down.  The winners\nslow down the least.  It's that way with most startups too.  The\nearliest phase is usually the most productive.  That's when they\nhave the really big ideas.  Imagine what Apple was like when 100%\nof its employees were either Steve Jobs or Steve Wozniak.The striking thing about this phase is that it's completely diff...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/foundersatwork.html</guid>\n      <pubDate>Mon, 01 Jan 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Is It Worth Being Wise?</title>\n      <link>https://paulgraham.com/wisdom.html</link>\n      <description>A few days ago I finally figured out something I've wondered about\nfor 25 years: the relationship between wisdom and intelligence.\nAnyone can see they're not the same by the number of people who are\nsmart, but not very wise.  And yet intelligence and wisdom do seem\nrelated.  How?What is wisdom?  I'd say it's knowing what to do in a lot of\nsituations.  I'm not trying to make a deep point here about the\ntrue nature of wisdom, just to figure out how we use the word.  A\nwise person is someone who us...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/wisdom.html</guid>\n      <pubDate>Thu, 01 Feb 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why to Not Not Start a Startup</title>\n      <link>https://paulgraham.com/notnot.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMarch 2007(This essay is derived from talks at the 2007 \nStartup School and the Berkeley CSUA.)We've now been doing Y Combinator long enough to have some data\nabout success rates.  Our first batch, in the summer of 2005, had\neight startups in it.  Of those eight, it now looks as if at least\nfour succeeded.  Three have been acquired: \nReddit was a merger of\ntwo, Reddit and Infogami, and a third was acquired that we can't\ntalk about yet.  A...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/notnot.html</guid>\n      <pubDate>Thu, 01 Mar 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Microsoft is Dead</title>\n      <link>https://paulgraham.com/microsoft.html</link>\n      <description>A few days ago I suddenly realized Microsoft was dead.  I was talking\nto a young startup founder about how Google was different from\nYahoo.  I said that Yahoo had been warped from the start by\ntheir fear of Microsoft.  That was why they'd positioned themselves\nas a \"media company\" instead of a technology company.  Then I looked\nat his face and realized he didn't understand.  It was as if I'd\ntold him how much girls liked Barry Manilow in the mid\n80s.  Barry who?Microsoft?  He didn't say anything...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/microsoft.html</guid>\n      <pubDate>Sun, 01 Apr 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Two Kinds of Judgement</title>\n      <link>https://paulgraham.com/judgement.html</link>\n      <description>There are two different ways people judge you.  Sometimes judging\nyou correctly is the end goal.  But there's a second much more\ncommon type of judgement where it isn't.  We tend to regard all\njudgements of us as the first type.  We'd probably be happier if\nwe realized which are and which aren't.The first type of judgement, the type where judging you is the end\ngoal, include court cases, grades in classes, and most competitions.\nSuch judgements can of course be mistaken, but because the goal is\n...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/judgement.html</guid>\n      <pubDate>Sun, 01 Apr 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Hacker's Guide to Investors</title>\n      <link>https://paulgraham.com/guidetoinvestors.html</link>\n      <description>(This essay is derived from a keynote talk at the 2007 ASES Summit\nat Stanford.)The world of investors is a foreign one to most hackers—partly\nbecause investors are so unlike hackers, and partly because they\ntend to operate in secret.  I've been dealing with this world for\nmany years, both as a founder and an investor, and I still don't\nfully understand it.In this essay I'm going to list some of the more surprising things\nI've learned about investors.  Some I only learned in the past year.Teachi...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/guidetoinvestors.html</guid>\n      <pubDate>Sun, 01 Apr 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An Alternative Theory of Unions</title>\n      <link>https://paulgraham.com/unions.html</link>\n      <description>People who worry about the increasing gap between rich and poor\ngenerally look back on the mid twentieth century as a golden age.\nIn those days we had a large number of high-paying union manufacturing\njobs that boosted the median income.  I wouldn't quite call the\nhigh-paying union job a myth, but I think people who dwell on it\nare reading too much into it.Oddly enough, it was working with startups that made me realize\nwhere the high-paying union job came from.  In a rapidly growing\nmarket, you ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/unions.html</guid>\n      <pubDate>Tue, 01 May 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Equity Equation</title>\n      <link>https://paulgraham.com/equity.html</link>\n      <description>An investor wants to give you money for a certain percentage of\nyour startup.  Should you take it?  You're about to hire your first\nemployee.  How much stock should you give him?These are some of the hardest questions founders face.  And yet\nboth have the same answer:1/(1 - n)Whenever you're trading stock in your company for anything, whether\nit's money or an employee or a deal with another company, the test\nfor whether to do it is the same.  You should give up n% of your\ncompany if what you tra...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/equity.html</guid>\n      <pubDate>Sun, 01 Jul 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Stuff</title>\n      <link>https://paulgraham.com/stuff.html</link>\n      <description>I have too much stuff.  Most people in America do.  In fact, the\npoorer people are, the more stuff they seem to have.  Hardly anyone\nis so poor that they can't afford a front yard full of old cars.It wasn't always this way.  Stuff used to be rare and valuable.\nYou can still see evidence of that if you look for it.  For example,\nin my house in Cambridge, which was built in 1876, the bedrooms\ndon't have closets.  In those days people's stuff fit in a chest\nof drawers.  Even as recently as a few de...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/stuff.html</guid>\n      <pubDate>Sun, 01 Jul 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Holding a Program in One's Head</title>\n      <link>https://paulgraham.com/head.html</link>\n      <description>A good programmer working intensively on his own code can hold it\nin his mind the way a mathematician holds a problem he's working\non.  Mathematicians don't answer questions by working them out on\npaper the way schoolchildren are taught to.  They do more in their\nheads: they try to understand a problem space well enough that they\ncan walk around it the way you can walk around the memory of the\nhouse you grew up in.  At its best programming is the same.  You\nhold the whole program in your head, a...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/head.html</guid>\n      <pubDate>Wed, 01 Aug 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Not to Die</title>\n      <link>https://paulgraham.com/die.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nAugust 2007(This is a talk I gave at the last \nY Combinator dinner of the summer. \nUsually we don't have a speaker at the last dinner; it's more of\na party.  But it seemed worth spoiling the atmosphere if I could\nsave some of the startups from\npreventable deaths.  So at the last minute I cooked up this rather\ngrim talk.  I didn't mean this as an essay; I wrote it down\nbecause I only had two hours before dinner and think fastest while\nwrit...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/die.html</guid>\n      <pubDate>Wed, 01 Aug 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>News from the Front</title>\n      <link>https://paulgraham.com/colleges.html</link>\n      <description>A few weeks ago I had a thought so heretical that it really surprised\nme. It may not matter all that much where you go to college.For me, as for a lot of middle class kids, getting into a good\ncollege was more or less the meaning of life when I was growing up.\nWhat was I?  A student.  To do that well meant to get good grades.\nWhy did one have to get good grades?  To get into a good college.\nAnd why did one want to do that?  There seemed to be several reasons:\nyou'd learn more, get better jobs, m...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/colleges.html</guid>\n      <pubDate>Sat, 01 Sep 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Do Philosophy</title>\n      <link>https://paulgraham.com/philosophy.html</link>\n      <description>In high school I decided I was going to study philosophy in college.\nI had several motives, some more honorable than others.  One of the\nless honorable was to shock people.  College was regarded as job\ntraining where I grew up, so studying philosophy seemed an impressively\nimpractical thing to do.  Sort of like slashing holes in your clothes\nor putting a safety pin through your ear, which were other forms\nof impressive impracticality then just coming into fashion.But I had some more honest motiv...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/philosophy.html</guid>\n      <pubDate>Sat, 01 Sep 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Future of Web Startups</title>\n      <link>https://paulgraham.com/webstartups.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2007(This essay is derived from a keynote at FOWA in October 2007.)There's something interesting happening right now.  Startups are\nundergoing the same transformation that technology does when it becomes\ncheaper.It's a pattern we see over and over in technology.  Initially\nthere's some device that's very expensive and made\nin small quantities.  Then someone discovers how to make them cheaply; \nmany more get built; and as a result ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/webstartups.html</guid>\n      <pubDate>Mon, 01 Oct 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why to Move to a Startup Hub</title>\n      <link>https://paulgraham.com/startuphubs.html</link>\n      <description>After the last \ntalk I gave, one of the organizers \ngot up on the\nstage to deliver an impromptu rebuttal.  That never happened before.\nI only heard the first few sentences, but that was enough to tell\nwhat I said that upset him: that startups would do better if they\nmoved to Silicon Valley.This conference was in London, and most of the audience seemed to\nbe from the UK.  So saying startups should move to Silicon Valley\nseemed like a nationalistic remark: an obnoxious American telling\nthem that i...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/startuphubs.html</guid>\n      <pubDate>Mon, 01 Oct 2007 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Six Principles for Making New Things</title>\n      <link>https://paulgraham.com/newthings.html</link>\n      <description>The fiery reaction to the release of Arc had\nan unexpected consequence: it made me realize I had a design\nphilosophy.  The main complaint of the more articulate critics was\nthat Arc seemed so flimsy. After years of working on it, all I had\nto show for myself were a few thousand lines of macros?  Why hadn't\nI worked on more substantial problems?As I was mulling over these remarks it struck me how familiar they\nseemed.  This was exactly the kind of thing people said at first\nabout Viaweb, and Y Co...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/newthings.html</guid>\n      <pubDate>Fri, 01 Feb 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Trolls</title>\n      <link>https://paulgraham.com/trolls.html</link>\n      <description>A user on Hacker News recently posted a\ncomment\nthat set me thinking:\n\n  Something about hacker culture that never really set well with\n  me was this  the nastiness. ... I just don't understand why people\n  troll like they do.\n\nI've thought a lot over the last couple years about the problem of\ntrolls.  It's an old one, as old as forums, but\nwe're still just learning what the causes are and how to address\nthem.There are two senses of the word \"troll.\"  In the original sense\nit meant someone, usu...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/trolls.html</guid>\n      <pubDate>Fri, 01 Feb 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A New Venture Animal</title>\n      <link>https://paulgraham.com/ycombinator.html</link>\n      <description>, rev May 2013(This essay grew out of something I wrote for myself to figure\nout what we do.  Even though Y Combinator is now 3 years old, we're still\ntrying to understand its implications.)\nI was annoyed recently to read a description of Y Combinator that\nsaid \"Y Combinator does seed funding for startups.\"  What was\nespecially annoying about it was that I wrote it.  This doesn't\nreally convey what we do.  And the reason it's inaccurate is that,\nparadoxically, funding very early stage startups i...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ycombinator.html</guid>\n      <pubDate>Sat, 01 Mar 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>You Weren't Meant to Have a Boss</title>\n      <link>https://paulgraham.com/boss.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMarch 2008, rev. June 2008Technology tends to separate normal from natural.  Our bodies\nweren't designed to eat the foods that people in rich countries eat, or\nto get so little exercise.  \nThere may be a similar problem with the way we work: \na normal job may be as bad for us intellectually as white flour\nor sugar is for us physically.I began to suspect this after spending several years working \nwith startup founders.  I've now worked wit...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/boss.html</guid>\n      <pubDate>Sat, 01 Mar 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Disagree</title>\n      <link>https://paulgraham.com/disagree.html</link>\n      <description>The web is turning writing into a conversation.  Twenty years ago,\nwriters wrote and readers read.  The web lets readers respond, and\nincreasingly they do—in comment threads, on forums, and in their\nown blog posts.Many who respond to something disagree with it.  That's to be\nexpected.  Agreeing tends to motivate people less than disagreeing.\nAnd when you agree there's less to say.  You could expand on something\nthe author said, but he has probably already explored the\nmost interesting implicatio...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/disagree.html</guid>\n      <pubDate>Sat, 01 Mar 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Some Heroes</title>\n      <link>https://paulgraham.com/heroes.html</link>\n      <description>There are some topics I save up because they'll be so much fun to\nwrite about.  This is one of them: a list of my heroes.I'm not claiming this is a list of the n most admirable people.\nWho could make such a list, even if they wanted to?Einstein isn't on the list, for example, even though he probably\ndeserves to be on any shortlist of admirable people.  I once asked\na physicist friend if Einstein was really as smart as his fame\nimplies, and she said that yes, he was.  So why isn't he on the\nlist?...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/heroes.html</guid>\n      <pubDate>Tue, 01 Apr 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why There Aren't More Googles</title>\n      <link>https://paulgraham.com/googles.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nApril 2008Umair Haque \nwrote recently that the reason there aren't more Googles is\nthat most startups get bought before they can change the world.\n\n  Google, despite serious interest from Microsoft and Yahoo—what\n  must have seemed like lucrative interest at the time—didn't\n  sell out. Google might simply have been nothing but Yahoo's or\n  MSN's search box.Why isn't it? Because Google had a deeply felt sense of purpose:\n  a conviction to ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/googles.html</guid>\n      <pubDate>Tue, 01 Apr 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Be Good</title>\n      <link>https://paulgraham.com/good.html</link>\n      <description>(This essay is derived from a talk at the 2008 Startup School.)About a month after we started Y Combinator we came up with the\nphrase that became our motto: Make something people want.  We've\nlearned a lot since then, but if I were choosing now that's still\nthe one I'd pick.Another thing we tell founders is not to worry too much about the\nbusiness model, at least at first.  Not because making money is\nunimportant, but because it's so much easier than building something\ngreat.A couple weeks ago I...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/good.html</guid>\n      <pubDate>Tue, 01 Apr 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Lies We Tell Kids</title>\n      <link>https://paulgraham.com/lies.html</link>\n      <description>Adults lie constantly to kids.  I'm not saying we should stop, but\nI think we should at least examine which lies we tell and why.There may also be a benefit to us.  We were all lied to as kids,\nand some of the lies we were told still affect us.  So by studying\nthe ways adults lie to kids, we may be able to clear our heads of\nlies we were told.I'm using the word \"lie\" in a very general sense: not just overt\nfalsehoods, but also all the more subtle ways we mislead kids.\nThough \"lie\" has negative c...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/lies.html</guid>\n      <pubDate>Thu, 01 May 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Disconnecting Distraction</title>\n      <link>https://paulgraham.com/distraction.html</link>\n      <description>Note: The strategy described at the end of this essay didn't work.\nIt would work for a while, and then I'd gradually find myself\nusing the Internet on my work computer.  I'm trying other\nstrategies now, but I think this time I'll wait till I'm sure\nthey work before writing about them.May 2008Procrastination feeds on distractions.  Most people find it\nuncomfortable just to sit and do nothing; you avoid work by doing\nsomething else.So one way to beat procrastination is to starve it of distractions...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/distraction.html</guid>\n      <pubDate>Thu, 01 May 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cities and Ambition</title>\n      <link>https://paulgraham.com/cities.html</link>\n      <description>Great cities attract ambitious people.  You can sense it when you\nwalk around one.  In a hundred subtle ways, the city sends you a\nmessage: you could do more; you should try harder.The surprising thing is how different these messages can be.  New\nYork tells you, above all: you should make more money.  There are\nother messages too, of course.  You should be hipper.  You should\nbe better looking.  But the clearest message is that you should be\nricher.What I like about Boston (or rather Cambridge) ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/cities.html</guid>\n      <pubDate>Thu, 01 May 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Pooled-Risk Company Management Company</title>\n      <link>https://paulgraham.com/prcmc.html</link>\n      <description>At this year's startup school, David Heinemeier Hansson gave a\n talk\nin which he suggested that startup founders\nshould do things the old fashioned way.  Instead of hoping to get\nrich by building a valuable company and then selling stock in a\n\"liquidity event,\" founders should start companies that make money\nand live off the revenues.Sounds like a good plan.  Let's think about the optimal way to do\nthis.One disadvantage of living off the revenues of your company is that\nyou have to keep running ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/prcmc.html</guid>\n      <pubDate>Tue, 01 Jul 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Fundraising Survival Guide</title>\n      <link>https://paulgraham.com/fundraising.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nAugust 2008Raising money is the second hardest part of starting a startup.\nThe hardest part is making something people want: most startups\nthat die, die because they didn't do that.  But the second biggest\ncause of death is probably the difficulty of raising money.\nFundraising is brutal.One reason it's so brutal is simply the brutality of markets.  People\nwho've spent most of their lives in schools or big companies may\nnot have been expos...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/fundraising.html</guid>\n      <pubDate>Fri, 01 Aug 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why to Start a Startup in a Bad Economy</title>\n      <link>https://paulgraham.com/badeconomy.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2008The economic situation is apparently so grim that some experts fear\nwe may be in for a stretch as bad as the mid seventies.When Microsoft and Apple were founded.As those examples suggest, a recession may not be such a bad time\nto start a startup.  I'm not claiming it's a particularly good time\neither.  The truth is more boring: the state of the economy doesn't\nmatter much either way.If we've learned one thing from funding so m...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/badeconomy.html</guid>\n      <pubDate>Wed, 01 Oct 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Other Half of \"Artists Ship\"</title>\n      <link>https://paulgraham.com/artistsship.html</link>\n      <description>One of the differences between big companies and startups is that\nbig companies tend to have developed procedures to protect themselves\nagainst mistakes.  A startup walks like a toddler, bashing\ninto things and falling over all the time.  A big company is more\ndeliberate.The gradual accumulation of checks in an organization is a kind of\nlearning, based on disasters that have happened to it or others\nlike it.  After giving a contract to a supplier who goes bankrupt\nand fails to deliver, for examp...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/artistsship.html</guid>\n      <pubDate>Sat, 01 Nov 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The High-Res Society</title>\n      <link>https://paulgraham.com/highres.html</link>\n      <description>For nearly all of history the success of a society was proportionate\nto its ability to assemble large and disciplined organizations.\nThose who bet on economies of scale generally won, which meant the\nlargest organizations were the most successful ones.Things have already changed so much that this is hard for us to\nbelieve, but till just a few decades ago the largest organizations\ntended to be the most progressive.  An ambitious kid graduating\nfrom college in 1960 wanted to work in the huge, glea...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/highres.html</guid>\n      <pubDate>Mon, 01 Dec 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Could VC be a Casualty of the Recession?</title>\n      <link>https://paulgraham.com/divergence.html</link>\n      <description>(I originally wrote this at the request of a company producing\na report about entrepreneurship.  Unfortunately after reading it\nthey decided  it was too controversial to include.)\nVC funding will probably dry up somewhat during the present recession,\nlike it usually does in bad times.  But this time the result may\nbe different.  This time the number of new startups may not decrease.\nAnd that could be dangerous for VCs.When VC funding dried up after the Internet Bubble, startups dried\nup too.   T...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/divergence.html</guid>\n      <pubDate>Mon, 01 Dec 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>After Credentials</title>\n      <link>https://paulgraham.com/credentials.html</link>\n      <description>A few months ago I read a New York Times article on South\nKorean cram schools that said \n  Admission to the right university can make or break an ambitious\n  young South Korean.\n A parent added: \n  \"In our country, college entrance exams determine 70 to 80 percent\n  of a person's future.\"\n It was striking how old fashioned this sounded.  And\nyet when I was in high school it wouldn't have seemed too far off\nas a description of the US.  Which means things must have been\nchanging here.The course of...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/credentials.html</guid>\n      <pubDate>Mon, 01 Dec 2008 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Keep Your Identity Small</title>\n      <link>https://paulgraham.com/identity.html</link>\n      <description>I finally realized today why politics and religion yield such\nuniquely useless discussions.As a rule, any mention of religion on an online forum degenerates\ninto a religious argument.  Why?  Why does this happen with religion\nand not with Javascript or baking or other topics people talk about\non forums?What's different about religion is that people don't feel they need\nto have any particular expertise to have opinions about\nit.  All they need is strongly held beliefs, and anyone can have\nthose. ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/identity.html</guid>\n      <pubDate>Sun, 01 Feb 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Startups in 13 Sentences</title>\n      <link>https://paulgraham.com/13sentences.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\n\nWatch how this essay was\nwritten.\n\n\n\n\nFebruary 2009One of the things I always tell startups is a principle I learned\nfrom Paul Buchheit: it's better to make a few people really happy\nthan to make a lot of people semi-happy.  I was saying recently to\na reporter that if I could only tell startups 10 things, this would\nbe one of them.  Then I thought: what would the other 9 be?When I made the list there turned out to be 13:\n\n1. Pick good co...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/13sentences.html</guid>\n      <pubDate>Sun, 01 Feb 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What I've Learned from Hacker News</title>\n      <link>https://paulgraham.com/hackernews.html</link>\n      <description>Hacker News was two years\nold last week.  Initially it was supposed to be a side project—an\napplication to sharpen Arc on, and a place for current and future\nY Combinator founders to exchange news.  It's grown bigger and taken\nup more time than I expected, but I don't regret that because I've\nlearned so much from working on it.GrowthWhen we launched in February 2007, weekday traffic was around 1600\ndaily uniques.  It's since grown to around 22,000.  This growth\nrate is a bit higher than I'd like...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hackernews.html</guid>\n      <pubDate>Sun, 01 Feb 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Can You Buy a Silicon Valley?  Maybe.</title>\n      <link>https://paulgraham.com/maybe.html</link>\n      <description>A lot of cities look at Silicon Valley and ask \"How could we make\nsomething like that happen here?\"  The \norganic way to do it is to\nestablish a first-rate university in a place where rich people want\nto live. That's how Silicon Valley happened.  But could you shortcut\nthe process by funding startups?Possibly. Let's consider what it would take.The first thing to understand is that encouraging startups is a\ndifferent problem from encouraging startups in a particular city.\nThe latter is much more ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/maybe.html</guid>\n      <pubDate>Sun, 01 Feb 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why TV Lost</title>\n      <link>https://paulgraham.com/convergence.html</link>\n      <description>About twenty years ago people noticed computers and TV were on a\ncollision course and started to speculate about what they'd produce\nwhen they converged.  We now know the answer: computers.  It's clear\nnow that even by using the word \"convergence\" we were giving TV too\nmuch credit.  This won't be convergence so much as replacement.\nPeople may still watch things they call \"TV shows,\" but they'll\nwatch them mostly on computers.What decided the contest for computers?  Four forces, three of which\non...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/convergence.html</guid>\n      <pubDate>Sun, 01 Mar 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Be an Angel Investor</title>\n      <link>https://paulgraham.com/angelinvesting.html</link>\n      <description>(This essay is derived from a talk at AngelConf.)When we sold our startup in 1998 I thought one day I'd do some angel\ninvesting.  Seven years later I still hadn't started.  I put it off\nbecause it seemed mysterious and complicated.   It turns out to be \neasier than I expected, and also more interesting.The part I thought was hard, the mechanics of investing, really\nisn't. You give a startup money and they give you stock.  You'll\nprobably get either preferred stock, which means stock with extra\nr...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/angelinvesting.html</guid>\n      <pubDate>Sun, 01 Mar 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Relentlessly Resourceful</title>\n      <link>https://paulgraham.com/relres.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMarch 2009A couple days ago I finally got being a good startup founder down\nto two words:  relentlessly resourceful.Till then the best I'd managed was to get the opposite quality down\nto one: hapless.  Most dictionaries say hapless means unlucky.  But\nthe dictionaries are not doing a very good job.  A team that outplays\nits opponents but loses because of a bad decision by the referee\ncould be called unlucky, but not hapless.  Hapless impl...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/relres.html</guid>\n      <pubDate>Sun, 01 Mar 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Five Founders</title>\n      <link>https://paulgraham.com/5founders.html</link>\n      <description>Inc recently asked me who I thought were the 5 most\ninteresting startup founders of the last 30 years.  How do\nyou decide who's the most interesting?  The best test seemed\nto be influence: who are the 5\nwho've influenced me most?  Who do I use as examples when I'm\ntalking to companies we fund?  Who do I find myself quoting?1. Steve JobsI'd guess Steve is the most influential founder not just for me but\nfor most people you could ask.  A lot of startup culture is Apple\nculture.  He was the origina...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/5founders.html</guid>\n      <pubDate>Wed, 01 Apr 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Founder Visa</title>\n      <link>https://paulgraham.com/foundervisa.html</link>\n      <description>I usually avoid politics, but since we now seem to have an administration that's open to suggestions, I'm going to risk making one.  The single biggest thing the government could do to increase the number of startups in this country is a policy that would cost nothing: establish a new class of visa for startup founders.The biggest constraint on the number of new startups that get created in the US is not tax policy or employment law or even Sarbanes-Oxley.  It's that we won't let the people who ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/foundervisa.html</guid>\n      <pubDate>Wed, 01 Apr 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Twitter is a Big Deal</title>\n      <link>https://paulgraham.com/twitter.html</link>\n      <description>Om Malik is the most recent of many people\nto ask why Twitter is such a big deal.The reason is that it's a new messaging \nprotocol, where you don't specify the recipients.\nNew protocols are rare.  Or more precisely, new\nprotocols that take off are.\nThere are only a handful of commonly used ones: TCP/IP \n(the Internet), SMTP (email), HTTP (the web), and so on.  So any\nnew protocol is a big deal.  But Twitter is a protocol owned\nby a private company.  That's even rarer.Curiously, the fact that the...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/twitter.html</guid>\n      <pubDate>Wed, 01 Apr 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Local Revolution?</title>\n      <link>https://paulgraham.com/revolution.html</link>\n      <description>Recently I realized I'd been holding two ideas in my head that would explode if combined.The first is that startups may represent a new economic phase, on the scale of the Industrial Revolution. I'm not sure of this, but there seems a decent chance it's true.  People are dramatically more \nproductive as founders or early employees of startups—imagine how much less Larry and Sergey would have achieved if they'd gone to work for a big company—and that scale of improvement can change social customs...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/revolution.html</guid>\n      <pubDate>Wed, 01 Apr 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Maker's Schedule, Manager's Schedule</title>\n      <link>https://paulgraham.com/makersschedule.html</link>\n      <description>\"...the mere consciousness of an engagement will sometimes worry a whole day.\" Charles Dickens\n\n\n\n\nJuly 2009One reason programmers dislike meetings so much is that they're on\na different type of schedule from other people.  Meetings cost them\nmore.There are two types of schedule, which I'll call the manager's\nschedule and the maker's schedule.  The manager's schedule is for\nbosses.  It's embodied in the traditional appointment book, with\neach day cut into one hour intervals.  You can block off ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/makersschedule.html</guid>\n      <pubDate>Wed, 01 Jul 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ramen Profitable</title>\n      <link>https://paulgraham.com/ramenprofitable.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJuly 2009Now that the term \"ramen profitable\" has become widespread, I ought\nto explain precisely what the idea entails.Ramen profitable means a startup makes just enough to pay the\nfounders' living expenses.  This is a different form of profitability\nthan startups have traditionally aimed for.  Traditional profitability\nmeans a big bet is finally paying off, whereas the main importance\nof ramen profitability is that it buys you time.\n[1]...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ramenprofitable.html</guid>\n      <pubDate>Wed, 01 Jul 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Trouble with the Segway</title>\n      <link>https://paulgraham.com/segway.html</link>\n      <description>The Segway hasn't delivered on its initial promise, to put it mildly.\nThere are several reasons why, but one is that people don't want\nto be seen riding them. Someone riding a Segway looks like a dork.My friend Trevor Blackwell built \nhis own Segway, \nwhich we called\nthe Segwell. He also built a one-wheeled version, \nthe Eunicycle,\nwhich looks exactly like a regular unicycle till you realize the\nrider isn't pedaling.  He has ridden them both to downtown Mountain\nView to get coffee.  When he ride...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/segway.html</guid>\n      <pubDate>Wed, 01 Jul 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Kate Saw in Silicon Valley</title>\n      <link>https://paulgraham.com/kate.html</link>\n      <description>Kate Courteau is the architect who designed Y Combinator's office.\nRecently we managed to recruit her to help us run YC when she's not\nbusy with architectural projects.  Though she'd heard a lot about\nYC since the beginning, the last 9 months have been a total immersion.I've been around the startup world for so long that it seems normal\nto me, so I was curious to hear what had surprised her most about\nit.  This was her list:1. How many startups fail.Kate knew in principle that startups\nwere very...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/kate.html</guid>\n      <pubDate>Sat, 01 Aug 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Anatomy of Determination</title>\n      <link>https://paulgraham.com/determination.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nSeptember 2009Like all investors, we spend a lot of time trying to learn how to\npredict which startups will succeed.  We probably spend more time\nthinking about it than most, because we invest the earliest.\nPrediction is usually all we have to rely on.We learned quickly that the most important predictor of success is\ndetermination.  At first we thought it might be intelligence.\nEveryone likes to believe that's what makes startups succeed....</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/determination.html</guid>\n      <pubDate>Tue, 01 Sep 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The List of N Things</title>\n      <link>https://paulgraham.com/nthings.html</link>\n      <description>I bet you the current issue of Cosmopolitan has an article\nwhose title begins with a number. \"7 Things He Won't Tell You about\nSex,\" or something like that.  Some popular magazines\nfeature articles of this type on the cover of every\nissue.  That can't be happening by accident.  Editors must know\nthey attract readers.Why do readers like the list of n things so much?   Mainly because\nit's easier to read than a regular article.  \n[1]\nStructurally, the list of n things is a degenerate case of essay....</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/nthings.html</guid>\n      <pubDate>Tue, 01 Sep 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Post-Medium Publishing</title>\n      <link>https://paulgraham.com/publishing.html</link>\n      <description>Publishers of all types, from news to music, are unhappy that\nconsumers won't pay for content anymore.  At least, that's how they\nsee it.In fact consumers never really were paying for content, and publishers\nweren't really selling it either.  If the content was what they\nwere selling, why has the price of books or music or movies always\ndepended mostly on the format?  Why didn't better content cost more?\n[1]A copy of Time costs $5 for 58 pages, or 8.6 cents a page.  \nThe Economist costs $7 for 8...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/publishing.html</guid>\n      <pubDate>Tue, 01 Sep 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Persuade xor Discover</title>\n      <link>https://paulgraham.com/discover.html</link>\n      <description>When meeting people you don't know very well, the convention is\nto seem extra friendly.  You smile and say \"pleased to meet you,\"\nwhether you are or not.  There's nothing dishonest about this.\nEveryone knows that these little social lies aren't meant\nto be taken literally, just as everyone knows that \n\"Can you pass the salt?\" is only grammatically a question.I'm perfectly willing to smile and say \"pleased to meet you\"\nwhen meeting new people.  But there is another set of \ncustoms for being ingra...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/discover.html</guid>\n      <pubDate>Tue, 01 Sep 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Startups Are Really Like</title>\n      <link>https://paulgraham.com/really.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2009(This  essay is derived from a talk at the 2009 Startup School.)I wasn't sure what to talk about at Startup School, so I decided\nto ask the founders of the startups we'd funded.  What hadn't I\nwritten about yet?I'm in the unusual position of being able to test the essays I write\nabout startups.  I hope the ones on other topics are right, but I\nhave no way to test them.  The ones on startups get tested by about\n70 people every ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/really.html</guid>\n      <pubDate>Thu, 01 Oct 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apple's Mistake</title>\n      <link>https://paulgraham.com/apple.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nNovember 2009I don't think Apple realizes how badly the App Store approval process\nis broken.  Or rather, I don't think they realize how much it matters\nthat it's broken.The way Apple runs the App Store has harmed their reputation with\nprogrammers more than anything else they've ever done. \nTheir reputation with programmers used to be great.\nIt used to be the most common complaint you heard\nabout Apple was that their fans admired them too...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/apple.html</guid>\n      <pubDate>Sun, 01 Nov 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Organic Startup Ideas</title>\n      <link>https://paulgraham.com/organic.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nApril 2010The best way to come up with startup ideas is to ask yourself the\nquestion: what do you wish someone would make for you?There are two types of startup ideas: those that grow organically\nout of your own life, and those that you decide, from afar, are\ngoing to be necessary to some class of users other than you.  Apple\nwas the first type.  Apple happened because Steve Wozniak wanted a\ncomputer.  Unlike most people who wanted comput...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/organic.html</guid>\n      <pubDate>Thu, 01 Apr 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Lose Time and Money</title>\n      <link>https://paulgraham.com/selfindulgence.html</link>\n      <description>When we sold our startup in 1998 I suddenly got a lot of money.  I\nnow had to think about something I hadn't had to think about before:\nhow not to lose it.   I knew it was possible to go from rich to\npoor, just as it was possible to go from poor to rich.  But while\nI'd spent a lot of the past several years studying the paths from\npoor to rich, \nI knew practically nothing about the paths from rich\nto poor.  Now, in order to avoid them, I had to learn where they\nwere.So I started to pay attention ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/selfindulgence.html</guid>\n      <pubDate>Thu, 01 Jul 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Top Idea in Your Mind</title>\n      <link>https://paulgraham.com/top.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJuly 2010I realized recently that what one thinks about in the shower in the\nmorning is more important than I'd thought.  I knew it was a good\ntime to have ideas.  Now I'd go further: now I'd say it's hard to\ndo a really good job on anything you don't think about in the shower.Everyone who's worked on difficult problems is probably familiar\nwith the phenomenon of working hard to figure something out, failing,\nand then suddenly seeing the ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/top.html</guid>\n      <pubDate>Thu, 01 Jul 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Acceleration of Addictiveness</title>\n      <link>https://paulgraham.com/addiction.html</link>\n      <description>What hard liquor, cigarettes, heroin, and crack have in common is\nthat they're all more concentrated forms of less addictive predecessors.\nMost if not all the things we describe as addictive are.  And the\nscary thing is, the process that created them is accelerating.We wouldn't want to stop it.  It's the same process that cures\ndiseases: technological progress.  Technological progress means\nmaking things do more of what we want.  When the thing we want is\nsomething we want to want, we consider t...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/addiction.html</guid>\n      <pubDate>Thu, 01 Jul 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Future of Startup Funding</title>\n      <link>https://paulgraham.com/future.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nAugust 2010Two years ago I\nwrote about what I called \"a huge, unexploited\nopportunity in startup funding:\" the growing disconnect between\nVCs, whose current business model requires them to invest large\namounts, and a large class of startups that need less than they\nused to.  Increasingly, startups want a couple hundred thousand\ndollars, not a couple million. \n[1]The opportunity is a lot less unexploited now.  Investors have\npoured into th...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/future.html</guid>\n      <pubDate>Sun, 01 Aug 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Happened to Yahoo</title>\n      <link>https://paulgraham.com/yahoo.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nAugust 2010When I went to work for Yahoo after they bought our startup in 1998,\nit felt like the center of the world.  It was supposed to be the\nnext big thing.  It was supposed to be what Google turned out to\nbe.What went wrong?  The problems that hosed Yahoo go back a long time,\npractically to the beginning of the company.  They were already\nvery visible when I got there in 1998.  Yahoo had two problems\nGoogle didn't: easy money, and am...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/yahoo.html</guid>\n      <pubDate>Sun, 01 Aug 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>High Resolution Fundraising</title>\n      <link>https://paulgraham.com/hiresfund.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nSeptember 2010The reason startups have been using \nmore convertible notes in angel\nrounds is that they make deals close faster.  By making it easier\nfor startups to give different prices to different investors, they\nhelp them break the sort of deadlock that happens when investors\nall wait to see who else is going to invest.By far the biggest influence on investors' opinions of a startup\nis the opinion of other investors.  There are very, ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hiresfund.html</guid>\n      <pubDate>Wed, 01 Sep 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Where to See Silicon Valley</title>\n      <link>https://paulgraham.com/seesv.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2010Silicon Valley proper is mostly suburban sprawl.  At first glance\nit doesn't seem there's anything to see.  It's not the sort of place\nthat has conspicuous monuments.  But if you look, there are subtle\nsigns you're in a place that's different from other places.1. Stanford\nUniversityStanford is a strange place.  Structurally it is to an ordinary\nuniversity what suburbia is to a city.  It's enormously spread out,\nand feels surpr...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/seesv.html</guid>\n      <pubDate>Fri, 01 Oct 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The New Funding Landscape</title>\n      <link>https://paulgraham.com/superangels.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2010After barely changing at all for decades, the startup funding\nbusiness is now in what could, at least by comparison, be called\nturmoil.  At Y Combinator we've seen dramatic changes in the funding\nenvironment for startups.  Fortunately one of them is much higher\nvaluations.The trends we've been seeing are probably not YC-specific.  I wish\nI could say they were, but the main cause is probably just that we\nsee trends first—partly...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/superangels.html</guid>\n      <pubDate>Fri, 01 Oct 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What We Look for in Founders</title>\n      <link>https://paulgraham.com/founders.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2010\n\n(I wrote this for Forbes, who asked me to write something\nabout the qualities we look for in founders.  In print they had to cut\nthe last item because they didn't have room.)1. DeterminationThis has turned out to be the most important quality in startup\nfounders.  We thought when we started Y Combinator that the most\nimportant quality would be intelligence.  That's the myth in the\nValley. And certainly you don't want founder...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/founders.html</guid>\n      <pubDate>Fri, 01 Oct 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tablets</title>\n      <link>https://paulgraham.com/tablets.html</link>\n      <description>I was thinking recently how inconvenient it was not to have a general\nterm for iPhones, iPads, and the corresponding things running\nAndroid.  The closest to a general term seems to be \"mobile devices,\"\nbut that (a) applies to any mobile phone, and (b) doesn't really\ncapture what's distinctive about the iPad.After a few seconds it struck me that what we'll end up calling\nthese things is tablets.  The only reason we even consider calling\nthem \"mobile devices\" is that the iPhone preceded the iPad. ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/tablets.html</guid>\n      <pubDate>Wed, 01 Dec 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Founder Control</title>\n      <link>https://paulgraham.com/control.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nDecember 2010Someone we funded is talking to VCs now, and asked me how common\nit was for a startup's founders to retain control of the board after\na series A round.  He said VCs told him this almost never happened.Ten years ago that was true.  In the past, founders rarely kept\ncontrol of the board through a series A.  The traditional series A\nboard consisted of two founders, two VCs, and one independent member.\nMore recently the recipe is...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/control.html</guid>\n      <pubDate>Wed, 01 Dec 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Subject: Airbnb</title>\n      <link>https://paulgraham.com/airbnb.html</link>\n      <description>Yesterday Fred Wilson published a remarkable post about missing\nAirbnb.   VCs miss good startups all the time, but it's extraordinarily\nrare for one to talk about it publicly till long afterward.  So\nthat post is further evidence what a rare bird Fred is.  He's\nprobably the nicest VC I know.Reading Fred's post made me go back and look at the emails I exchanged\nwith him at the time, trying to convince him to invest in Airbnb.\nIt was quite interesting to read.  You can see Fred's mind at work \nas ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/airbnb.html</guid>\n      <pubDate>Tue, 01 Mar 2011 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Patent Pledge</title>\n      <link>https://paulgraham.com/patentpledge.html</link>\n      <description>I realized recently that we may be able to solve part of the patent\nproblem without waiting for the government.I've never been 100% sure whether patents help or hinder technological\nprogress.  When I was a kid I thought they helped.  I thought they\nprotected inventors from having their ideas stolen by big companies.\nMaybe that was truer in the past, when more things were physical.\nBut regardless of whether patents are in general a good thing, there\ndo seem to be bad ways of using them.  And sinc...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/patentpledge.html</guid>\n      <pubDate>Mon, 01 Aug 2011 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why Startup Hubs Work</title>\n      <link>https://paulgraham.com/hubs.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2011If you look at a list of US cities sorted by population, the number\nof successful startups per capita varies by orders of magnitude.\nSomehow it's as if most places were sprayed with startupicide.I wondered about this for years.  I could see the average town was\nlike a roach motel for startup ambitions: smart, ambitious people\nwent in, but no startups came out.  But I was never able to figure\nout exactly what happened inside th...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hubs.html</guid>\n      <pubDate>Sat, 01 Oct 2011 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Snapshot: Viaweb, June 1998</title>\n      <link>https://paulgraham.com/vw.html</link>\n      <description>A few hours before the Yahoo acquisition was announced in June 1998\nI took a snapshot of Viaweb's\nsite.  I thought it might be interesting to look at one day.The first thing one notices is is how tiny the pages are.  Screens\nwere a lot smaller in 1998.  If I remember correctly, our frontpage\nused to just fit in the size window people typically used then.Browsers then (IE 6 was still 3 years in the future) had few fonts\nand they weren't antialiased.  If you wanted to make pages that\nlooked good, ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/vw.html</guid>\n      <pubDate>Sun, 01 Jan 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Schlep Blindness</title>\n      <link>https://paulgraham.com/schlep.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJanuary 2012There are great startup ideas lying around unexploited right under\nour noses.  One reason we don't see them is a phenomenon I call\nschlep blindness.  Schlep was originally a Yiddish word but has\npassed into general use in the US.  It means a tedious, unpleasant\ntask.No one likes schleps, but hackers especially dislike them.  \nMost hackers who start startups wish they could do it by just writing\nsome clever software, putting it...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/schlep.html</guid>\n      <pubDate>Sun, 01 Jan 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Word to the Resourceful</title>\n      <link>https://paulgraham.com/word.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJanuary 2012A year ago I noticed a pattern in the least successful startups\nwe'd funded: they all seemed hard to talk to.  It felt as if there\nwas some kind of wall between us.  I could never quite tell if they\nunderstood what I was saying.This caught my attention because earlier we'd noticed a pattern\namong the most successful startups, and it seemed to hinge on a\ndifferent quality.  We found the startups that did best were the\nones with...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/word.html</guid>\n      <pubDate>Sun, 01 Jan 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Frighteningly Ambitious Startup Ideas</title>\n      <link>https://paulgraham.com/ambitious.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nMarch 2012One of the more surprising things I've noticed while working\non Y Combinator is how frightening the most ambitious startup\nideas are.  In this essay I'm going to demonstrate\nthis phenomenon by describing some.  Any one of them\ncould make you a billionaire.  That might sound like an attractive\nprospect, and yet when I describe these ideas you may\nnotice you find yourself shrinking away from them.Don't worry, it's not a sign of we...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ambitious.html</guid>\n      <pubDate>Thu, 01 Mar 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Defining Property</title>\n      <link>https://paulgraham.com/property.html</link>\n      <description>As a child I read a book of stories about a famous judge in eighteenth\ncentury Japan called Ooka Tadasuke.  One of the cases he decided\nwas brought by the owner of a food shop.  A poor student who could\nafford only rice was eating his rice while enjoying the delicious\ncooking smells coming from the food shop.  The owner wanted the\nstudent to pay for the smells he was enjoying.The student was\nstealing his smells!This story often comes to mind when I hear the RIAA and MPAA accusing\npeople of steal...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/property.html</guid>\n      <pubDate>Thu, 01 Mar 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Y Combinator Started</title>\n      <link>https://paulgraham.com/ycstart.html</link>\n      <description>Y Combinator's 7th birthday was March 11.   As usual we were so\nbusy we didn't notice till a few days after.  I don't think we've\never managed to remember our birthday on our birthday.\n\nOn March 11 2005, Jessica and I were walking home from dinner in\nHarvard Square.  Jessica was working at an investment bank at the\ntime, but she didn't like it much, so she had interviewed for a job\nas director of marketing at a Boston VC fund.  The VC fund was doing\nwhat now seems a comically familiar thing for ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ycstart.html</guid>\n      <pubDate>Thu, 01 Mar 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Writing and Speaking</title>\n      <link>https://paulgraham.com/speak.html</link>\n      <description>I'm not a very good speaker.  I say \"um\" a lot. Sometimes I have\nto pause when I lose my train of thought.  I wish I were a better\nspeaker.  But I don't wish I were a better speaker like I wish I\nwere a better writer.  What I really want is to have good ideas,\nand that's a much bigger part of being a good writer than being a\ngood speaker.Having good ideas is most of writing well.  If you know what you're\ntalking about, you can say it in the plainest words and you'll be\nperceived as having a good...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/speak.html</guid>\n      <pubDate>Thu, 01 Mar 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Top of My Todo List</title>\n      <link>https://paulgraham.com/todo.html</link>\n      <description>A palliative care nurse called Bronnie Ware made a list of the\nbiggest regrets\nof the dying.  Her list seems plausible.  I could see\nmyself — can see myself — making at least 4 of these\n5 mistakes.If you had to compress them into a single piece of advice, it might\nbe: don't be a cog.  The 5 regrets paint a portrait of post-industrial\nman, who shrinks himself into a shape that fits his circumstances,\nthen turns dutifully till he stops.The alarming thing is, the mistakes that produce these regrets...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/todo.html</guid>\n      <pubDate>Sun, 01 Apr 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Black Swan Farming</title>\n      <link>https://paulgraham.com/swan.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nSeptember 2012I've done several types of work over the years but I don't know\nanother as counterintuitive as startup investing.The two most important things to understand about startup investing,\nas a business, are (1) that effectively all the returns are\nconcentrated in a few big winners, and (2) that the best ideas look\ninitially like bad ideas.The first rule I knew intellectually, but didn't really grasp till\nit happened to us.  The to...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/swan.html</guid>\n      <pubDate>Sat, 01 Sep 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Startup = Growth</title>\n      <link>https://paulgraham.com/growth.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nSeptember 2012A startup is a company designed to grow fast.  Being newly founded\ndoes not in itself make a company a startup.  Nor is it necessary\nfor a startup to work on technology, or take venture funding, or\nhave some sort of \"exit.\"  The only essential thing is growth.\nEverything else we associate with startups follows from growth.If you want to start one it's important to understand that. Startups\nare so hard that you can't be point...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/growth.html</guid>\n      <pubDate>Sat, 01 Sep 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Hardware Renaissance</title>\n      <link>https://paulgraham.com/hw.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2012One advantage of Y Combinator's early, broad focus is that we\nsee trends before most other people.  And one of the most conspicuous\ntrends in the last batch was the large number of hardware startups.\nOut of 84 companies, 7 were making hardware.  On the whole\nthey've done better than the companies that weren't.They've faced resistance from investors of course.  Investors have\na deep-seated bias against hardware.  But investors'...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hw.html</guid>\n      <pubDate>Mon, 01 Oct 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Get Startup Ideas</title>\n      <link>https://paulgraham.com/startupideas.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nNovember 2012The way to get startup ideas is not to try to think of startup\nideas.  It's to look for problems, preferably problems you have\nyourself.The very best startup ideas tend to have three things in common:\nthey're something the founders themselves want, that they themselves\ncan build, and that few others realize are worth doing.  Microsoft,\nApple, Yahoo, Google, and Facebook all began this way.\nProblemsWhy is it so important to wo...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/startupideas.html</guid>\n      <pubDate>Thu, 01 Nov 2012 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Startup Investing Trends</title>\n      <link>https://paulgraham.com/invtrend.html</link>\n      <description>(This talk was written for an audience of investors.)Y Combinator has now funded 564 startups including the current\nbatch, which has 53.  The total valuation of the 287 that have\nvaluations (either by raising an equity round, getting acquired,\nor dying) is about $11.7 billion, and the 511 prior to the current\nbatch have collectively raised about $1.7 billion.\n[1]As usual those numbers are dominated by a few big winners.  The top\n10 startups account for 8.6 of that 11.7 billion.  But there is a\np...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/invtrend.html</guid>\n      <pubDate>Sat, 01 Jun 2013 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Do Things that Don't Scale</title>\n      <link>https://paulgraham.com/ds.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nJuly 2013One of the most common types of advice we give at Y Combinator is\nto do things that don't scale.  A lot of would-be founders believe\nthat startups either take off or don't.  You build something, make\nit available, and if you've made a better mousetrap, people beat a\npath to your door as promised.  Or they don't, in which case the\nmarket must not exist.\n[1]Actually startups take off because the founders make them take off.\nThere m...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ds.html</guid>\n      <pubDate>Mon, 01 Jul 2013 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Convince Investors</title>\n      <link>https://paulgraham.com/convince.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nAugust 2013When people hurt themselves lifting heavy things, it's usually\nbecause they try to lift with their back.  The right way to lift\nheavy things is to let your legs do the work.  Inexperienced founders\nmake the same mistake when trying to convince investors.  They try\nto convince with their pitch.  Most would be better off if they let\ntheir startup do the work — if they started by understanding why\ntheir startup is worth investing ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/convince.html</guid>\n      <pubDate>Thu, 01 Aug 2013 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Investor Herd Dynamics</title>\n      <link>https://paulgraham.com/herd.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nAugust 2013The biggest component in most investors' opinion of you is the\nopinion of other investors.  Which is of course a recipe for\nexponential growth.  When one investor wants to invest in you, that\nmakes other investors want to, which makes others want to, and so\non.Sometimes inexperienced founders mistakenly conclude that manipulating\nthese forces is the essence of fundraising.  They hear stories about\nstampedes to invest in success...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/herd.html</guid>\n      <pubDate>Thu, 01 Aug 2013 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Raise Money</title>\n      <link>https://paulgraham.com/fr.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nSeptember 2013Most startups that raise money do it more than once.  A typical\ntrajectory might be (1) to get started with a few tens of thousands\nfrom something like Y Combinator or individual angels, then \n(2) raise a few hundred thousand to a few million to build the company,\nand then (3) once the company is clearly succeeding, raise one or\nmore later rounds to accelerate growth.Reality can be messier.  Some companies raise money twice ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/fr.html</guid>\n      <pubDate>Sun, 01 Sep 2013 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Before the Startup</title>\n      <link>https://paulgraham.com/before.html</link>\n      <description>Want to start a startup?  Get funded by\nY Combinator.\n\n\n\n\nOctober 2014(This essay is derived from a guest lecture in Sam Altman's startup class at\nStanford.  It's intended for college students, but much of it is\napplicable to potential founders at other ages.)One of the advantages of having kids is that when you have to give\nadvice, you can ask yourself \"what would I tell my own kids?\"  My\nkids are little, but I can imagine what I'd tell them about startups\nif they were in college, and that's wh...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/before.html</guid>\n      <pubDate>Wed, 01 Oct 2014 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mean People Fail</title>\n      <link>https://paulgraham.com/mean.html</link>\n      <description>It struck me recently how few of the most successful people I know\nare mean.  There are exceptions, but remarkably few.Meanness isn't rare.  In fact, one of the things the internet has\nshown us is how mean people can be.  A few decades ago, only famous\npeople and professional writers got to publish their opinions.  Now\neveryone can, and we can all see the long tail of\nmeanness that had previously been hidden.And yet while there are clearly a lot of mean people out there,\nthere are next to none a...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/mean.html</guid>\n      <pubDate>Sat, 01 Nov 2014 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Fatal Pinch</title>\n      <link>https://paulgraham.com/pinch.html</link>\n      <description>Many startups go through a point a few months before they die where\nalthough they have a significant amount of money in the bank, they're\nalso losing a lot each month, and revenue growth is either nonexistent\nor mediocre.  The company has, say, 6 months of runway.  Or to put\nit more brutally, 6 months before they're out of business.  They\nexpect to avoid that by raising more from investors.\n[1]That last sentence is the fatal one.There may be nothing founders are so prone to delude themselves\nabo...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/pinch.html</guid>\n      <pubDate>Mon, 01 Dec 2014 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How You Know</title>\n      <link>https://paulgraham.com/know.html</link>\n      <description>I've read Villehardouin's chronicle of the Fourth Crusade at least\ntwo times, maybe three.  And yet if I had to write down everything\nI remember from it, I doubt it would amount to much more than a\npage.  Multiply this times several hundred, and I get an uneasy\nfeeling when I look at my bookshelves. What use is it to read all\nthese books if I remember so little from them?A few months ago, as I was reading Constance Reid's excellent\nbiography of Hilbert, I figured out if not the answer to this\nqu...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/know.html</guid>\n      <pubDate>Mon, 01 Dec 2014 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Be an Expert in a Changing World</title>\n      <link>https://paulgraham.com/ecw.html</link>\n      <description>If the world were static, we could have monotonically increasing\nconfidence in our beliefs.  The more (and more varied) experience\na belief survived, the less likely it would be false.  Most people\nimplicitly believe something like this about their opinions.  And\nthey're justified in doing so with opinions about things that don't\nchange much, like human nature.  But you can't trust your opinions\nin the same way about things that change, which could include\npractically everything else.When expert...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ecw.html</guid>\n      <pubDate>Mon, 01 Dec 2014 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Let the Other 95% of Great Programmers In</title>\n      <link>https://paulgraham.com/95.html</link>\n      <description>American technology companies want the government to make immigration\neasier because they say they can't find enough programmers in the\nUS.  Anti-immigration people say that instead of letting foreigners\ntake these jobs, we should train more Americans to be programmers.\nWho's right?The technology companies are right. What the anti-immigration people\ndon't understand is that there is a huge variation in ability between\ncompetent programmers and exceptional ones, and while you can train\npeople to ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/95.html</guid>\n      <pubDate>Mon, 01 Dec 2014 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Don't Talk to Corp Dev</title>\n      <link>https://paulgraham.com/corpdev.html</link>\n      <description>Corporate Development, aka corp dev, is the group within companies\nthat buys other companies. If you're talking to someone from corp\ndev, that's why, whether you realize it yet or not.It's usually a mistake to talk to corp dev unless (a) you want to\nsell your company right now and (b) you're sufficiently likely to\nget an offer at an acceptable price.  In practice that means startups\nshould only talk to corp dev when they're either doing really well\nor really badly.  If you're doing really badly,...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/corpdev.html</guid>\n      <pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Doesn't Seem Like Work?</title>\n      <link>https://paulgraham.com/work.html</link>\n      <description>My father is a mathematician. For most of my childhood he worked\nfor Westinghouse, modelling nuclear reactors.He was one of those lucky people who know early on what they want to\ndo.  When you talk to him about his childhood, there's a clear\nwatershed at about age 12, when he \"got interested in maths.\"He\ngrew up in the small Welsh seacoast town of Pwllheli.  As we retraced\nhis walk to school on Google Street View, he said that it had been\nnice growing up in the country.\"Didn't it get boring when...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/work.html</guid>\n      <pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Ronco Principle</title>\n      <link>https://paulgraham.com/ronco.html</link>\n      <description>No one, VC or angel, has invested in more of the top startups than\nRon Conway.  He knows what happened in every deal in the Valley,\nhalf the time because he arranged it.And yet he's a super nice guy.  In fact, nice is not the word.\nRonco is good. I know of zero instances in which he has behaved\nbadly.  It's hard even to imagine.When I first came to Silicon Valley I thought \"How lucky that someone\nso powerful is so benevolent.\"  But gradually I realized it wasn't\nluck.  It was by being benevolent...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ronco.html</guid>\n      <pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Microsoft Is this the Altair Basic of?</title>\n      <link>https://paulgraham.com/altair.html</link>\n      <description>One of the most valuable exercises you can try if you want to\nunderstand startups is to look at the most successful companies and\nexplain why they were not as lame as they seemed when they first\nlaunched.  Because they practically all seemed lame at first. Not\njust small, lame.  Not just the first step up a big mountain.  More\nlike the first step into a swamp.A Basic interpreter for the Altair?  How could that ever grow into\na giant company?  People sleeping on airbeds in strangers' apartments?\n...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/altair.html</guid>\n      <pubDate>Sun, 01 Feb 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Change Your Name</title>\n      <link>https://paulgraham.com/name.html</link>\n      <description>If you have a US startup called X and you don't have x.com, you\nshould probably change your name.The reason is not just that people can't find you.  For companies\nwith mobile apps, especially, having the right domain name is not\nas critical as it used to be for getting users.  The problem with\nnot having the .com of your name is that it signals weakness.  Unless\nyou're so big that your reputation precedes you, a marginal domain\nsuggests you're a marginal company.  Whereas\n(as Stripe shows)\nhavin...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/name.html</guid>\n      <pubDate>Sat, 01 Aug 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why It's Safe for Founders to Be Nice</title>\n      <link>https://paulgraham.com/safe.html</link>\n      <description>I recently got an email from a founder that helped me understand\nsomething important: why it's safe for startup founders to be nice\npeople.I grew up with a cartoon idea of a very successful businessman (in\nthe cartoon it was always a man): a rapacious, cigar-smoking,\ntable-thumping guy in his fifties who wins by exercising power, and\nisn't too fussy about how.  As I've written before, one of\nthe things that has surprised me most about startups is \nhow few of\nthe most successful founders are like...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/safe.html</guid>\n      <pubDate>Sat, 01 Aug 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Default Alive or Default Dead?</title>\n      <link>https://paulgraham.com/aord.html</link>\n      <description>When I talk to a startup that's been operating for more than 8 or\n9 months, the first thing I want to know is almost always the same.\nAssuming their expenses remain constant and their revenue growth\nis what it has been over the last several months, do they make it to\nprofitability on the money they have left?  Or to put it more\ndramatically, by default do they live or die?The startling thing is how often the founders themselves don't know.\nHalf the founders I talk to don't know whether they're d...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/aord.html</guid>\n      <pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Write Like You Talk</title>\n      <link>https://paulgraham.com/talk.html</link>\n      <description>Here's a simple trick for getting more people to read what you\nwrite: write in spoken language.Something comes over most people when they start writing. They write\nin a different language than they'd use if they were talking to a\nfriend. The sentence structure and even the words are different.\nNo one uses \"pen\" as a verb in spoken English. You'd feel like an\nidiot using \"pen\" instead of \"write\" in a conversation with a friend.The last straw for me was a sentence I read a couple days ago:\n\n  The ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/talk.html</guid>\n      <pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Way to Detect Bias</title>\n      <link>https://paulgraham.com/bias.html</link>\n      <description>This will come as a surprise to a lot of people, but in some cases\nit's possible to detect bias in a selection process without knowing\nanything about the applicant pool.  Which is exciting because among\nother things it means third parties can use this technique to detect\nbias whether those doing the selecting want them to or not.You can use this technique whenever (a) you have at least\na random sample of the applicants that were selected, (b) their\nsubsequent performance is measured, and (c) the...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/bias.html</guid>\n      <pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Jessica Livingston</title>\n      <link>https://paulgraham.com/jessica.html</link>\n      <description>A few months ago an article about Y Combinator said that early on\nit had been a \"one-man show.\"  It's sadly common to read that sort\nof thing.  But the problem with that description is not just that\nit's unfair.  It's also misleading.  Much of what's most novel about\nYC is due to Jessica Livingston.  If you don't understand her, you\ndon't understand YC.  So let me tell you a little about Jessica.YC had 4 founders.  Jessica and I decided one night to start it,\nand the next day we recruited my fri...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/jessica.html</guid>\n      <pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Refragmentation</title>\n      <link>https://paulgraham.com/re.html</link>\n      <description>One advantage of being old is that you can see change happen in\nyour lifetime.  A lot of the change I've seen is fragmentation.  US\npolitics is much more polarized than it used to be.  Culturally we\nhave ever less common ground. The creative class flocks to a handful\nof happy cities, abandoning the rest.  And increasing economic\ninequality means the spread between rich and poor is growing too.\nI'd like to propose a hypothesis: that all these trends are instances\nof the same phenomenon.  And more...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/re.html</guid>\n      <pubDate>Fri, 01 Jan 2016 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Economic Inequality</title>\n      <link>https://paulgraham.com/ineq.html</link>\n      <description>Since the 1970s, economic inequality in the US has increased\ndramatically. And in particular, the rich have gotten a lot richer.\nNearly everyone who writes about the topic says that economic inequality\nshould be decreased.I'm interested in this question because I was one of the founders of\na company called Y Combinator that helps people start startups.\nAlmost by definition, if a startup succeeds, its founders become\nrich. Which means by helping startup founders I've been helping to\nincrease econ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ineq.html</guid>\n      <pubDate>Fri, 01 Jan 2016 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Life is Short</title>\n      <link>https://paulgraham.com/vb.html</link>\n      <description>Life is short, as everyone knows. When I was a kid I used to wonder\nabout this. Is life actually short, or are we really complaining\nabout its finiteness?  Would we be just as likely to feel life was\nshort if we lived 10 times as long?Since there didn't seem any way to answer this question, I stopped\nwondering about it.  Then I had kids.  That gave me a way to answer\nthe question, and the answer is that life actually is short.Having kids showed me how to convert a continuous quantity, time,\ninto...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/vb.html</guid>\n      <pubDate>Fri, 01 Jan 2016 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Make Pittsburgh a Startup Hub</title>\n      <link>https://paulgraham.com/pgh.html</link>\n      <description>(This is a talk I gave at an event called Opt412 in Pittsburgh.\nMuch of it will apply to other towns.  But not all, because\nas I say in the talk, Pittsburgh has some important advantages over\nmost would-be startup hubs.)What would it take to make Pittsburgh into a startup hub, like\nSilicon Valley?  I understand Pittsburgh pretty well,\nbecause I grew up here, in Monroeville. And I understand Silicon\nValley pretty well because that's where I live now.  Could you get\nthat kind of startup ecosystem ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/pgh.html</guid>\n      <pubDate>Fri, 01 Apr 2016 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Risk of Discovery</title>\n      <link>https://paulgraham.com/disc.html</link>\n      <description>Because biographies of famous scientists tend to \nedit out their mistakes, we underestimate the \ndegree of risk they were willing to take.\nAnd because anything a famous scientist did that\nwasn't a mistake has probably now become the\nconventional wisdom, those choices don't\nseem risky either.Biographies of Newton, for example, understandably focus\nmore on physics than alchemy or theology.\nThe impression we get is that his unerring judgment\nled him straight to truths no one else had noticed.\nHow t...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/disc.html</guid>\n      <pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Charisma / Power</title>\n      <link>https://paulgraham.com/pow.html</link>\n      <description>People who are powerful but uncharismatic will tend to be disliked.\nTheir power makes them a target for criticism that they don't have\nthe charisma to disarm. That was Hillary Clinton's problem. It also\ntends to be a problem for any CEO who is more of a builder than a\nschmoozer. And yet the builder-type CEO is (like Hillary) probably\nthe best person for the job.I don't think there is any solution to this problem. It's human\nnature. The best we can do is to recognize that it's happening, and\nto u...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/pow.html</guid>\n      <pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>General and Surprising</title>\n      <link>https://paulgraham.com/sun.html</link>\n      <description>The most valuable insights are both general and surprising. \nF = ma for example. But general and surprising is a hard\ncombination to achieve. That territory tends to be picked\nclean, precisely because those insights are so valuable.Ordinarily, the best that people can do is one without the\nother: either surprising without being general (e.g.\ngossip), or general without being surprising (e.g.\nplatitudes).Where things get interesting is the moderately valuable\ninsights.  You get those from small a...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/sun.html</guid>\n      <pubDate>Fri, 01 Sep 2017 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Bus Ticket Theory of Genius</title>\n      <link>https://paulgraham.com/genius.html</link>\n      <description>Everyone knows that to do great work you need both natural ability\nand determination. But there's a third ingredient that's not as\nwell understood: an obsessive interest in a particular topic.To explain this point I need to burn my reputation with some group\nof people, and I'm going to choose bus ticket collectors.  There\nare people who collect old bus tickets. Like many collectors, they\nhave an obsessive interest in the minutiae of what they collect.\nThey can keep track of distinctions between ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/genius.html</guid>\n      <pubDate>Fri, 01 Nov 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Novelty and Heresy</title>\n      <link>https://paulgraham.com/nov.html</link>\n      <description>If you discover something new, there's a significant chance you'll be\naccused of some form of heresy.To discover new things, you have\nto work on ideas that are good but non-obvious; if an idea is\nobviously good, other people are probably already working on it.\nOne common way for a good idea to be non-obvious is for it to be hidden in the\nshadow of some mistaken assumption that people are very attached to.\nBut anything you discover from working on such an idea will tend to\ncontradict the mistaken...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/nov.html</guid>\n      <pubDate>Fri, 01 Nov 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Lesson to Unlearn</title>\n      <link>https://paulgraham.com/lesson.html</link>\n      <description>The most damaging thing you learned in school wasn't something you\nlearned in any specific class. It was learning to get good grades.When I was in college, a particularly earnest philosophy grad student\nonce told me that he never cared what grade he got in a class, only\nwhat he learned in it. This stuck in my mind because it was the\nonly time I ever heard anyone say such a thing.For me, as for most students, the measurement of what I was learning\ncompletely dominated actual learning in college. ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/lesson.html</guid>\n      <pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Having Kids</title>\n      <link>https://paulgraham.com/kids.html</link>\n      <description>Before I had kids, I was afraid of having kids. Up to that point I\nfelt about kids the way the young Augustine felt about living\nvirtuously. I'd have been sad to think I'd never have children.\nBut did I want them now? No.If I had kids, I'd become a parent, and parents, as I'd known since\nI was a kid, were uncool. They were dull and responsible and had\nno fun.  And while it's not surprising that kids would believe that,\nto be honest I hadn't seen much as an adult to change my mind.\nWhenever I'd n...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/kids.html</guid>\n      <pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Fashionable Problems</title>\n      <link>https://paulgraham.com/fp.html</link>\n      <description>I've seen the same pattern in many different fields: even though\nlots of people have worked hard in the field, only a small fraction\nof the space of possibilities has been explored, because they've\nall worked on similar things.Even the smartest, most imaginative people are surprisingly\nconservative when deciding what to work on. People who would never\ndream of being fashionable in any other way get sucked into working\non fashionable problems.If you want to try working on unfashionable problems, ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/fp.html</guid>\n      <pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Two Kinds of Moderate</title>\n      <link>https://paulgraham.com/mod.html</link>\n      <description>There are two distinct ways to be politically moderate: on purpose\nand by accident. Intentional moderates are trimmers, deliberately\nchoosing a position mid-way between the extremes of right and left.\nAccidental moderates end up in the middle, on average, because they\nmake up their own minds about each question, and the far right and\nfar left are roughly equally wrong.You can distinguish intentional from accidental moderates by the\ndistribution of their opinions. If the far left opinion on some\n...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/mod.html</guid>\n      <pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Haters</title>\n      <link>https://paulgraham.com/fh.html</link>\n      <description>(I originally intended this for startup founders, who are often\nsurprised by the attention they get as their companies grow, but\nit applies equally to anyone who becomes famous.)If you become sufficiently famous, you'll acquire some fans who\nlike you too much. These people are sometimes called \"fanboys,\" and\nthough I dislike that term, I'm going to have to use it here.  We\nneed some word for them, because this is a distinct phenomenon from\nsomeone simply liking your work.A fanboy is obsessive an...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/fh.html</guid>\n      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Being a Noob</title>\n      <link>https://paulgraham.com/noob.html</link>\n      <description>When I was young, I thought old people had everything figured out.\nNow that I'm old, I know this isn't true.I constantly feel like a noob. It seems like I'm always talking to\nsome startup working in a new field I know nothing about, or reading\na book about a topic I don't understand well enough, or visiting some new\ncountry where I don't know how things work.It's not pleasant to feel like a noob. And the word \"noob\" is\ncertainly not a compliment. And yet today I realized something\nencouraging ab...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/noob.html</guid>\n      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Write Usefully</title>\n      <link>https://paulgraham.com/useful.html</link>\n      <description>What should an essay be? Many people would say persuasive. That's\nwhat a lot of us were taught essays should be. But I think we can\naim for something more ambitious: that an essay should be useful.To start with, that means it should be correct. But it's not enough\nmerely to be correct. It's easy to make a statement correct by\nmaking it vague. That's a common flaw in academic writing, for\nexample. If you know nothing at all about an issue, you can't go\nwrong by saying that the issue is a complex ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/useful.html</guid>\n      <pubDate>Sat, 01 Feb 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Coronavirus and Credibility</title>\n      <link>https://paulgraham.com/cred.html</link>\n      <description>I recently saw a \nvideo \nof TV journalists and politicians confidently\nsaying that the coronavirus would be no worse than the flu. What\nstruck me about it was not just how mistaken they seemed, but how\ndaring. How could they feel safe saying such things?The answer, I realized, is that they didn't think they could get\ncaught. They didn't realize there was any danger in making false\npredictions. These people constantly make false predictions, and\nget away with it, because the things they make pred...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/cred.html</guid>\n      <pubDate>Wed, 01 Apr 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Orthodox Privilege</title>\n      <link>https://paulgraham.com/orth.html</link>\n      <description>\"Few people are capable of expressing with equanimity opinions which differ from the prejudices of their social environment. Most people are even incapable of forming such opinions.\" Einstein\n\n\n\nThere has been a lot of talk about privilege lately. Although the\nconcept is overused, there is something to it, and in particular\nto the idea that privilege makes you blind  that you can't see\nthings that are visible to someone whose life is very different\nfrom yours.But one of the most pervasive exam...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/orth.html</guid>\n      <pubDate>Wed, 01 Jul 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Four Quadrants of Conformism</title>\n      <link>https://paulgraham.com/conformism.html</link>\n      <description>One of the most revealing ways to classify people is by the degree\nand aggressiveness of their conformism. Imagine a Cartesian coordinate\nsystem whose horizontal axis runs from conventional-minded on the\nleft to independent-minded on the right, and whose vertical axis\nruns from passive at the bottom to aggressive at the top. The\nresulting four quadrants define four types of people. Starting in\nthe upper left and going counter-clockwise: aggressively\nconventional-minded, passively conventional-mi...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/conformism.html</guid>\n      <pubDate>Wed, 01 Jul 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Modeling a Wealth Tax</title>\n      <link>https://paulgraham.com/wtax.html</link>\n      <description>Some politicians are proposing to introduce wealth taxes in addition\nto income and capital gains taxes. Let's try modeling the effects of various levels\nof wealth tax to see what they would mean in practice for a startup\nfounder.Suppose you start a successful startup in your twenties, and then\nlive for another 60 years. How much of your stock will a wealth tax\nconsume?If the wealth tax applies to all your assets, it's easy to\ncalculate its effect. A wealth tax of 1% means you get to keep\n99% of ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/wtax.html</guid>\n      <pubDate>Sat, 01 Aug 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Early Work</title>\n      <link>https://paulgraham.com/early.html</link>\n      <description>One of the biggest things holding people back from doing great work\nis the fear of making something lame. And this fear is not an\nirrational one. Many great projects go through a stage early on\nwhere they don't seem very impressive, even to their creators. You\nhave to push through this stage to reach the great work that lies\nbeyond. But many people don't. Most people don't even reach the\nstage of making something they're embarrassed by, let alone continue\npast it. They're too frightened even to ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/early.html</guid>\n      <pubDate>Thu, 01 Oct 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Think for Yourself</title>\n      <link>https://paulgraham.com/think.html</link>\n      <description>There are some kinds of work that you can't do well without thinking\ndifferently from your peers. To be a successful scientist, for\nexample, it's not enough just to be correct. Your ideas have to be\nboth correct and novel. You can't publish papers saying things other\npeople already know. You need to say things no one else has realized\nyet.The same is true for investors. It's not enough for a public market\ninvestor to predict correctly how a company will do. If a lot of\nother people make the same...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/think.html</guid>\n      <pubDate>Sun, 01 Nov 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Airbnbs</title>\n      <link>https://paulgraham.com/airbnbs.html</link>\n      <description>To celebrate Airbnb's IPO and to help future founders, I thought\nit might be useful to explain what was special about Airbnb.What was special about the Airbnbs was how earnest they were. They\ndid nothing half-way, and we could sense this even in the interview.\nSometimes after we interviewed a startup we'd be uncertain what to\ndo, and have to talk it over. Other times we'd just look at one\nanother and smile. The Airbnbs' interview was that kind. We didn't\neven like the idea that much. Nor did use...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/airbnbs.html</guid>\n      <pubDate>Thu, 01 Jan 2009 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Billionaires Build</title>\n      <link>https://paulgraham.com/ace.html</link>\n      <description>As I was deciding what to write about next, I was surprised to find\nthat two separate essays I'd been planning to write were actually\nthe same.The first is about how to ace your Y Combinator interview. There\nhas been so much nonsense written about this topic that I've been\nmeaning for years to write something telling founders the truth.The second is about something politicians sometimes say  that the\nonly way to become a billionaire is by exploiting people  and why\nthis is mistaken.Keep readin...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/ace.html</guid>\n      <pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Earnestness</title>\n      <link>https://paulgraham.com/earnest.html</link>\n      <description>Jessica and I have certain words that have special significance\nwhen we're talking about startups. The highest compliment we can\npay to founders is to describe them as \"earnest.\" This is not by\nitself a guarantee of success. You could be earnest but incapable.\nBut when founders are both formidable (another of our words) and\nearnest, they're as close to unstoppable as you get.Earnestness sounds like a boring, even Victorian virtue. It seems\na bit of an anachronism that people in Silicon Valley wo...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/earnest.html</guid>\n      <pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What I Worked On</title>\n      <link>https://paulgraham.com/worked.html</link>\n      <description>Before college the two main things I worked on, outside of school,\nwere writing and programming. I didn't write essays. I wrote what\nbeginning writers were supposed to write then, and probably still\nare: short stories. My stories were awful. They had hardly any plot,\njust characters with strong feelings, which I imagined made them\ndeep.The first programs I tried writing were on the IBM 1401 that our\nschool district used for what was then called \"data processing.\"\nThis was in 9th grade, so I was ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/worked.html</guid>\n      <pubDate>Mon, 01 Jan 1996 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Donate Unrestricted</title>\n      <link>https://paulgraham.com/donate.html</link>\n      <description>The secret curse of the nonprofit world is restricted donations.\nIf you haven't been involved with nonprofits, you may never have\nheard this phrase before. But if you have been, it probably made\nyou wince.Restricted donations mean donations where the donor limits what can\nbe done with the money. This is common with big donations, perhaps\nthe default. And yet it's usually a bad idea. Usually the way the\ndonor wants the money spent is not the way the nonprofit would have\nchosen. Otherwise there wo...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/donate.html</guid>\n      <pubDate>Mon, 01 Mar 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Write Simply</title>\n      <link>https://paulgraham.com/simply.html</link>\n      <description>I try to write using ordinary words and simple sentences.That kind of writing is easier to read, and the easier something\nis to read, the more deeply readers will engage with it. The less\nenergy they expend on your prose, the more they'll have left for\nyour ideas.And the further they'll read. Most readers' energy tends to flag\npart way through an article or essay. If the friction of reading\nis low enough, more keep going till the end.There's an Italian dish called saltimbocca, which means \"leap\n...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/simply.html</guid>\n      <pubDate>Mon, 01 Mar 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How People Get Rich Now</title>\n      <link>https://paulgraham.com/richnow.html</link>\n      <description>Every year since 1982, Forbes magazine has published a list of the\nrichest Americans. If we compare the 100 richest people in 1982 to\nthe 100 richest in 2020, we notice some big differences.In 1982 the most common source of wealth was inheritance. Of the\n100 richest people, 60 inherited from an ancestor. There were 10\ndu Pont heirs alone. By 2020 the number of heirs had been cut in\nhalf, accounting for only 27 of the biggest 100 fortunes.Why would the percentage of heirs decrease? Not because in...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/richnow.html</guid>\n      <pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Real Reason to End the Death Penalty</title>\n      <link>https://paulgraham.com/real.html</link>\n      <description>When intellectuals talk about the death penalty, they talk about\nthings like whether it's permissible for the state to take someone's\nlife, whether the death penalty acts as a deterrent, and whether\nmore death sentences are given to some groups than others. But in\npractice the debate about the death penalty is not about whether\nit's ok to kill murderers. It's about whether it's ok to kill\ninnocent people, because at least 4% of people on death row are\ninnocent.When I was a kid I imagined that it...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/real.html</guid>\n      <pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An NFT That Saves Lives</title>\n      <link>https://paulgraham.com/nft.html</link>\n      <description>Noora Health, a nonprofit I've \nsupported for years, just launched\na new NFT. It has a dramatic name, Save Thousands of Lives,\nbecause that's what the proceeds will do.Noora has been saving lives for 7 years. They run programs in\nhospitals in South Asia to teach new mothers how to take care of\ntheir babies once they get home. They're in 165 hospitals now. And\nbecause they know the numbers before and after they start at a new\nhospital, they can measure the impact they have. It is massive.\nFor eve...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/nft.html</guid>\n      <pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Crazy New Ideas</title>\n      <link>https://paulgraham.com/newideas.html</link>\n      <description>There's one kind of opinion I'd be very afraid to express publicly.\nIf someone I knew to be both a domain expert and a reasonable person\nproposed an idea that sounded preposterous, I'd be very reluctant\nto say \"That will never work.\"Anyone who has studied the history of ideas, and especially the\nhistory of science, knows that's how big things start. Someone\nproposes an idea that sounds crazy, most people dismiss it, then\nit gradually takes over the world.Most implausible-sounding ideas are in fa...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/newideas.html</guid>\n      <pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Fierce Nerds</title>\n      <link>https://paulgraham.com/fn.html</link>\n      <description>Most people think of nerds as quiet, diffident people. In ordinary\nsocial situations they are — as quiet and diffident as the star\nquarterback would be if he found himself in the middle of a physics\nsymposium. And for the same reason: they are fish out of water.\nBut the apparent diffidence of nerds is an illusion due to the fact\nthat when non-nerds observe them, it's usually in ordinary social\nsituations. In fact some nerds are quite fierce.The fierce nerds are a small but interesting group. The...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/fn.html</guid>\n      <pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Project of One's Own</title>\n      <link>https://paulgraham.com/own.html</link>\n      <description>A few days ago, on the way home from school, my nine year old son\ntold me he couldn't wait to get home to write more of the story he\nwas working on. This made me as happy as anything I've heard him\nsay — not just because he was excited about his story, but because\nhe'd discovered this way of working. Working on a project of your\nown is as different from ordinary work as skating is from walking.\nIt's more fun, but also much more productive.What proportion of great work has been done by people who...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/own.html</guid>\n      <pubDate>Tue, 01 Jun 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Work Hard</title>\n      <link>https://paulgraham.com/hwh.html</link>\n      <description>It might not seem there's much to learn about how to work hard.\nAnyone who's been to school knows what it entails, even if they\nchose not to do it. There are 12 year olds who work amazingly hard. And\nyet when I ask if I know more about working hard now than when I\nwas in school, the answer is definitely yes.One thing I know is that if you want to do great things, you'll\nhave to work very hard. I wasn't sure of that as a kid. Schoolwork\nvaried in difficulty; one didn't always have to work super h...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/hwh.html</guid>\n      <pubDate>Tue, 01 Jun 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weird Languages</title>\n      <link>https://paulgraham.com/weird.html</link>\n      <description>When people say that in their experience all programming languages\nare basically equivalent, they're making a statement not about\nlanguages but about the kind of programming they've done.99.5% of programming consists of gluing together calls to library\nfunctions. All popular languages are equally good at this. So one\ncan easily spend one's whole career operating in the intersection\nof popular programming languages.But the other .5% of programming is disproportionately interesting.\nIf you want to...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/weird.html</guid>\n      <pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Beyond Smart</title>\n      <link>https://paulgraham.com/smart.html</link>\n      <description>If you asked people what was special about Einstein, most would say\nthat he was really smart. Even the ones who tried to give you a\nmore sophisticated-sounding answer would probably think this first.\nTill a few years ago I would have given the same answer myself. But\nthat wasn't what was special about Einstein. What was special about\nhim was that he had important new ideas. Being very smart was a\nnecessary precondition for having those ideas, but the two are not\nidentical.It may seem a hair-spli...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/smart.html</guid>\n      <pubDate>Fri, 01 Oct 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Is There Such a Thing as Good Taste?</title>\n      <link>https://paulgraham.com/goodtaste.html</link>\n      <description>(This essay is derived from a talk at the Cambridge Union.)When I was a kid, I'd have said there wasn't. My father told me so.\nSome people like some things, and other people like other things,\nand who's to say who's right?It seemed so obvious that there was no such thing as good taste\nthat it was only through indirect evidence that I realized my father\nwas wrong. And that's what I'm going to give you here: a proof by\nreductio ad absurdum. If we start from the premise that there's no\nsuch thing a...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/goodtaste.html</guid>\n      <pubDate>Mon, 01 Nov 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Putting Ideas into Words</title>\n      <link>https://paulgraham.com/words.html</link>\n      <description>Writing about something, even something you know well, usually shows\nyou that you didn't know it as well as you thought. Putting ideas\ninto words is a severe test. The first words you choose are usually\nwrong; you have to rewrite sentences over and over  to\nget them exactly right. And your ideas won't just be imprecise, but\nincomplete too. Half the ideas that end up in an essay will be ones\nyou thought of while you were writing it. Indeed, that's why I write\nthem.Once you publish something, the ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/words.html</guid>\n      <pubDate>Tue, 01 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Heresy</title>\n      <link>https://paulgraham.com/heresy.html</link>\n      <description>One of the most surprising things I've witnessed in my lifetime is\nthe rebirth of the concept of heresy.In his excellent biography of Newton, Richard Westfall writes about the\nmoment when he was elected a fellow of Trinity College:\n\n  Supported comfortably, Newton was free to devote himself wholly\n  to whatever he chose. To remain on, he had only to avoid the three\n  unforgivable sins: crime, heresy, and marriage.\n  [1]\n\nThe first time I read that, in the 1990s, it sounded amusingly\nmedieval. Ho...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/heresy.html</guid>\n      <pubDate>Fri, 01 Apr 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What I've Learned from Users</title>\n      <link>https://paulgraham.com/users.html</link>\n      <description>I recently told applicants to Y Combinator that the best advice I\ncould give for getting in, per word, was \n\n  Explain what you've learned from users.\n\nThat tests a lot of things: whether you're paying attention to\nusers, how well you understand them, and even how much they need\nwhat you're making.Afterward I asked myself the same question. What have I learned\nfrom YC's users, the startups we've funded?The first thing that came to mind was that most startups have the\nsame problems. No two have e...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/users.html</guid>\n      <pubDate>Thu, 01 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Alien Truth</title>\n      <link>https://paulgraham.com/alien.html</link>\n      <description>If there were intelligent beings elsewhere in the universe, they'd\nshare certain truths in common with us. The truths of mathematics\nwould be the same, because they're true by definition. Ditto for\nthe truths of physics; the mass of a carbon atom would be the same\non their planet. But I think we'd share other truths with aliens\nbesides the truths of math and physics, and that it would be\nworthwhile to think about what these might be.For example, I think we'd share the principle that a controlled...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/alien.html</guid>\n      <pubDate>Sat, 01 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What You (Want to)* Want</title>\n      <link>https://paulgraham.com/want.html</link>\n      <description>Since I was about 9 I've been puzzled by the apparent contradiction\nbetween being made of matter that behaves in a predictable way, and\nthe feeling that I could choose to do whatever I wanted. At the\ntime I had a self-interested motive for exploring the question. At\nthat age (like most succeeding ages) I was always in trouble with\nthe authorities, and it seemed to me that there might possibly be\nsome way to get out of trouble by arguing that I wasn't responsible\nfor my actions. I gradually lost ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/want.html</guid>\n      <pubDate>Tue, 01 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Need to Read</title>\n      <link>https://paulgraham.com/read.html</link>\n      <description>In the science fiction books I read as a kid, reading had often\nbeen replaced by some more efficient way of acquiring knowledge.\nMysterious \"tapes\" would load it into one's brain like a program\nbeing loaded into a computer.That sort of thing is unlikely to happen anytime soon. Not just\nbecause it would be hard to build a replacement for reading, but\nbecause even if one existed, it would be insufficient. Reading about\nx doesn't just teach you about x; it also teaches you how to write.\n[1]Would th...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/read.html</guid>\n      <pubDate>Tue, 01 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Get New Ideas</title>\n      <link>https://paulgraham.com/getideas.html</link>\n      <description>(Someone fed my essays into GPT to make something that could answer\nquestions based on them, then asked it where good ideas come from.  The\nanswer was ok, but not what I would have said. This is what I would have said.)The way to get new ideas is to notice anomalies: what seems strange,\nor missing, or broken? You can see anomalies in everyday life (much\nof standup comedy is based on this), but the best place to look for\nthem is at the frontiers of knowledge.Knowledge grows fractally.\nFrom a dist...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/getideas.html</guid>\n      <pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Do Great Work</title>\n      <link>https://paulgraham.com/greatwork.html</link>\n      <description>If you collected lists of techniques for doing great work in a lot\nof different fields, what would the intersection look like? I decided\nto find out by making it.Partly my goal was to create a guide that could be used by someone\nworking in any field. But I was also curious about the shape of the\nintersection. And one thing this exercise shows is that it does\nhave a definite shape; it's not just a point labelled \"work hard.\"The following recipe assumes you're very ambitious.\nThe first step is to ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/greatwork.html</guid>\n      <pubDate>Sat, 01 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Superlinear Returns</title>\n      <link>https://paulgraham.com/superlinear.html</link>\n      <description>One of the most important things I didn't understand about the world\nwhen I was a child is the degree to which the returns for performance\nare superlinear.Teachers and coaches implicitly told us the returns were linear.\n\"You get out,\" I heard a thousand times, \"what you put in.\" They\nmeant well, but this is rarely true. If your product is only half\nas good as your competitor's, you don't get half as many customers.\nYou get no customers, and you go out of business.It's obviously true that the ret...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/superlinear.html</guid>\n      <pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Best Essay</title>\n      <link>https://paulgraham.com/best.html</link>\n      <description>Despite its title this isn't meant to be the best essay. My goal\nhere is to figure out what the best essay would be like.It would be well-written, but you can write well about any topic.\nWhat made it special would be what it was about.Obviously some topics would be better than others. It probably\nwouldn't be about this year's lipstick colors. But it wouldn't be\nvaporous talk about elevated themes either. A good essay has to be\nsurprising. It has to tell people something they don't already know.T...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/best.html</guid>\n      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Start Google</title>\n      <link>https://paulgraham.com/google.html</link>\n      <description>(This is a talk I gave to 14 and 15 year olds about what to do now\nif they might want to start a startup later. Lots of schools think\nthey should tell students something about startups. This is what I\nthink they should tell them.)Most of you probably think that when you're released into the\nso-called real world you'll eventually have to get some kind of\njob. That's not true, and today I'm going to talk about a trick you\ncan use to avoid ever having to get a job.The trick is to start your own com...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/google.html</guid>\n      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Reddits</title>\n      <link>https://paulgraham.com/reddits.html</link>\n      <description>I met the Reddits before we even started Y Combinator. In fact they\nwere one of the reasons we started it.YC grew out of a talk I gave to the Harvard Computer Society (the\nundergrad computer club) about how to start a startup. Everyone\nelse in the audience was probably local, but Steve and Alexis came\nup on the train from the University of Virginia, where they were\nseniors. Since they'd come so far I agreed to meet them for coffee.\nThey told me about the startup idea we'd later fund them to drop...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/reddits.html</guid>\n      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Right Kind of Stubborn</title>\n      <link>https://paulgraham.com/persistence.html</link>\n      <description>Successful people tend to be persistent. New ideas often don't work\nat first, but they're not deterred. They keep trying and eventually\nfind something that does.Mere obstinacy, on the other hand, is a recipe for failure. Obstinate\npeople are so annoying. They won't listen. They beat their heads\nagainst a wall and get nowhere.But is there any real difference between these two cases? Are\npersistent and obstinate people actually behaving differently? Or\nare they doing the same thing, and we just la...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/persistence.html</guid>\n      <pubDate>Mon, 01 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Founder Mode</title>\n      <link>https://paulgraham.com/foundermode.html</link>\n      <description>At a YC event last week Brian Chesky gave a talk that everyone who\nwas there will remember. Most founders I talked to afterward said\nit was the best they'd ever heard. Ron Conway, for the first time\nin his life, forgot to take notes. I'm not going to try to reproduce\nit here. Instead I want to talk about a question it raised.The theme of Brian's talk was that the conventional wisdom about\nhow to run larger companies is mistaken. As Airbnb grew, well-meaning\npeople advised him that he had to run ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/foundermode.html</guid>\n      <pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>When To Do What You Love</title>\n      <link>https://paulgraham.com/when.html</link>\n      <description>There's some debate about whether it's a good idea to \"follow your\npassion.\" In fact the question is impossible to answer with a simple\nyes or no. Sometimes you should and sometimes you shouldn't, but\nthe border between should and shouldn't is very complicated. The\nonly way to give a general answer is to trace it.When people talk about this question, there's always an implicit\n\"instead of.\" All other things being equal, why wouldn't you work\non what interests you the most? So even raising the qu...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/when.html</guid>\n      <pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Writes and Write-Nots</title>\n      <link>https://paulgraham.com/writes.html</link>\n      <description>I'm usually reluctant to make predictions about technology, but I\nfeel fairly confident about this one: in a couple decades there\nwon't be many people who can write.One of the strangest things you learn if you're a writer is how\nmany people have trouble writing. Doctors know how many people have\na mole they're worried about; people who are good at setting up\ncomputers know how many people aren't; writers know how many people\nneed help writing.The reason so many people have trouble writing is tha...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/writes.html</guid>\n      <pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Origins of Wokeness</title>\n      <link>https://paulgraham.com/woke.html</link>\n      <description>The word \"prig\" isn't very common now, but if you look up\nthe definition, it will sound familiar. Google's isn't bad:\n\n  A self-righteously moralistic person who behaves as if\n  superior to others.\n\nThis sense of the word originated in the 18th century, and\nits age is an important clue: it shows that although\nwokeness is a comparatively recent phenomenon, it's an\ninstance of a much older one.There's a certain kind of person who's attracted to a\nshallow, exacting kind of moral purity, and who dem...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/woke.html</guid>\n      <pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What to Do</title>\n      <link>https://paulgraham.com/do.html</link>\n      <description>What should one do? That may seem a strange question, but it's not\nmeaningless or unanswerable. It's the sort of question kids ask\nbefore they learn not to ask big questions. I only came across it\nmyself in the process of investigating something else. But once I\ndid, I thought I should at least try to answer it.So what should one do? One should help people, and take care of\nthe world. Those two are obvious. But is there anything else? When\nI ask that, the answer that pops up is Make good new thi...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/do.html</guid>\n      <pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Good Writing</title>\n      <link>https://paulgraham.com/goodwriting.html</link>\n      <description>There are two senses in which writing can be good: it can\nsound good, and the ideas can be right. It can have nice,\nflowing sentences, and it can draw correct conclusions\nabout important things. It might seem as if these two\nkinds of good would be unrelated, like the speed of a car\nand the color it's painted. And yet I don't think they\nare. I think writing that sounds good is more likely to\nbe right.So here we have the most exciting kind of idea: one that\nseems both preposterous and true. Let's ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/goodwriting.html</guid>\n      <pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Shape of the Essay Field</title>\n      <link>https://paulgraham.com/field.html</link>\n      <description>An essay has to tell people something they don't already know. But\nthere are three different reasons people might not know something,\nand they yield three very different kinds of essays.One reason people won't know something is if it's not important to\nknow. That doesn't mean it will make a bad essay. For example, you\nmight write a good essay about a particular model of car. Readers\nwould learn something from it. It would add to their picture of the\nworld. For a handful of readers it might even ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/field.html</guid>\n      <pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Brand Age</title>\n      <link>https://paulgraham.com/brandage.html</link>\n      <description>In the early 1970s disaster struck the Swiss watch industry. Now\npeople call it the quartz crisis, but in fact it was a compound of\nthree separate disasters that all happened at about the same time.The first was competition from Japan. The Swiss had been watching\nthe Japanese in the rear view mirror all through the 1960s, and\nthey'd been improving at an alarming rate. But even so the Swiss\nwere surprised in 1968 when the Japanese swept all the top spots\nfor mechanical watches at the Geneva Obser...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/brandage.html</guid>\n      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Lose Time and Money</title>\n      <link>https://paulgraham.com/selfindulgence.html</link>\n      <description>When we sold our startup in 1998 I suddenly got a lot of money.  I\nnow had to think about something I hadn't had to think about before:\nhow not to lose it.   I knew it was possible to go from rich to\npoor, just as it was possible to go from poor to rich.  But while\nI'd spent a lot of the past several years studying the paths from\npoor to rich, \nI knew practically nothing about the paths from rich\nto poor.  Now, in order to avoid them, I had to learn where they\nwere.So I started to pay attention ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/selfindulgence.html</guid>\n      <pubDate>Thu, 01 Jul 2010 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Having Kids</title>\n      <link>https://paulgraham.com/kids.html</link>\n      <description>Before I had kids, I was afraid of having kids. Up to that point I\nfelt about kids the way the young Augustine felt about living\nvirtuously. I'd have been sad to think I'd never have children.\nBut did I want them now? No.If I had kids, I'd become a parent, and parents, as I'd known since\nI was a kid, were uncool. They were dull and responsible and had\nno fun.  And while it's not surprising that kids would believe that,\nto be honest I hadn't seen much as an adult to change my mind.\nWhenever I'd n...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/kids.html</guid>\n      <pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Do Great Work</title>\n      <link>https://paulgraham.com/greatwork.html</link>\n      <description>If you collected lists of techniques for doing great work in a lot\nof different fields, what would the intersection look like? I decided\nto find out by making it.Partly my goal was to create a guide that could be used by someone\nworking in any field. But I was also curious about the shape of the\nintersection. And one thing this exercise shows is that it does\nhave a definite shape; it's not just a point labelled \"work hard.\"The following recipe assumes you're very ambitious.\nThe first step is to ...</description>\n      <guid isPermaLink=\"false\">https://paulgraham.com/greatwork.html</guid>\n      <pubDate>Sat, 01 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_perplexity_hub.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Perplexity Blog</title>\n    <link>https://www.perplexity.ai/hub</link>\n    <description>Updates from Perplexity AI</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_perplexity_hub.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <image>\n      <url>https://www.perplexity.ai/favicon.ico</url>\n      <title>Perplexity Blog</title>\n      <link>https://www.perplexity.ai/hub</link>\n    </image>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 11:22:00 +0000</lastBuildDate>\n    <item>\n      <title>Personal Computer is Available to All Mac Users</title>\n      <link>https://www.perplexity.ai/hub/blog/personal-computer-is-available-to-all-mac-users</link>\n      <description>Personal Computer is Available to All Mac Users</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/personal-computer-is-available-to-all-mac-users</guid>\n      <category>Company</category>\n      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Finance Search in the Agent API</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-finance-search-in-the-agent-api</link>\n      <description>Introducing Finance Search in the Agent API</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-finance-search-in-the-agent-api</guid>\n      <category>Company</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Premium Health Sources</title>\n      <link>https://www.perplexity.ai/hub/blog/announcing-premium-health-sources</link>\n      <description>Announcing Premium Health Sources</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/announcing-premium-health-sources</guid>\n      <category>Company</category>\n      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Computer for Professional Finance</title>\n      <link>https://www.perplexity.ai/hub/blog/computer-for-professional-finance</link>\n      <description>Computer for Professional Finance</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/computer-for-professional-finance</guid>\n      <category>Company</category>\n      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Computer in Teams is here</title>\n      <link>https://www.perplexity.ai/hub/blog/computer-in-teams-is-here</link>\n      <description>Computer in Teams is here</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/computer-in-teams-is-here</guid>\n      <category>Updates</category>\n      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Computer at Work</title>\n      <link>https://www.perplexity.ai/hub/blog/computer-at-work</link>\n      <description>Computer at Work</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/computer-at-work</guid>\n      <category>Company</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Perplexity Builds Accuracy into Frontier AI</title>\n      <link>https://www.perplexity.ai/hub/blog/how-perplexity-builds-accuracy-into-frontier-ai</link>\n      <description>How Perplexity Builds Accuracy into Frontier AI</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/how-perplexity-builds-accuracy-into-frontier-ai</guid>\n      <category>Research</category>\n      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Computer is Now Your Personal CFO</title>\n      <link>https://www.perplexity.ai/hub/blog/plaid-integration-provides-full-view-of-personal-finances</link>\n      <description>Computer is Now Your Personal CFO</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/plaid-integration-provides-full-view-of-personal-finances</guid>\n      <category>Updates</category>\n      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Computer for Taxes</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-computer-for-taxes</link>\n      <description>Introducing Computer for Taxes</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-computer-for-taxes</guid>\n      <category>Company</category>\n      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Computer in Slack: From Shared Context to Finished Work</title>\n      <link>https://www.perplexity.ai/hub/blog/computer-in-slack-from-shared-context-to-finished-work</link>\n      <description>Computer in Slack: From Shared Context to Finished Work</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/computer-in-slack-from-shared-context-to-finished-work</guid>\n      <category>Company</category>\n      <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing the Secure Intelligence Institute</title>\n      <link>https://www.perplexity.ai/hub/blog/announcing-the-secure-intelligence-institute</link>\n      <description>Announcing the Secure Intelligence Institute</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/announcing-the-secure-intelligence-institute</guid>\n      <category>Company</category>\n      <pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity APIs Power AI Browsing on Samsung Devices</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-apis-power-ai-browsing-on-samsung-devices</link>\n      <description>Perplexity APIs Power AI Browsing on Samsung Devices</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-apis-power-ai-browsing-on-samsung-devices</guid>\n      <category>Company</category>\n      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity Health</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-health</link>\n      <description>Introducing Perplexity Health</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-health</guid>\n      <category>Company</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Perplexity Health Advisory Board</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-the-perplexity-health-advisory-board</link>\n      <description>Introducing the Perplexity Health Advisory Board</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-the-perplexity-health-advisory-board</guid>\n      <category>Company</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Comet is Now Available on iOS</title>\n      <link>https://www.perplexity.ai/hub/blog/meet-comet-for-ios</link>\n      <description>Comet is Now Available on iOS</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/meet-comet-for-ios</guid>\n      <category>Updates</category>\n      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Comet Enterprise is here</title>\n      <link>https://www.perplexity.ai/hub/blog/comet-enterprise-is-here</link>\n      <description>Comet Enterprise is here</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/comet-enterprise-is-here</guid>\n      <category>Enterprise</category>\n      <pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity Joins the NVIDIA Nemotron Coalition</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-joins-the-nvidia-nemotron-coalition</link>\n      <description>Perplexity Joins the NVIDIA Nemotron Coalition</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-joins-the-nvidia-nemotron-coalition</guid>\n      <category>Company</category>\n      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Computer for Enterprise</title>\n      <link>https://www.perplexity.ai/hub/blog/computer-for-enterprise</link>\n      <description>Computer for Enterprise</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/computer-for-enterprise</guid>\n      <category>Enterprise</category>\n      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Premium Sources</title>\n      <link>https://www.perplexity.ai/hub/blog/announcing-premium-sources</link>\n      <description>Announcing Premium Sources</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/announcing-premium-sources</guid>\n      <category>Company</category>\n      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Everything is Computer</title>\n      <link>https://www.perplexity.ai/hub/blog/everything-is-computer</link>\n      <description>Everything is Computer</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/everything-is-computer</guid>\n      <category>Company</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Agent API: A Managed Runtime for Agentic Workflows</title>\n      <link>https://www.perplexity.ai/hub/blog/agent-api-a-managed-runtime-for-agentic-workflows</link>\n      <description>Agent API: A Managed Runtime for Agentic Workflows</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/agent-api-a-managed-runtime-for-agentic-workflows</guid>\n      <category>Developers</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Search API: Better Extraction, Dynamic Benchmarks</title>\n      <link>https://www.perplexity.ai/hub/blog/search-api-better-extraction-dynamic-benchmarks</link>\n      <description>Search API: Better Extraction, Dynamic Benchmarks</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/search-api-better-extraction-dynamic-benchmarks</guid>\n      <category>Developers</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sandbox API: Isolated Code Execution for AI Agents</title>\n      <link>https://www.perplexity.ai/hub/blog/sandbox-api-isolated-code-execution-for-ai-agents</link>\n      <description>Sandbox API: Isolated Code Execution for AI Agents</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/sandbox-api-isolated-code-execution-for-ai-agents</guid>\n      <category>Developers</category>\n      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The AI is the Computer</title>\n      <link>https://www.perplexity.ai/hub/blog/the-ai-is-the-computer</link>\n      <description>The AI is the Computer</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/the-ai-is-the-computer</guid>\n      <category>Company</category>\n      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity APIs deliver powerful AI to the world’s largest Android device maker</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-apis-deliver-powerful-ai-to-the-world’s-largest-android-device-maker</link>\n      <description>Perplexity APIs deliver powerful AI to the world’s largest Android device maker</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-apis-deliver-powerful-ai-to-the-world’s-largest-android-device-maker</guid>\n      <category>Company</category>\n      <pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity Computer</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-computer</link>\n      <description>Introducing Perplexity Computer</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-computer</guid>\n      <category>Company</category>\n      <pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How We Built Security Into Comet From Day One</title>\n      <link>https://www.perplexity.ai/hub/blog/how-we-built-security-into-comet-from-day-one</link>\n      <description>How We Built Security Into Comet From Day One</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/how-we-built-security-into-comet-from-day-one</guid>\n      <category>Security</category>\n      <pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Model Council</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-model-council</link>\n      <description>Introducing Model Council</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-model-council</guid>\n      <category>Company</category>\n      <pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inside the Rise of Enterprise AI Model-Switching</title>\n      <link>https://www.perplexity.ai/hub/blog/inside-the-rise-of-enterprise-ai-model-switching</link>\n      <description>Inside the Rise of Enterprise AI Model-Switching</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/inside-the-rise-of-enterprise-ai-model-switching</guid>\n      <category>Company</category>\n      <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Finish Your Annual Plan Faster With Perplexity</title>\n      <link>https://www.perplexity.ai/hub/blog/finish-your-annual-plan-faster-with-perplexity</link>\n      <description>Finish Your Annual Plan Faster With Perplexity</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/finish-your-annual-plan-faster-with-perplexity</guid>\n      <category>Enterprise</category>\n      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Happy 25th Birthday, Wikipedia</title>\n      <link>https://www.perplexity.ai/hub/blog/happy-25th-birthday-wikipedia</link>\n      <description>Happy 25th Birthday, Wikipedia</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/happy-25th-birthday-wikipedia</guid>\n      <category>Company</category>\n      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity for Public Safety Organizations</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-for-public-safety-organizations</link>\n      <description>Introducing Perplexity for Public Safety Organizations</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-for-public-safety-organizations</guid>\n      <category>Company</category>\n      <pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How People Use AI Agents</title>\n      <link>https://www.perplexity.ai/hub/blog/how-people-use-ai-agents</link>\n      <description>How People Use AI Agents</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/how-people-use-ai-agents</guid>\n      <category>Updates</category>\n      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity x Cristiano Ronaldo</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-x-cristiano-ronaldo</link>\n      <description>Perplexity x Cristiano Ronaldo</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-x-cristiano-ronaldo</guid>\n      <category>Company</category>\n      <pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building Safer AI Browsers with BrowseSafe</title>\n      <link>https://www.perplexity.ai/hub/blog/building-safer-ai-browsers-with-browsesafe</link>\n      <description>Building Safer AI Browsers with BrowseSafe</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/building-safer-ai-browsers-with-browsesafe</guid>\n      <category>Research</category>\n      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing AI assistants with memory</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-ai-assistants-with-memory</link>\n      <description>Introducing AI assistants with memory</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-ai-assistants-with-memory</guid>\n      <category>Company</category>\n      <pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Shopping That Puts You First</title>\n      <link>https://www.perplexity.ai/hub/blog/shopping-that-puts-you-first</link>\n      <description>Shopping That Puts You First</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/shopping-that-puts-you-first</guid>\n      <category>Company</category>\n      <pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Comet for Android is Here</title>\n      <link>https://www.perplexity.ai/hub/blog/comet-for-android-is-here</link>\n      <description>Comet for Android is Here</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/comet-for-android-is-here</guid>\n      <category>Updates</category>\n      <pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing our Partnership with the United States Government</title>\n      <link>https://www.perplexity.ai/hub/blog/announcing-our-partnership-with-the-united-states-government</link>\n      <description>Announcing our Partnership with the United States Government</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/announcing-our-partnership-with-the-united-states-government</guid>\n      <category>Company</category>\n      <pubDate>Wed, 19 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Comet Assistant puts you in control</title>\n      <link>https://www.perplexity.ai/hub/blog/comet-assistant-puts-you-in-control</link>\n      <description>Comet Assistant puts you in control</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/comet-assistant-puts-you-in-control</guid>\n      <category>Company</category>\n      <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The New Comet Assistant</title>\n      <link>https://www.perplexity.ai/hub/blog/the-new-comet-assistant</link>\n      <description>The New Comet Assistant</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/the-new-comet-assistant</guid>\n      <category>Company</category>\n      <pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bullying is Not Innovation</title>\n      <link>https://www.perplexity.ai/hub/blog/bullying-is-not-innovation</link>\n      <description>Bullying is Not Innovation</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/bullying-is-not-innovation</guid>\n      <category>Company</category>\n      <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Privacy Snapshot</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-privacy-snapshot</link>\n      <description>Introducing Privacy Snapshot</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-privacy-snapshot</guid>\n      <category>Company</category>\n      <pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity Patents: AI-Powered Patent Search for Everyone</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-patents</link>\n      <description>Introducing Perplexity Patents: AI-Powered Patent Search for Everyone</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-patents</guid>\n      <category>Company</category>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI at work: getting more done with less hype</title>\n      <link>https://www.perplexity.ai/hub/blog/ai-at-work-getting-more-done-with-less-hype</link>\n      <description>AI at work: getting more done with less hype</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/ai-at-work-getting-more-done-with-less-hype</guid>\n      <category>Company</category>\n      <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mitigating Prompt Injection in Comet</title>\n      <link>https://www.perplexity.ai/hub/blog/mitigating-prompt-injection-in-comet</link>\n      <description>Mitigating Prompt Injection in Comet</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/mitigating-prompt-injection-in-comet</guid>\n      <category>Company</category>\n      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Internet is Better on Comet</title>\n      <link>https://www.perplexity.ai/hub/blog/comet-is-now-available-to-everyone-worldwide</link>\n      <description>The Internet is Better on Comet</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/comet-is-now-available-to-everyone-worldwide</guid>\n      <category>Company</category>\n      <pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Comet Plus Launch Partners</title>\n      <link>https://www.perplexity.ai/hub/blog/announcing-comet-plus-launch-partners</link>\n      <description>Announcing Comet Plus Launch Partners</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/announcing-comet-plus-launch-partners</guid>\n      <category>Company</category>\n      <pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Perplexity Search API</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-the-perplexity-search-api</link>\n      <description>Introducing the Perplexity Search API</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-the-perplexity-search-api</guid>\n      <category>Developers</category>\n      <pubDate>Thu, 25 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Personal Assistant for Your Inbox</title>\n      <link>https://www.perplexity.ai/hub/blog/a-personal-assistant-for-your-inbox</link>\n      <description>A Personal Assistant for Your Inbox</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/a-personal-assistant-for-your-inbox</guid>\n      <category>Updates</category>\n      <pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Secure Credentials on Comet with 1Password</title>\n      <link>https://www.perplexity.ai/hub/blog/secure-credentials-on-comet-with-1password</link>\n      <description>Secure Credentials on Comet with 1Password</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/secure-credentials-on-comet-with-1password</guid>\n      <category>Company</category>\n      <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Power your organization’s full potential</title>\n      <link>https://www.perplexity.ai/hub/blog/power-your-organization-s-full-potential</link>\n      <description>Power your organization’s full potential</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/power-your-organization-s-full-potential</guid>\n      <category>Enterprise</category>\n      <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity for Government</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-for-government</link>\n      <description>Introducing Perplexity for Government</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-for-government</guid>\n      <category>Company</category>\n      <pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Comet Plus</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-comet-plus</link>\n      <description>Introducing Comet Plus</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-comet-plus</guid>\n      <category>Company</category>\n      <pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Intelligent Business: Introducing Comet for Enterprise Pro</title>\n      <link>https://www.perplexity.ai/hub/blog/the-intelligent-business-introducing-comet-for-enterprise-pro</link>\n      <description>The Intelligent Business: Introducing Comet for Enterprise Pro</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/the-intelligent-business-introducing-comet-for-enterprise-pro</guid>\n      <category>Company</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity x Theo Von’s This Past Weekend</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-x-theo-von-s-this-past-weekend</link>\n      <description>Perplexity x Theo Von’s This Past Weekend</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-x-theo-von-s-this-past-weekend</guid>\n      <category>Company</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-OSS on Day 0</title>\n      <link>https://www.perplexity.ai/hub/blog/gpt-oss-on-day-0</link>\n      <description>GPT-OSS on Day 0</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/gpt-oss-on-day-0</guid>\n      <category>Developers</category>\n      <pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Book a Table with Perplexity and OpenTable</title>\n      <link>https://www.perplexity.ai/hub/blog/book-a-table-with-perplexity-and-opentable</link>\n      <description>Book a Table with Perplexity and OpenTable</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/book-a-table-with-perplexity-and-opentable</guid>\n      <category>Company</category>\n      <pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Agents or Bots? Making Sense of AI on the Open Web</title>\n      <link>https://www.perplexity.ai/hub/blog/agents-or-bots-making-sense-of-ai-on-the-open-web</link>\n      <description>Agents or Bots? Making Sense of AI on the Open Web</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/agents-or-bots-making-sense-of-ai-on-the-open-web</guid>\n      <category>Company</category>\n      <pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Disaggregated Prefill and Decode</title>\n      <link>https://www.perplexity.ai/hub/blog/disaggregated-prefill-and-decode</link>\n      <description>Disaggregated Prefill and Decode</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/disaggregated-prefill-and-decode</guid>\n      <category>Developers</category>\n      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Welcoming Gannett to the Perplexity Publisher Program</title>\n      <link>https://www.perplexity.ai/hub/blog/welcoming-gannett-to-the-perplexity-publisher-program</link>\n      <description>Welcoming Gannett to the Perplexity Publisher Program</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/welcoming-gannett-to-the-perplexity-publisher-program</guid>\n      <category>Company</category>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Comet: Browse at the speed of thought</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-comet</link>\n      <description>Introducing Comet: Browse at the speed of thought</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-comet</guid>\n      <category>Company</category>\n      <pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity Max</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-max</link>\n      <description>Introducing Perplexity Max</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-max</guid>\n      <category>Company</category>\n      <pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing European AI Models to Global Audiences</title>\n      <link>https://www.perplexity.ai/hub/blog/bringing-european-ai-models-to-global-audiences</link>\n      <description>Bringing European AI Models to Global Audiences</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/bringing-european-ai-models-to-global-audiences</guid>\n      <category>Company</category>\n      <pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Accelerating Sonar Through Speculation</title>\n      <link>https://www.perplexity.ai/hub/blog/accelerating-sonar-through-speculation</link>\n      <description>Accelerating Sonar Through Speculation</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/accelerating-sonar-through-speculation</guid>\n      <category>Research</category>\n      <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Answers for Every Investor</title>\n      <link>https://www.perplexity.ai/hub/blog/answers-for-every-investor</link>\n      <description>Answers for Every Investor</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/answers-for-every-investor</guid>\n      <category>Updates</category>\n      <pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity Labs</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-labs</link>\n      <description>Introducing Perplexity Labs</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-labs</guid>\n      <category>Company</category>\n      <pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity x Lewis Hamilton</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-x-lewis-hamilton</link>\n      <description>Perplexity x Lewis Hamilton</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-x-lewis-hamilton</guid>\n      <category>Company</category>\n      <pubDate>Wed, 28 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>More Value In Every Answer: New Benefits For Every Level of Perplexity User</title>\n      <link>https://www.perplexity.ai/hub/blog/more-value-in-every-answer-new-benefits-for-every-level-of-perplexity-user</link>\n      <description>More Value In Every Answer: New Benefits For Every Level of Perplexity User</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/more-value-in-every-answer-new-benefits-for-every-level-of-perplexity-user</guid>\n      <category>Company</category>\n      <pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity and SAP: Turbocharging Joule with Real-Time Answers for Every Enterprise</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-and-sap-turbocharging-joule-with-real-time-answers-for-every-enterprise</link>\n      <description>Perplexity and SAP: Turbocharging Joule with Real-Time Answers for Every Enterprise</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-and-sap-turbocharging-joule-with-real-time-answers-for-every-enterprise</guid>\n      <category>Company</category>\n      <pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity Partners with Wiley to Power Educational AI Search</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-partners-with-wiley-to-power-educational-ai-search</link>\n      <description>Perplexity Partners with Wiley to Power Educational AI Search</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-partners-with-wiley-to-power-educational-ai-search</guid>\n      <category>Company</category>\n      <pubDate>Thu, 08 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>RL Training For Math Reasoning</title>\n      <link>https://www.perplexity.ai/hub/blog/rl-training-for-math-reasoning</link>\n      <description>RL Training For Math Reasoning</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/rl-training-for-math-reasoning</guid>\n      <category>Research</category>\n      <pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Our Global Partnership with Motorola</title>\n      <link>https://www.perplexity.ai/hub/blog/announcing-our-global-partnership-with-motorola</link>\n      <description>Announcing Our Global Partnership with Motorola</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/announcing-our-global-partnership-with-motorola</guid>\n      <category>Company</category>\n      <pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Choice is the Remedy</title>\n      <link>https://www.perplexity.ai/hub/blog/choice-is-the-remedy</link>\n      <description>Choice is the Remedy</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/choice-is-the-remedy</guid>\n      <category>Company</category>\n      <pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Lower Latency and Higher Throughput with Multi-node DeepSeek Deployment</title>\n      <link>https://www.perplexity.ai/hub/blog/lower-latency-and-higher-throughput-with-multi-node-deepseek-deployment</link>\n      <description>Lower Latency and Higher Throughput with Multi-node DeepSeek Deployment</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/lower-latency-and-higher-throughput-with-multi-node-deepseek-deployment</guid>\n      <category>Research</category>\n      <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Perplexity Enterprise Pro Keeps Your Data Secure</title>\n      <link>https://www.perplexity.ai/hub/blog/how-perplexity-enterprise-pro-keeps-your-data-secure</link>\n      <description>How Perplexity Enterprise Pro Keeps Your Data Secure</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/how-perplexity-enterprise-pro-keeps-your-data-secure</guid>\n      <category>Company</category>\n      <pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity Sonar Dominates New Search Arena Evaluation</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-sonar-dominates-new-search-arena-evolution</link>\n      <description>Perplexity Sonar Dominates New Search Arena Evaluation</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-sonar-dominates-new-search-arena-evolution</guid>\n      <category>Company</category>\n      <pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Efficient and Portable Mixture-of-Experts Communication</title>\n      <link>https://www.perplexity.ai/hub/blog/efficient-and-portable-mixture-of-experts-communication</link>\n      <description>Efficient and Portable Mixture-of-Experts Communication</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/efficient-and-portable-mixture-of-experts-communication</guid>\n      <category>Research</category>\n      <pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Rebuilding TikTok in America</title>\n      <link>https://www.perplexity.ai/hub/blog/rebuilding-tiktok-in-america</link>\n      <description>Rebuilding TikTok in America</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/rebuilding-tiktok-in-america</guid>\n      <category>Company</category>\n      <pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Improved Sonar Models: Industry Leading Performance at Lower Costs</title>\n      <link>https://www.perplexity.ai/hub/blog/new-sonar-search-modes-outperform-openai-in-cost-and-performance</link>\n      <description>Improved Sonar Models: Industry Leading Performance at Lower Costs</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/new-sonar-search-modes-outperform-openai-in-cost-and-performance</guid>\n      <category>Company</category>\n      <pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity Expands Partnership with SoftBank to Launch Enterprise Pro Japan</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-expands-partnership-with-softbank-to-launch-enterprise-pro-japan</link>\n      <description>Perplexity Expands Partnership with SoftBank to Launch Enterprise Pro Japan</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-expands-partnership-with-softbank-to-launch-enterprise-pro-japan</guid>\n      <category>Company</category>\n      <pubDate>Mon, 17 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Open-sourcing R1 1776</title>\n      <link>https://www.perplexity.ai/hub/blog/open-sourcing-r1-1776</link>\n      <description>Open-sourcing R1 1776</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/open-sourcing-r1-1776</guid>\n      <category>Research</category>\n      <pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity Deep Research</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-perplexity-deep-research</link>\n      <description>Introducing Perplexity Deep Research</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-perplexity-deep-research</guid>\n      <category>Company</category>\n      <pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meet New Sonar</title>\n      <link>https://www.perplexity.ai/hub/blog/meet-new-sonar</link>\n      <description>Meet New Sonar</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/meet-new-sonar</guid>\n      <category>Updates</category>\n      <pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>High-Performance GPU Memory Transfer on AWS Sagemaker Hyperpod</title>\n      <link>https://www.perplexity.ai/hub/blog/high-performance-gpu-memory-transfer-on-aws</link>\n      <description>High-Performance GPU Memory Transfer on AWS Sagemaker Hyperpod</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/high-performance-gpu-memory-transfer-on-aws</guid>\n      <category>Research</category>\n      <pubDate>Mon, 10 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Sonar Pro API by Perplexity</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-the-sonar-pro-api</link>\n      <description>Introducing the Sonar Pro API by Perplexity</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-the-sonar-pro-api</guid>\n      <category>Developers</category>\n      <pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity’s Fall 2024 Campus Strategist Program</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-s-2024-campus-strategist-program</link>\n      <description>Perplexity’s Fall 2024 Campus Strategist Program</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-s-2024-campus-strategist-program</guid>\n      <category>Company</category>\n      <pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Welcoming Carbon to the Perplexity Team</title>\n      <link>https://www.perplexity.ai/hub/blog/welcoming-carbon-to-the-perplexity-team</link>\n      <description>Welcoming Carbon to the Perplexity Team</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/welcoming-carbon-to-the-perplexity-team</guid>\n      <category>Company</category>\n      <pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity Expands Publisher Program with 15 New Media Partners</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-expands-publisher-program-with-15-new-media-partners</link>\n      <description>Perplexity Expands Publisher Program with 15 New Media Partners</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-expands-publisher-program-with-15-new-media-partners</guid>\n      <category>Company</category>\n      <pubDate>Thu, 05 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Research nonprofits with Charity Navigator on Perplexity</title>\n      <link>https://www.perplexity.ai/hub/blog/research-nonprofits-with-charity-navigator-on-perplexity</link>\n      <description>Research nonprofits with Charity Navigator on Perplexity</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/research-nonprofits-with-charity-navigator-on-perplexity</guid>\n      <category>Company</category>\n      <pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Shop like a Pro</title>\n      <link>https://www.perplexity.ai/hub/blog/shop-like-a-pro</link>\n      <description>Shop like a Pro</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/shop-like-a-pro</guid>\n      <category>Company</category>\n      <pubDate>Mon, 18 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why we’re experimenting with advertising</title>\n      <link>https://www.perplexity.ai/hub/blog/why-we-re-experimenting-with-advertising</link>\n      <description>Why we’re experimenting with advertising</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/why-we-re-experimenting-with-advertising</guid>\n      <category>Company</category>\n      <pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Election Information Hub</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-the-election-information-hub</link>\n      <description>Introducing the Election Information Hub</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-the-election-information-hub</guid>\n      <category>Company</category>\n      <pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>About the Dow Jones lawsuit</title>\n      <link>https://www.perplexity.ai/hub/blog/about-the-dow-jones-lawsuit</link>\n      <description>About the Dow Jones lawsuit</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/about-the-dow-jones-lawsuit</guid>\n      <category>Company</category>\n      <pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A student's guide to using Perplexity Spaces</title>\n      <link>https://www.perplexity.ai/hub/blog/a-student-s-guide-to-using-perplexity-spaces</link>\n      <description>A student's guide to using Perplexity Spaces</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/a-student-s-guide-to-using-perplexity-spaces</guid>\n      <category>Company</category>\n      <pubDate>Tue, 22 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Internal Knowledge Search and Spaces</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-internal-knowledge-search-and-spaces</link>\n      <description>Introducing Internal Knowledge Search and Spaces</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-internal-knowledge-search-and-spaces</guid>\n      <category>Company</category>\n      <pubDate>Thu, 17 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meet our First Channel Partners &amp; Data Integrators</title>\n      <link>https://www.perplexity.ai/hub/blog/meet-our-first-channel-partners-data-integrators</link>\n      <description>Meet our First Channel Partners &amp; Data Integrators</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/meet-our-first-channel-partners-data-integrators</guid>\n      <category>Company</category>\n      <pubDate>Thu, 17 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Getting started with Perplexity</title>\n      <link>https://www.perplexity.ai/hub/blog/getting-started-with-perplexity</link>\n      <description>Getting started with Perplexity</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/getting-started-with-perplexity</guid>\n      <category>Company</category>\n      <pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Redeem a free year of Perplexity Pro through Xfinity Rewards</title>\n      <link>https://www.perplexity.ai/hub/blog/redeem-a-free-year-of-perplexity-pro-through-xfinity-rewards</link>\n      <description>Redeem a free year of Perplexity Pro through Xfinity Rewards</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/redeem-a-free-year-of-perplexity-pro-through-xfinity-rewards</guid>\n      <category>Company</category>\n      <pubDate>Thu, 29 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity makes gift to Northwestern Medill to research AI and journalism</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-makes-gift-to-northwestern-medill-to-research-ai-and-journalism</link>\n      <description>Perplexity makes gift to Northwestern Medill to research AI and journalism</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-makes-gift-to-northwestern-medill-to-research-ai-and-journalism</guid>\n      <category>Company</category>\n      <pubDate>Thu, 08 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Eligible Uber One members can now unlock a complimentary full year of Perplexity Pro</title>\n      <link>https://www.perplexity.ai/hub/blog/eligible-uber-one-members-can-now-unlock-a-complimentary-full-year-of-perplexity-pro</link>\n      <description>Eligible Uber One members can now unlock a complimentary full year of Perplexity Pro</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/eligible-uber-one-members-can-now-unlock-a-complimentary-full-year-of-perplexity-pro</guid>\n      <category>Company</category>\n      <pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Perplexity Publishers’ Program</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-the-perplexity-publishers-program</link>\n      <description>Introducing the Perplexity Publishers’ Program</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-the-perplexity-publishers-program</guid>\n      <category>Company</category>\n      <pubDate>Tue, 30 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity collaborates with Amazon Web Services to launch Enterprise Pro</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-collaborates-with-amazon-web-services-to-launch-enterprise-pro</link>\n      <description>Perplexity collaborates with Amazon Web Services to launch Enterprise Pro</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-collaborates-with-amazon-web-services-to-launch-enterprise-pro</guid>\n      <category>Company</category>\n      <pubDate>Tue, 09 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pro Search: Upgraded for more advanced problem-solving</title>\n      <link>https://www.perplexity.ai/hub/blog/pro-search-upgraded-for-more-advanced-problem-solving</link>\n      <description>Pro Search: Upgraded for more advanced problem-solving</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/pro-search-upgraded-for-more-advanced-problem-solving</guid>\n      <category>Updates</category>\n      <pubDate>Tue, 02 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing Perplexity to education and not-for-profits</title>\n      <link>https://www.perplexity.ai/hub/blog/bringing-perplexity-to-education-and-not-for-profits</link>\n      <description>Bringing Perplexity to education and not-for-profits</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/bringing-perplexity-to-education-and-not-for-profits</guid>\n      <category>Company</category>\n      <pubDate>Thu, 27 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Perplexity Pages</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-pages</link>\n      <description>Introducing Perplexity Pages</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-pages</guid>\n      <category>Company</category>\n      <pubDate>Thu, 30 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity launches Enterprise Pro</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-launches-enterprise-pro</link>\n      <description>Perplexity launches Enterprise Pro</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-launches-enterprise-pro</guid>\n      <category>Company</category>\n      <pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity Pro is coming to all SK Telecom users</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-pro-is-coming-to-all-sk-telecom-users</link>\n      <description>Perplexity Pro is coming to all SK Telecom users</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-pro-is-coming-to-all-sk-telecom-users</guid>\n      <category>Company</category>\n      <pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity Partners with ElevenLabs to launch 'Discover Daily' Podcast</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-partners-with-elevenlabs-to-launch-discover-daily-podcast</link>\n      <description>Perplexity Partners with ElevenLabs to launch 'Discover Daily' Podcast</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-partners-with-elevenlabs-to-launch-discover-daily-podcast</guid>\n      <category>Company</category>\n      <pubDate>Fri, 23 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Arc x Perplexity</title>\n      <link>https://www.perplexity.ai/hub/blog/arc-x-perplexity</link>\n      <description>Arc x Perplexity</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/arc-x-perplexity</guid>\n      <category>Company</category>\n      <pubDate>Fri, 26 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity raises Series B funding round</title>\n      <link>https://www.perplexity.ai/hub/blog/perplexity-raises-series-b-funding-round</link>\n      <description>Perplexity raises Series B funding round</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/perplexity-raises-series-b-funding-round</guid>\n      <category>Company</category>\n      <pubDate>Thu, 04 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing PPLX Online LLMs</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-pplx-online-llms</link>\n      <description>Introducing PPLX Online LLMs</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-pplx-online-llms</guid>\n      <category>Company</category>\n      <pubDate>Wed, 29 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Turbocharging Llama 2 70B with NVIDIA H100</title>\n      <link>https://www.perplexity.ai/hub/blog/turbocharging-llama-2-70b-with-nvidia-h100</link>\n      <description>Turbocharging Llama 2 70B with NVIDIA H100</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/turbocharging-llama-2-70b-with-nvidia-h100</guid>\n      <category>Research</category>\n      <pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing pplx-api</title>\n      <link>https://www.perplexity.ai/hub/blog/introducing-pplx-api</link>\n      <description>Introducing pplx-api</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/introducing-pplx-api</guid>\n      <category>Developers</category>\n      <pubDate>Wed, 04 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Perplexity raises Series A funding round</title>\n      <link>https://www.perplexity.ai/hub/blog/announcing-our-series-a-funding-round-and-mobile-app-launch</link>\n      <description>Perplexity raises Series A funding round</description>\n      <guid isPermaLink=\"false\">https://www.perplexity.ai/hub/blog/announcing-our-series-a-funding-round-and-mobile-app-launch</guid>\n      <category>Company</category>\n      <pubDate>Tue, 28 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_pinecone.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Pinecone Blog</title>\n    <link>https://www.pinecone.io/blog/</link>\n    <description>Latest updates from Pinecone</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_pinecone.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 11:22:40 +0000</lastBuildDate>\n    <item>\n      <title>Full Text Search: Architecture and Design</title>\n      <link>https://www.pinecone.io/blog/full-text-search-architecture/</link>\n      <description>Full Text Search: Architecture and Design</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/full-text-search-architecture/</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Full Text Search in Pinecone, Now in Public Preview</title>\n      <link>https://www.pinecone.io/blog/full-text-search/</link>\n      <description>Full Text Search in Pinecone, Now in Public Preview</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/full-text-search/</guid>\n      <category>Featured</category>\n      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Builder Plan: for the stage between prototype and scale</title>\n      <link>https://www.pinecone.io/blog/builder-plan/</link>\n      <description>Builder Plan: for the stage between prototype and scale</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/builder-plan/</guid>\n      <category>Company, Product</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Pinecone Marketplace:  Getting to Production in Minutes</title>\n      <link>https://www.pinecone.io/blog/marketplace/</link>\n      <description>Introducing Pinecone Marketplace:  Getting to Production in Minutes</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/marketplace/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Better Models Won’t Save Your Agent</title>\n      <link>https://www.pinecone.io/blog/introducing-nexus-knowledge-engine/</link>\n      <description>Better Models Won’t Save Your Agent</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/introducing-nexus-knowledge-engine/</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone Nexus: The Knowledge Engine for Agents</title>\n      <link>https://www.pinecone.io/blog/knowledge-infrastructure-for-agents/</link>\n      <description>Pinecone Nexus: The Knowledge Engine for Agents</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/knowledge-infrastructure-for-agents/</guid>\n      <category>Featured</category>\n      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone Dedicated Read Nodes: Now Generally Available</title>\n      <link>https://www.pinecone.io/blog/dedicated-read-nodes-ga/</link>\n      <description>Pinecone Dedicated Read Nodes: Now Generally Available</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/dedicated-read-nodes-ga/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Four New GA Features for Dedicated Read Nodes That Give Teams More Control and Observability</title>\n      <link>https://www.pinecone.io/blog/dedicated-read-nodes-ga-features/</link>\n      <description>Four New GA Features for Dedicated Read Nodes That Give Teams More Control and Observability</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/dedicated-read-nodes-ga-features/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Load Balancing AI Services for Availability and Speed</title>\n      <link>https://www.pinecone.io/blog/load-balancing/</link>\n      <description>Load Balancing AI Services for Availability and Speed</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/load-balancing/</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone Assistant: A Managed Knowledge Layer for Production AI Applications</title>\n      <link>https://www.pinecone.io/blog/assistant-managed-knowledge-layer/</link>\n      <description>Pinecone Assistant: A Managed Knowledge Layer for Production AI Applications</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/assistant-managed-knowledge-layer/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Garbage Day: How Pinecone Safely Deletes Billions of Objects at Scale</title>\n      <link>https://www.pinecone.io/blog/janitor/</link>\n      <description>Garbage Day: How Pinecone Safely Deletes Billions of Objects at Scale</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/janitor/</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>When \"Performance\" Means Two Different Things</title>\n      <link>https://www.pinecone.io/blog/performance-as-a-measurement/</link>\n      <description>When \"Performance\" Means Two Different Things</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/performance-as-a-measurement/</guid>\n      <category>Research</category>\n      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone BYOC: Pinecone in your AWS, GCP, or Azure account, no vendor access</title>\n      <link>https://www.pinecone.io/blog/byoc/</link>\n      <description>Pinecone BYOC: Pinecone in your AWS, GCP, or Azure account, no vendor access</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/byoc/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Use the Pinecone Plugin for Claude Code to develop AI Applications Faster</title>\n      <link>https://www.pinecone.io/blog/pinecone-plugin-for-claude-code/</link>\n      <description>Use the Pinecone Plugin for Claude Code to develop AI Applications Faster</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-plugin-for-claude-code/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Millions at Stake: How Melange's High-Recall Retrieval Prevents Litigation Collapse</title>\n      <link>https://www.pinecone.io/blog/millions-at-stake-melange/</link>\n      <description>Millions at Stake: How Melange's High-Recall Retrieval Prevents Litigation Collapse</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/millions-at-stake-melange/</guid>\n      <category>Customers</category>\n      <pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone Assistant Node in n8n: Turn Any Data Source Into Knowledge</title>\n      <link>https://www.pinecone.io/blog/pinecone-assistant-node/</link>\n      <description>Pinecone Assistant Node in n8n: Turn Any Data Source Into Knowledge</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-assistant-node/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone Dedicated Read Nodes are now in Public Preview</title>\n      <link>https://www.pinecone.io/blog/dedicated-read-nodes/</link>\n      <description>Pinecone Dedicated Read Nodes are now in Public Preview</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/dedicated-read-nodes/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New Bulk Data Operations: Update, Delete, and Fetch by Metadata</title>\n      <link>https://www.pinecone.io/blog/update-delete-and-fetch-by-metadata/</link>\n      <description>New Bulk Data Operations: Update, Delete, and Fetch by Metadata</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/update-delete-and-fetch-by-metadata/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Hidden Cost of Building: Lessons from Aquant</title>\n      <link>https://www.pinecone.io/blog/hidden-cost-of-building-aquant/</link>\n      <description>The Hidden Cost of Building: Lessons from Aquant</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/hidden-cost-of-building-aquant/</guid>\n      <category>Customers</category>\n      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Simplifying Vector Embeddings with Pinecone Integrated Inference Capabilities</title>\n      <link>https://www.pinecone.io/blog/simplifying-vector-embeddings-with-pinecone-integrated-inference/</link>\n      <description>Simplifying Vector Embeddings with Pinecone Integrated Inference Capabilities</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/simplifying-vector-embeddings-with-pinecone-integrated-inference/</guid>\n      <category>Company, Product</category>\n      <pubDate>Thu, 09 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone joins Microsoft Marketplace as a Launch Partner</title>\n      <link>https://www.pinecone.io/blog/pinecone-joins-microsoft-marketplace-as-a-launch-partner/</link>\n      <description>Pinecone joins Microsoft Marketplace as a Launch Partner</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-joins-microsoft-marketplace-as-a-launch-partner/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 25 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build an AI knowledge assistant with Google Docs and Pinecone</title>\n      <link>https://www.pinecone.io/blog/build-an-ai-knowledge-assistant-with-google-docs-and-pinecone/</link>\n      <description>Build an AI knowledge assistant with Google Docs and Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/build-an-ai-knowledge-assistant-with-google-docs-and-pinecone/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GTM Engineering:  Clay + Pinecone for AI-powered Sales Outbound</title>\n      <link>https://www.pinecone.io/blog/gtm-engineering-clay-pinecone-for-ai-powered-sales-outbound/</link>\n      <description>GTM Engineering:  Clay + Pinecone for AI-powered Sales Outbound</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/gtm-engineering-clay-pinecone-for-ai-powered-sales-outbound/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Moving Pinecone forward with Ash Ashutosh as CEO and Edo spearheading our growing AI ambitions as Chief Scientist</title>\n      <link>https://www.pinecone.io/blog/growing-ai-ambitions/</link>\n      <description>Moving Pinecone forward with Ash Ashutosh as CEO and Edo spearheading our growing AI ambitions as Chief Scientist</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/growing-ai-ambitions/</guid>\n      <category>Company</category>\n      <pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Pinecone Pioneers: A Program for Builders, Organizers, and Community Leaders</title>\n      <link>https://www.pinecone.io/blog/announcing-pinecone-pioneers-program/</link>\n      <description>Announcing Pinecone Pioneers: A Program for Builders, Organizers, and Community Leaders</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/announcing-pinecone-pioneers-program/</guid>\n      <category>Company</category>\n      <pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build more knowledgeable AI applications with new LLMs and greater control in Pinecone Assistant</title>\n      <link>https://www.pinecone.io/blog/assistant-new-llms/</link>\n      <description>Build more knowledgeable AI applications with new LLMs and greater control in Pinecone Assistant</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/assistant-new-llms/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>#NYTECHWEEK 2025</title>\n      <link>https://www.pinecone.io/blog/a16z-nytechweek-2025/</link>\n      <description>#NYTECHWEEK 2025</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/a16z-nytechweek-2025/</guid>\n      <category>Company</category>\n      <pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cascading retrieval with multi-vector representations: balancing efficiency and effectiveness</title>\n      <link>https://www.pinecone.io/blog/cascading-retrieval-with-multi-vector-representations/</link>\n      <description>Cascading retrieval with multi-vector representations: balancing efficiency and effectiveness</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/cascading-retrieval-with-multi-vector-representations/</guid>\n      <category>Research</category>\n      <pubDate>Wed, 28 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Vector databases aren't just for large-scale enterprise AI</title>\n      <link>https://www.pinecone.io/blog/vector-databases-not-just-for-large-enterprise-ai/</link>\n      <description>Vector databases aren't just for large-scale enterprise AI</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/vector-databases-not-just-for-large-enterprise-ai/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build secure, scalable agentic AI workflows with Rubrik Annapurna and Pinecone</title>\n      <link>https://www.pinecone.io/blog/secure-agentic-workflows-rubrik/</link>\n      <description>Build secure, scalable agentic AI workflows with Rubrik Annapurna and Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/secure-agentic-workflows-rubrik/</guid>\n      <category>Product, Customers</category>\n      <pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Add context to your agent with Pinecone Assistant MCP remote server</title>\n      <link>https://www.pinecone.io/blog/assistant-MCP/</link>\n      <description>Add context to your agent with Pinecone Assistant MCP remote server</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/assistant-MCP/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 22 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tool up: Pinecone’s first MCP servers are here</title>\n      <link>https://www.pinecone.io/blog/first-MCPs/</link>\n      <description>Tool up: Pinecone’s first MCP servers are here</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/first-MCPs/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 22 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Optimizing Pinecone for agents (and more)</title>\n      <link>https://www.pinecone.io/blog/optimizing-pinecone/</link>\n      <description>Optimizing Pinecone for agents (and more)</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/optimizing-pinecone/</guid>\n      <category>Product, Engineering</category>\n      <pubDate>Mon, 17 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Launch Week: Pinecone for agents, search, recommendations, and more</title>\n      <link>https://www.pinecone.io/blog/launch-week-march-2025/</link>\n      <description>Launch Week: Pinecone for agents, search, recommendations, and more</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/launch-week-march-2025/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 17 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Retrieval Inference for scale and performance</title>\n      <link>https://www.pinecone.io/blog/optimizing-retrieval-inference/</link>\n      <description>Retrieval Inference for scale and performance</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/optimizing-retrieval-inference/</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 12 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evolving Pinecone's architecture to meet the demands of Knowledgeable AI</title>\n      <link>https://www.pinecone.io/blog/evolving-pinecone-for-knowledgeable-ai/</link>\n      <description>Evolving Pinecone's architecture to meet the demands of Knowledgeable AI</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/evolving-pinecone-for-knowledgeable-ai/</guid>\n      <category>Product, Engineering</category>\n      <pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing the leading vector database to your cloud</title>\n      <link>https://www.pinecone.io/blog/byoc-early-access/</link>\n      <description>Bringing the leading vector database to your cloud</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/byoc-early-access/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Easily build knowledgeable chat and agent-based applications in minutes with Pinecone Assistant, now generally available</title>\n      <link>https://www.pinecone.io/blog/pinecone-assistant-generally-available/</link>\n      <description>Easily build knowledgeable chat and agent-based applications in minutes with Pinecone Assistant, now generally available</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-assistant-generally-available/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 22 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Accelerate prototyping and development with Pinecone Local</title>\n      <link>https://www.pinecone.io/blog/pinecone-local/</link>\n      <description>Accelerate prototyping and development with Pinecone Local</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-local/</guid>\n      <category>Product</category>\n      <pubDate>Fri, 06 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing cascading retrieval: Unifying dense and sparse with reranking</title>\n      <link>https://www.pinecone.io/blog/cascading-retrieval/</link>\n      <description>Introducing cascading retrieval: Unifying dense and sparse with reranking</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/cascading-retrieval/</guid>\n      <category>Research</category>\n      <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Pinecone Rerank V0</title>\n      <link>https://www.pinecone.io/blog/pinecone-rerank-v0-announcement/</link>\n      <description>Introducing Pinecone Rerank V0</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-rerank-v0-announcement/</guid>\n      <category>Research</category>\n      <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Strengthening security and increasing control with CMEK and API key roles</title>\n      <link>https://www.pinecone.io/blog/strengthening-security-and-control/</link>\n      <description>Strengthening security and increasing control with CMEK and API key roles</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/strengthening-security-and-control/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing integrated inference: Embed, rerank, and retrieve your data with a single API</title>\n      <link>https://www.pinecone.io/blog/integrated-inference/</link>\n      <description>Introducing integrated inference: Embed, rerank, and retrieve your data with a single API</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/integrated-inference/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 02 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>From Idea to Action: How Pinecone Assistant Meaningfully Accelerates AI Business</title>\n      <link>https://www.pinecone.io/blog/pinecone-assistant-accelerates-business/</link>\n      <description>From Idea to Action: How Pinecone Assistant Meaningfully Accelerates AI Business</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-assistant-accelerates-business/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 21 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building AI apps on Azure with Pinecone just got a lot easier</title>\n      <link>https://www.pinecone.io/blog/building-ai-apps-on-azure-with-pinecone-just-got-a-lot-easier/</link>\n      <description>Building AI apps on Azure with Pinecone just got a lot easier</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/building-ai-apps-on-azure-with-pinecone-just-got-a-lot-easier/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 19 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unlock enhanced performance and usage monitoring with Datadog and new Prometheus endpoints</title>\n      <link>https://www.pinecone.io/blog/datadog-prometheus-for-serverless/</link>\n      <description>Unlock enhanced performance and usage monitoring with Datadog and new Prometheus endpoints</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/datadog-prometheus-for-serverless/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 06 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>September 2024 Product Update</title>\n      <link>https://www.pinecone.io/blog/september-2024-product-update/</link>\n      <description>September 2024 Product Update</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/september-2024-product-update/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing import from object storage for more efficient data transfer to Pinecone serverless</title>\n      <link>https://www.pinecone.io/blog/import-from-object-storage/</link>\n      <description>Introducing import from object storage for more efficient data transfer to Pinecone serverless</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/import-from-object-storage/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 24 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Simplify, enhance, and evaluate RAG development with Pinecone Assistant, now in public preview</title>\n      <link>https://www.pinecone.io/blog/pinecone-assistant-for-all/</link>\n      <description>Simplify, enhance, and evaluate RAG development with Pinecone Assistant, now in public preview</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-assistant-for-all/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 18 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>August 2024 Product Update</title>\n      <link>https://www.pinecone.io/blog/august-2024-product-update/</link>\n      <description>August 2024 Product Update</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/august-2024-product-update/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 03 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone serverless is now generally available on Google Cloud, adding knowledge to AI assistants and other applications</title>\n      <link>https://www.pinecone.io/blog/gcp-serverless-ga/</link>\n      <description>Pinecone serverless is now generally available on Google Cloud, adding knowledge to AI assistants and other applications</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/gcp-serverless-ga/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 27 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build knowledgeable AI with Pinecone serverless, now generally available on Microsoft Azure</title>\n      <link>https://www.pinecone.io/blog/azure-serverless-ga/</link>\n      <description>Build knowledgeable AI with Pinecone serverless, now generally available on Microsoft Azure</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/azure-serverless-ga/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 27 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing reranking to Pinecone Inference to simplify building accurate AI</title>\n      <link>https://www.pinecone.io/blog/introducing-reranking-to-pinecone-inference/</link>\n      <description>Introducing reranking to Pinecone Inference to simplify building accurate AI</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/introducing-reranking-to-pinecone-inference/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 15 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>July 2024 Product Update</title>\n      <link>https://www.pinecone.io/blog/july-2024-product-update/</link>\n      <description>July 2024 Product Update</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/july-2024-product-update/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Connect to Pinecone within your platform to enable a seamless AI development experience</title>\n      <link>https://www.pinecone.io/blog/connect-to-pinecone-within-your-platform/</link>\n      <description>Connect to Pinecone within your platform to enable a seamless AI development experience</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/connect-to-pinecone-within-your-platform/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 24 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Pinecone API Versioning</title>\n      <link>https://www.pinecone.io/blog/introducing-pinecone-api-versioning/</link>\n      <description>Introducing Pinecone API Versioning</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/introducing-pinecone-api-versioning/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 18 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>RAG Brag with Inkeep Co-Founder Nick Gomez</title>\n      <link>https://www.pinecone.io/blog/rag-brag-inkeep/</link>\n      <description>RAG Brag with Inkeep Co-Founder Nick Gomez</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/rag-brag-inkeep/</guid>\n      <category>Company</category>\n      <pubDate>Wed, 17 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Pinecone Inference to streamline your AI workflow</title>\n      <link>https://www.pinecone.io/blog/pinecone-inference/</link>\n      <description>Introducing Pinecone Inference to streamline your AI workflow</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-inference/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 09 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>June 2024 Product Update</title>\n      <link>https://www.pinecone.io/blog/june-2024-product-update/</link>\n      <description>June 2024 Product Update</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/june-2024-product-update/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 01 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Benchmarking AI Assistants</title>\n      <link>https://www.pinecone.io/blog/ai-assistant-quality/</link>\n      <description>Benchmarking AI Assistants</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/ai-assistant-quality/</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Pinecone Assistant in Beta</title>\n      <link>https://www.pinecone.io/blog/pinecone-assistant/</link>\n      <description>Introducing Pinecone Assistant in Beta</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-assistant/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>RAG Brag with My AskAI founders, Mike Heap and Alex Rainey</title>\n      <link>https://www.pinecone.io/blog/rag-brag-myaskai/</link>\n      <description>RAG Brag with My AskAI founders, Mike Heap and Alex Rainey</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/rag-brag-myaskai/</guid>\n      <category>Company</category>\n      <pubDate>Fri, 14 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Glasp achieves 5X cost savings in knowledge access for millions of users with Pinecone</title>\n      <link>https://www.pinecone.io/blog/glasp/</link>\n      <description>Glasp achieves 5X cost savings in knowledge access for millions of users with Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/glasp/</guid>\n      <category>Company</category>\n      <pubDate>Wed, 05 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>May Monthly Product Update</title>\n      <link>https://www.pinecone.io/blog/may2024-monthly-product-update/</link>\n      <description>May Monthly Product Update</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/may2024-monthly-product-update/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 03 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Welcome Lauren Nemeth and Bob Muglia</title>\n      <link>https://www.pinecone.io/blog/welcome-lauren-nemeth-and-bob-muglia/</link>\n      <description>Welcome Lauren Nemeth and Bob Muglia</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/welcome-lauren-nemeth-and-bob-muglia/</guid>\n      <category>Company</category>\n      <pubDate>Mon, 03 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding AI Development with Pinecone, GitHub CoPilot, and Azure OpenAI</title>\n      <link>https://www.pinecone.io/blog/the-ultimate-developer-toolkit-for-genai/</link>\n      <description>Expanding AI Development with Pinecone, GitHub CoPilot, and Azure OpenAI</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/the-ultimate-developer-toolkit-for-genai/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone serverless on AWS is generally available</title>\n      <link>https://www.pinecone.io/blog/serverless-generally-available/</link>\n      <description>Pinecone serverless on AWS is generally available</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/serverless-generally-available/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Private Endpoints for Pinecone serverless</title>\n      <link>https://www.pinecone.io/blog/private-endpoints/</link>\n      <description>Introducing Private Endpoints for Pinecone serverless</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/private-endpoints/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build Better RAG Applications with Pinecone and Vectorize</title>\n      <link>https://www.pinecone.io/blog/build-better-rag-applications-with-pinecone-and-vectorize/</link>\n      <description>Build Better RAG Applications with Pinecone and Vectorize</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/build-better-rag-applications-with-pinecone-and-vectorize/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 14 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>April Monthly Product Update</title>\n      <link>https://www.pinecone.io/blog/april-2024-product-update/</link>\n      <description>April Monthly Product Update</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/april-2024-product-update/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Going Global: Building the Global Control Plane API</title>\n      <link>https://www.pinecone.io/blog/global-api/</link>\n      <description>Going Global: Building the Global Control Plane API</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/global-api/</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 22 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Free plan gets 3x more capacity with serverless upgrade</title>\n      <link>https://www.pinecone.io/blog/serverless-free/</link>\n      <description>Free plan gets 3x more capacity with serverless upgrade</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/serverless-free/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone vs. Postgres pgvector: For vector search, easy isn’t so easy</title>\n      <link>https://www.pinecone.io/blog/pinecone-vs-pgvector/</link>\n      <description>Pinecone vs. Postgres pgvector: For vector search, easy isn’t so easy</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-vs-pgvector/</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Pinecone Partner Program: Integrate and Grow with Pinecone</title>\n      <link>https://www.pinecone.io/blog/introducing-the-pinecone-partner-program/</link>\n      <description>Introducing the Pinecone Partner Program: Integrate and Grow with Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/introducing-the-pinecone-partner-program/</guid>\n      <category>Company</category>\n      <pubDate>Mon, 08 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Sixfold's Transformation of Insurance Underwriting with Pinecone</title>\n      <link>https://www.pinecone.io/blog/sixfold/</link>\n      <description>Sixfold's Transformation of Insurance Underwriting with Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/sixfold/</guid>\n      <category>Company</category>\n      <pubDate>Fri, 05 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>March Monthly Product Update</title>\n      <link>https://www.pinecone.io/blog/Marchproductupdate/</link>\n      <description>March Monthly Product Update</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/Marchproductupdate/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the First Hallucination-Free LLM</title>\n      <link>https://www.pinecone.io/blog/hallucination-free-llm/</link>\n      <description>Introducing the First Hallucination-Free LLM</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/hallucination-free-llm/</guid>\n      <category>Company</category>\n      <pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Your Guide to Vectorizing Structured Text</title>\n      <link>https://www.pinecone.io/blog/structured-data/</link>\n      <description>Your Guide to Vectorizing Structured Text</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/structured-data/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 26 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Simplify Stream Processing For GenAI Applications With Confluent Cloud for Apache Flink®</title>\n      <link>https://www.pinecone.io/blog/confluent-apache-flink-service/</link>\n      <description>Simplify Stream Processing For GenAI Applications With Confluent Cloud for Apache Flink®</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/confluent-apache-flink-service/</guid>\n      <category>Company</category>\n      <pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>RAG Brag with Shortwave CEO Andrew Lee</title>\n      <link>https://www.pinecone.io/blog/rag-brag-with-shortwave/</link>\n      <description>RAG Brag with Shortwave CEO Andrew Lee</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/rag-brag-with-shortwave/</guid>\n      <category>Company</category>\n      <pubDate>Thu, 14 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Winning in AI means mastering the new stack</title>\n      <link>https://www.pinecone.io/blog/the-new-ai-stack/</link>\n      <description>Winning in AI means mastering the new stack</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/the-new-ai-stack/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 15 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Azure OpenAI, meet Canopy</title>\n      <link>https://www.pinecone.io/blog/canopy-azureopenai/</link>\n      <description>Azure OpenAI, meet Canopy</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/canopy-azureopenai/</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 15 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Memory for Open-Source LLMs</title>\n      <link>https://www.pinecone.io/blog/memory-for-open-source-llms/</link>\n      <description>Memory for Open-Source LLMs</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/memory-for-open-source-llms/</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 14 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>5 reasons to build with Pinecone serverless</title>\n      <link>https://www.pinecone.io/blog/why-serverless/</link>\n      <description>5 reasons to build with Pinecone serverless</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/why-serverless/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 29 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Vectors as AI Data Primitives</title>\n      <link>https://www.pinecone.io/blog/vectors-as-ai-data-primitives/</link>\n      <description>Vectors as AI Data Primitives</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/vectors-as-ai-data-primitives/</guid>\n      <category>Company</category>\n      <pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>RAG makes LLMs better and equal</title>\n      <link>https://www.pinecone.io/blog/rag-study/</link>\n      <description>RAG makes LLMs better and equal</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/rag-study/</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Pinecone and its partners are transforming GenAI with serverless</title>\n      <link>https://www.pinecone.io/blog/serverless-launch-partners/</link>\n      <description>How Pinecone and its partners are transforming GenAI with serverless</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/serverless-launch-partners/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Pinecone Serverless</title>\n      <link>https://www.pinecone.io/blog/serverless/</link>\n      <description>Introducing Pinecone Serverless</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/serverless/</guid>\n      <category>Company</category>\n      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reimagining the vector database to enable knowledgeable AI</title>\n      <link>https://www.pinecone.io/blog/serverless-architecture/</link>\n      <description>Reimagining the vector database to enable knowledgeable AI</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/serverless-architecture/</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone algorithms set new records for BigANN</title>\n      <link>https://www.pinecone.io/blog/pinecone-algorithms-set-new-records-for-bigann/</link>\n      <description>Pinecone algorithms set new records for BigANN</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-algorithms-set-new-records-for-bigann/</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 11 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Practical Tips for Working with Pinecone at Scale</title>\n      <link>https://www.pinecone.io/blog/working-at-scale/</link>\n      <description>Practical Tips for Working with Pinecone at Scale</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/working-at-scale/</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 20 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Launch production-grade architectures using Pinecone's vector database in minutes with the AWS Reference Architecture</title>\n      <link>https://www.pinecone.io/blog/aws-reference-architecture/</link>\n      <description>Launch production-grade architectures using Pinecone's vector database in minutes with the AWS Reference Architecture</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/aws-reference-architecture/</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 27 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone recognized as the most popular vector database</title>\n      <link>https://www.pinecone.io/blog/pinecone-most-popular-vector-database-and-fortune-2023-50-ai-innovator-finalist/</link>\n      <description>Pinecone recognized as the most popular vector database</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-most-popular-vector-database-and-fortune-2023-50-ai-innovator-finalist/</guid>\n      <category>Company</category>\n      <pubDate>Tue, 21 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Canopy: An easy, free, and flexible RAG framework powered by Pinecone</title>\n      <link>https://www.pinecone.io/blog/canopy-rag-framework/</link>\n      <description>Introducing Canopy: An easy, free, and flexible RAG framework powered by Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/canopy-rag-framework/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 08 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone is now available on the Azure Marketplace</title>\n      <link>https://www.pinecone.io/blog/azure-marketplace/</link>\n      <description>Pinecone is now available on the Azure Marketplace</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/azure-marketplace/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 30 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Great Algorithms Are Not Enough</title>\n      <link>https://www.pinecone.io/blog/hnsw-not-enough/</link>\n      <description>Great Algorithms Are Not Enough</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/hnsw-not-enough/</guid>\n      <category>Engineering</category>\n      <pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone is now HIPAA compliant</title>\n      <link>https://www.pinecone.io/blog/hipaa/</link>\n      <description>Pinecone is now HIPAA compliant</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/hipaa/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 11 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An (Opinionated) Checklist to Choose a Vector Database</title>\n      <link>https://www.pinecone.io/blog/an-opinionated-checklist-to-choose-a-vector-database/</link>\n      <description>An (Opinionated) Checklist to Choose a Vector Database</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/an-opinionated-checklist-to-choose-a-vector-database/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 13 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone as a Knowledge Base for Amazon Bedrock</title>\n      <link>https://www.pinecone.io/blog/amazon-bedrock-integration/</link>\n      <description>Pinecone as a Knowledge Base for Amazon Bedrock</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/amazon-bedrock-integration/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 13 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LangChain's Pinecone upsert speed increased by 5X</title>\n      <link>https://www.pinecone.io/blog/langchain-pinecone-upsert-faster/</link>\n      <description>LangChain's Pinecone upsert speed increased by 5X</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/langchain-pinecone-upsert-faster/</guid>\n      <category>Engineering</category>\n      <pubDate>Tue, 12 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Pain and the Poetry of Python</title>\n      <link>https://www.pinecone.io/blog/pain-poetry-python/</link>\n      <description>The Pain and the Poetry of Python</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pain-poetry-python/</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 31 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Look Back at Pinecone's First Hackathon</title>\n      <link>https://www.pinecone.io/blog/the-first-pinecone-hackathon/</link>\n      <description>A Look Back at Pinecone's First Hackathon</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/the-first-pinecone-hackathon/</guid>\n      <category>Company</category>\n      <pubDate>Thu, 03 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Monitor Pinecone with Datadog</title>\n      <link>https://www.pinecone.io/blog/datadog-integration/</link>\n      <description>Monitor Pinecone with Datadog</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/datadog-integration/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 03 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Less is More: Why Use Retrieval Instead of Larger Context Windows</title>\n      <link>https://www.pinecone.io/blog/why-use-retrieval-instead-of-larger-context/</link>\n      <description>Less is More: Why Use Retrieval Instead of Larger Context Windows</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/why-use-retrieval-instead-of-larger-context/</guid>\n      <category>Engineering</category>\n      <pubDate>Thu, 20 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Run Pinecone on Azure</title>\n      <link>https://www.pinecone.io/blog/azure/</link>\n      <description>Run Pinecone on Azure</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/azure/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 13 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Start now, then take your time: Removing the Pinecone waitlist and inactivity policy</title>\n      <link>https://www.pinecone.io/blog/gcp-starter/</link>\n      <description>Start now, then take your time: Removing the Pinecone waitlist and inactivity policy</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/gcp-starter/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 12 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Opening up our free plan</title>\n      <link>https://www.pinecone.io/blog/updated-free-plan/</link>\n      <description>Opening up our free plan</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/updated-free-plan/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Our $100M Series B Funding to Build Long-Term Memory for AI</title>\n      <link>https://www.pinecone.io/blog/series-b/</link>\n      <description>Announcing Our $100M Series B Funding to Build Long-Term Memory for AI</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/series-b/</guid>\n      <category>Company</category>\n      <pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Supporting our growing number of free users</title>\n      <link>https://www.pinecone.io/blog/free-plan-update/</link>\n      <description>Supporting our growing number of free users</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/free-plan-update/</guid>\n      <category>Company</category>\n      <pubDate>Fri, 14 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Single Sign-On (SSO) for Pinecone</title>\n      <link>https://www.pinecone.io/blog/single-sign-on/</link>\n      <description>Introducing Single Sign-On (SSO) for Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/single-sign-on/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>March 1st Partial Database Outage</title>\n      <link>https://www.pinecone.io/blog/march-1-2023-incident/</link>\n      <description>March 1st Partial Database Outage</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/march-1-2023-incident/</guid>\n      <category>Company</category>\n      <pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Welcome Vector Databases, Welcome Bob</title>\n      <link>https://www.pinecone.io/blog/2022-growth-welcome-bob/</link>\n      <description>Welcome Vector Databases, Welcome Bob</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/2022-growth-welcome-bob/</guid>\n      <category>Company</category>\n      <pubDate>Tue, 28 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing support for sparse-dense embeddings for better search result</title>\n      <link>https://www.pinecone.io/blog/sparse-dense/</link>\n      <description>Introducing support for sparse-dense embeddings for better search result</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/sparse-dense/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 23 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New usage insights to plan, test, and grow with confidence</title>\n      <link>https://www.pinecone.io/blog/usage-dashboards/</link>\n      <description>New usage insights to plan, test, and grow with confidence</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/usage-dashboards/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone is now available on the AWS Marketplace</title>\n      <link>https://www.pinecone.io/blog/pinecone-aws-marketplace/</link>\n      <description>Pinecone is now available on the AWS Marketplace</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-aws-marketplace/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>History in the making: A year of learning, growing, and connecting together</title>\n      <link>https://www.pinecone.io/blog/2022-highlights/</link>\n      <description>History in the making: A year of learning, growing, and connecting together</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/2022-highlights/</guid>\n      <category>Company</category>\n      <pubDate>Fri, 23 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone is now available on the Google Cloud Marketplace</title>\n      <link>https://www.pinecone.io/blog/pinecone-gcp-marketplace/</link>\n      <description>Pinecone is now available on the Google Cloud Marketplace</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pinecone-gcp-marketplace/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 22 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>High-throughput vector indexes now generally available and free</title>\n      <link>https://www.pinecone.io/blog/pods-for-performance/</link>\n      <description>High-throughput vector indexes now generally available and free</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/pods-for-performance/</guid>\n      <category>Product</category>\n      <pubDate>Thu, 08 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Organizations: New access controls to makes vector search a company-wide capability</title>\n      <link>https://www.pinecone.io/blog/organizations/</link>\n      <description>Organizations: New access controls to makes vector search a company-wide capability</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/organizations/</guid>\n      <category>Product</category>\n      <pubDate>Wed, 07 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the hybrid index to enable keyword-aware semantic search</title>\n      <link>https://www.pinecone.io/blog/hybrid-search/</link>\n      <description>Introducing the hybrid index to enable keyword-aware semantic search</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/hybrid-search/</guid>\n      <category>Product</category>\n      <pubDate>Mon, 31 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Explore the power of Pinecone with public collections</title>\n      <link>https://www.pinecone.io/blog/public-collections/</link>\n      <description>Explore the power of Pinecone with public collections</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/public-collections/</guid>\n      <category>Product</category>\n      <pubDate>Fri, 16 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Rewriting a high performance vector database in Rust</title>\n      <link>https://www.pinecone.io/blog/rust-rewrite/</link>\n      <description>Rewriting a high performance vector database in Rust</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/rust-rewrite/</guid>\n      <category>Engineering</category>\n      <pubDate>Wed, 14 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inside the Pinecone</title>\n      <link>https://www.pinecone.io/blog/inside-the-pinecone/</link>\n      <description>Inside the Pinecone</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/inside-the-pinecone/</guid>\n      <category>Engineering</category>\n      <pubDate>Mon, 22 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Vector search just got up to 10x faster, easier to set up, and vertically scalable</title>\n      <link>https://www.pinecone.io/blog/faster-easier-scalable/</link>\n      <description>Vector search just got up to 10x faster, easier to set up, and vertically scalable</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/faster-easier-scalable/</guid>\n      <category>Product</category>\n      <pubDate>Tue, 16 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pinecone sponsors the 45th annual SIGIR conference</title>\n      <link>https://www.pinecone.io/blog/sigit-2022/</link>\n      <description>Pinecone sponsors the 45th annual SIGIR conference</description>\n      <guid isPermaLink=\"false\">https://www.pinecone.io/blog/sigit-2022/</guid>\n      <category>Company</category>\n      <pubDate>Fri, 22 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_the_batch.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>The Batch | DeepLearning.AI</title>\n    <link>https://www.deeplearning.ai/the-batch/</link>\n    <description>Weekly AI news and insights from DeepLearning.AI's The Batch.</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_the_batch.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:51:16 +0000</lastBuildDate>\n    <item>\n      <title>Seedance Makes A Splash, Nvidia's AI-Guided Chip Designs, Helping Robots Not Forget</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-352</link>\n      <description>The Batch AI News and Insights: There will be no AI jobpocalypse.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-352</guid>\n      <pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5.5 Outperforms (and Hallucinates), Kimi K2.6 Leads Open LLMs, AI Strains Climate Pledges, Strategic Thinking in LLMs vs. Humans</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-351</link>\n      <description>The Batch AI News and Insights: The ways we prompt AI are very different in 2026 than 2022 when ChatGPT came out.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-351</guid>\n      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GLM 5.1 Thinks Strategically, Data-Center Revolt Intensifies, When Helpful LLMs Turn Unhelpful, Humanoid Robots Get to Work</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-350</link>\n      <description>The Batch AI News and Insights: Coding agents are accelerating different types of software work to different degrees.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-350</guid>\n      <pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meta Pivots From Open Weights, Big Pharma Bets On AI, Regulatory Patchwork, Simulating Human Cohorts</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-349</link>\n      <description>The Batch AI News and Insights: AI-native software engineering teams operate very differently than traditional teams.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-349</guid>\n      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic’s Claude Mythos Problem, Dark DNA Unveiled, Pitfalls for Assistive Models, Simulating Fluid Dynamics</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-348</link>\n      <description>The Batch AI News and Insights: As AI agents accelerate coding, what is the future of software engineering?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-348</guid>\n      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Code’s Source Leaks, OpenAI Exits Video Generation, Gemini Adds Music Generation, LLMs Learn at Inference</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-347</link>\n      <description>The Batch AI News and Insights: Voice-based AI that you can talk to is improving rapidly, yet most people still don’t appreciate how pervasive voice UIs (user interfaces) will become.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-347</guid>\n      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Nvidia’s Open Salvo, OpenAI’s Amazon Deal, Grok Cuts Video Prices, Recursive Language Models</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-346</link>\n      <description>The Batch AI News and Insights: The anti-AI coalition continues to maneuver to find arguments to slow down AI progress.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-346</guid>\n      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Attacks On Data Centers, Qwen3.5 In All Sizes, DeepSeek’s Huawei Play, Apple’s Multimodal Tokenizer</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-345</link>\n      <description>The Batch AI News and Insights: I’ve been hearing from people at all levels of seniority about a feeling of job insecurity.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-345</guid>\n      <pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5.4 Makes A Splash, AI’s Growth on Mobile, Data Centers Go Off-Grid, Apple’s Diffusion Research</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-344</link>\n      <description>The Batch AI News and Insights: Should there be a Stack Overflow for AI coding agents to share their learnings with each other?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-344</guid>\n      <pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic vs. the U.S. Government, Nano Banana’s Makeover, Frontier Agent Management, Google’s Mathematics Solutions</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-343</link>\n      <description>The Batch AI News and Insights: I’m thrilled to announce Context Hub, a new tool to give to your coding agents the API documentation they need to write correct code.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-343</guid>\n      <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Gemini Seizes the Lead, Investors Panic Over Agentic AI, Optimism at Global AI Summit, Local Versus Cloud</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-342</link>\n      <description>The Batch AI News and Insights: We just released a Skill Builder tool to help you understand in which areas of AI you’re strong, where you can learn more, and what to do next to keep building your skills.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-342</guid>\n      <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The New Open-Weights Leader, Big AI’s Political Influence, Predicting Illness, Faster Reasoning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-341</link>\n      <description>The Batch AI News and Insights: Will AI create new job opportunities? My daughter Nova loves cats, and her favorite color is yellow.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-341</guid>\n      <pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Opus 4.6 Thinks Smarter, xAI Joins SpaceX, AI Outperforms Doctors, Standardized AI Audits</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-340</link>\n      <description>The Batch AI News and Insights: I recently spoke at the Sundance Film Festival on a panel about AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-340</guid>\n      <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenClaw Runs Amok, Kimi’s Open Model, Ministral Distilled, Wikipedia’s Partners</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-339</link>\n      <description>The Batch AI News and Insights: Job seekers in the U.S. and many other nations face a tough environment.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-339</guid>\n      <pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Agents Go Shopping, Intelligence Redefined, Better Text in Pictures, Higher Engagement Means Worse Alignment</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-338</link>\n      <description>The Batch AI News and Insights: U.S. policies are driving allies away from using American AI technology.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-338</guid>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Self-Driving Reasoning Models, ChatGPT Adds Ads, Apple’s Deal with Google, 3D Generation Pronto</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-337</link>\n      <description>The Batch AI News and Insights: How can businesses go beyond using AI for incremental efficiency gains to create transformative impact?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-337</guid>\n      <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Governments vs. Grok, Meta Buys Agent Tech, Healthcare Chatbots, Limits of AI-Powered Retrieval</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-336</link>\n      <description>The Batch AI News and Insights: Many people are fighting the growth of data centers because they could increase CO2 emissions, electricity prices, and water use.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-336</guid>\n      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LLMs Go To Confession, Automated Scientific Research, What Copilot Users Want, Reasoning For Less</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-335</link>\n      <description>The Batch AI News and Insights: We just launched a course that shows people who have never coded before, in less than 30 minutes, how to describe an idea for an app and build it using AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-335</guid>\n      <pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New Year Special! Hopes for 2026 from David Cox, Adji Bousso Dieng, Juan M. Lavista Ferres, Tanmay Gupta, Pengtao Xie, Sharon Zhou</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-334</link>\n      <description>The Batch AI News and Insights: Happy 2026! Will this be the year we finally achieve AGI? I’d like to propose a new version of the Turing Test, which I’ll call the Turing-AGI Test, to see if we’ve achieved this.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-334</guid>\n      <pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Top Stories of 2025! Big AI Poaches Talent, Reasoning Models Boost Performance, Agents Write Code, Data Centers Drive GDP, China Turns the Tables</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-333</link>\n      <description>The Batch AI News and Insights: Another year of rapid AI advances has created more opportunities than ever for anyone — including those just entering the field — to build software.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-333</guid>\n      <pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI’s Answer to Gemini 3, Runway’s Interactive Worlds, Disney’s Alliance With OpenAI, Adapting LLMs for Low-Data Domains</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-332</link>\n      <description>The Batch AI News and Insights: As amazing as LLMs are, improving their knowledge today involves a more piecemeal process than is widely appreciated.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-332</guid>\n      <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Opus 4.5 Saves Tokens, White House Boosts AI-Powered Science, Amazon Exposes Nova 2 Pro Checkpoints, Small Models Solve Hard Puzzles</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-331</link>\n      <description>The Batch AI News and Insights: If you have not yet built an agentic workflow, I encourage you to try doing so, using the simple recipe I’ll share here!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-331</guid>\n      <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meta’s Open 3D Pipeline, World Labs’ Virtual Spaces, Baidu’s Multimodal Models, Coordinating Robot Teams</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-330</link>\n      <description>The Batch AI News and Insights: Separate reports by the publicity firm Edelman and Pew Research show that Americans, and more broadly large parts of Europe and the western world, do not trust AI and are not excited about it.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-330</guid>\n      <pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google Rules Arena Leaderboards, Microsoft+Anthropic, Record Labels Back AI Music, Personality Control for LLMs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-329</link>\n      <description>The Batch AI News and Insights: Is there an AI bubble? With the massive number of dollars going into AI infrastructure such as OpenAI’s $1.4 trillion plan and Nvidia briefly reaching a $5 trillion market cap, many have asked if speculation and hype have driven the values of...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-329</guid>\n      <pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Self-Driving On U.S. Freeways, Open LLM Tops Agentic Leaderboard, Anthropic Sparks Controversy, Efficient Agentic Search</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-328</link>\n      <description>The Batch AI News and Insights: I just got back from AI Dev x NYC, the AI developer conference where our community gathers for a day of coding, learning, and connecting.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-328</guid>\n      <pubDate>Wed, 19 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Safer (and Sexier) Chatbots, Better Images Through Reasoning, The Dawn of Industrial AI, Forecasting Time Series</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-327</link>\n      <description>The Batch AI News and Insights: I recently received an email titled “An 18-year-old’s dilemma: Too late to contribute to AI?” Its author, who gave me permission to share this, is preparing for college.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-327</guid>\n      <pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI Reorgs For Profit, MiniMax-M2 Leads Open Coding, Universal Music Group Embraces AI, LLMs Go Private</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-326</link>\n      <description>The Batch AI News and Insights: AI agents are getting better at looking at different types of data in businesses to spot patterns and create value. This is making data silos increasingly painful.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-326</guid>\n      <pubDate>Wed, 05 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing DeepLearning.AI Pro</title>\n      <link>https://www.deeplearning.ai/the-batch/introducing-deeplearning-ai-pro</link>\n      <description>Introducing DeepLearning.AI Pro</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/introducing-deeplearning-ai-pro</guid>\n      <pubDate>Fri, 31 Oct 2025 07:47:02 -0700</pubDate>\n    </item>\n    <item>\n      <title>Monsters of AI: AI Psychosis, Lethal Drones, Decaying Data, Speculative Bubbles</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-325</link>\n      <description>The Batch AI News and Insights: Today I’m launching DeepLearning.AI Pro — the one membership that keeps you at the forefront of AI. Please join!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-325</guid>\n      <pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Ling-1T Leads Non-Reasoning Performance, MCP Poses Security Risks, California Regulates AI, Auto-Tune for Agentic Prompts</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-324</link>\n      <description>The Batch AI News and Insights: In last week’s letter, I explained how effective agentic AI development needs a disciplined evals and error analysis process, and described an approach to performing evals.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-324</guid>\n      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DeepSeek Cuts Inference Costs, OpenAI Tightens Ties with AMD, Thinking Machines Simplifies Fine-Tuning, Robots Improve Spatial Awareness</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-323</link>\n      <description>The Batch AI News and Insights: Readers responded with both surprise and agreement last week when I wrote that the single biggest predictor of how rapidly a team makes progress building an AI agent lay in their ability to drive a disciplined process for evals...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-323</guid>\n      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Levels Up, Qwen3 Proliferates, Big AI Diversifies Product Lines, LoRA Adapters on Tap</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-322</link>\n      <description>The Batch AI News and Insights: I’m thrilled to announce my latest course: Agentic AI! This course will get you up to speed building cutting-edge agentic workflows.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-322</guid>\n      <pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI’s Trillion-Dollar Bet, Generating Viruses, Modeling Planet Earth, Paying for Training Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-321</link>\n      <description>The Batch AI News and Insights: LandingAI’s Agentic Document Extraction (ADE) turns PDF files into LLM-ready markdown text.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-321</guid>\n      <pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Agents Spend Money, Online Betting Automates, ChatGPT Users Shift, Reinforcement Learning Accelerates</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-320</link>\n      <description>The Batch AI News and Insights: Last week, China barred its major tech companies from buying Nvidia chips.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-320</guid>\n      <pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Drone Swarms Go To War, States Ban AI Mental-Health Treatments, Qwen3-Next Accelerates, Transformers Get Energized</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-319</link>\n      <description>The Batch AI News and Insights: Automated software testing is growing in importance in the era of AI-assisted coding.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-319</guid>\n      <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Stronger Chatbot Guardrails, Weaker Google Monopoly, AI-Assisted Education, 10 Million Tokens of Context</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-318</link>\n      <description>The Batch AI News and Insights: This week, Coursera held its annual conference in Las Vegas. A major theme was the shift from knowledge- to skills-based education, which will help many individuals, businesses, and educational institutions.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-318</guid>\n      <pubDate>Wed, 10 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Gemini’s Environmental Impact, China’s Emerging AI Hub, Chatbot Job Interviews, Security For Agents</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-317</link>\n      <description>The Batch AI News and Insights: There is significant unmet demand for developers who understand AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-317</guid>\n      <pubDate>Wed, 03 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI-Powered Phones Get Proactive, Robot Antelope Joins Herd, LLM Environmental Impacts Get Measured</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-316</link>\n      <description>The Batch AI News and Insights: Parallel agents are emerging as an important new direction for scaling up AI. AI capabilities have scaled with more training data, training-time compute, and test-time compute.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-316</guid>\n      <pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>China Questions Nvidia, When Models Memorize, Mixture of Video Experts, OpenAI &amp; Oracle Join Forces</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-315</link>\n      <description>The Batch AI News and Insights: On Saturday at the Buildathon [http://buildathon.ai] hosted by AI Fund and DeepLearning.AI, over 100 developers competed to build software products quickly using AI assisted coding.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-315</guid>\n      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5’s Rough Takeoff, AI Video Blockbusters, India’s Homegrown LLMs, Synthetic Data Generation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-314</link>\n      <description>The Batch AI News and Insights: Just as many businesses are transforming to become more capable by using AI, universities are too.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-314</guid>\n      <pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Open Agentic LLMs Proliferate, Robot Removes Gallbladders, Reasoning Models Boost Emissions, OpenAI Re-Opens</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-313</link>\n      <description>The Batch AI News and Insights: Recently Meta made headlines with unprecedented, massive compensation packages for AI model builders exceeding $100M (sometimes spread over multiple years).</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-313</guid>\n      <pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Trump Resets AI Policy, Qwen3’s Agentic Advance, U.S. Chips for China, The Trouble With AI Friends</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-312</link>\n      <description>The Batch AI News and Insights: There is now a path for China to surpass the U.S. in AI. Even though the U.S. is still ahead, China has tremendous momentum with its vibrant open-weights model ecosystem and aggressive moves in semiconductor design and manufacturing.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-312</guid>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Power Moves in AI Coding, Moonshot’s Agentic LLM, How to Comply with EU AI Regs, AI Agents Evolve</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-311</link>\n      <description>The Batch AI News and Insights: We’re organizing a new event called Buildathon: The Rapid Engineering Competition, to be held in the San Francisco Bay Area on Saturday, August 16, 2025!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-311</guid>\n      <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Raises Questions, Meta Poaches Talent, California Reframes AI Regulations, Multi-Agent Systems Get Stronger</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-310</link>\n      <description>The Batch AI News and Insights: The invention of modern writing instruments like the typewriter made writing easier, but they also led to the rise of writer’s block, where deciding what to write became the bottleneck.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-310</guid>\n      <pubDate>Wed, 16 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Make LLMs Commit Blackmail, Robotic Beehive, Walmart’s AI App Factory, Training Web Agents</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-309</link>\n      <description>The Batch AI News and Insights: Last week, the United States Congress passed President Trump’s “Big Beautiful Bill.” I’m disappointed it didn’t include a proposed moratorium on U.S. state-level AI regulation.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-309</guid>\n      <pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Amazon’s $100 Billion Bet, Meta’s Sensor-Packed Glasses, Anthropic’s Reason-Free Reasoning, Google’s Extreme Weather Prediction</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-308</link>\n      <description>The Batch AI News and Insights: I’d like to share a tip for getting more practice building with AI — that is, either using AI building blocks to build applications or using AI coding assistance to create powerful applications quickly.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-308</guid>\n      <pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Judge Rules Training AI on Copyrighted Works Is Fair Use, Agentic Biology Evolves, Meta Befriends Alexandr Wang</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-307</link>\n      <description>The Batch AI News and Insights: On Monday, a United States District Court ruled that training LLMs on copyrighted books constitutes fair use.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-307</guid>\n      <pubDate>Wed, 25 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apple Sharpens Its GenAI Profile, Hollywood Joins Copyright Fight, OpenAI Ups Reasoning Quotient, LLM Rights Historical Wrongs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-306</link>\n      <description>The Batch AI News and Insights: One of the most effective things the U.S. or any other nation can do to ensure its competitiveness in AI is to welcome high-skilled immigration and international students who have the potential to become high-skilled.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-306</guid>\n      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>FLUX.1 Kontext’s Consistent Characters, Benchmarking Costs Climb, Mary Meeker’s Action-Packed AI Report, Better Video Gen</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-305</link>\n      <description>The Batch AI News and Insights: There’s a new breed of GenAI Application Engineers who can build more-powerful applications faster than was possible before, thanks to generative AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-305</guid>\n      <pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DeepSeek-R1 Refreshed, AI’s Energy Conundrum, Agents Get Phished, Machine Translation in Action</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-304</link>\n      <description>The Batch AI News and Insights: Everyone can benefit by learning to code with AI! At AI Fund, the venture studio I lead, everyone — not just the engineers — can vibe code or use more sophisticated AI-assisted coding techniques.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-304</guid>\n      <pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude 4 Advances Code Gen, How DeepSeek Built V3 For $5.6m, Google I/O Roundup, O’Reilly Versus OpenAI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-303</link>\n      <description>The Batch AI News and Insights: I am alarmed by the proposed cuts to U.S. funding for basic research, analyzed here, and the impact this would have for U.S. competitiveness in AI and other areas.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-303</guid>\n      <pubDate>Wed, 28 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codex’s Robot Dev Team, Grok’s Fixation on South Africa, Saudi Arabia’s AI Power Play, 4-Bit Efficiency With 16-Bit Accuracy</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-302</link>\n      <description>The Batch AI News and Insights: In the age of AI, large corporations — not just startups — can move fast. I often speak with large companies’ C-suite and Boards about AI strategy and implementation, and would like to share some ideas that are applicable to big companies.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-302</guid>\n      <pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Recipes For Reasoning, Open and Compact Code Generator, Looser AI Regulations, More Factual Output</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-301</link>\n      <description>The Batch AI News and Insights: AI’s ability to make tasks not just cheaper, but also faster, is underrated in its importance in creating business value.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-301</guid>\n      <pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ChatGPT Grovels, Qwen3 Takes on DeepSeek-R1, Johnson &amp; Johnson Reveals AI Strategy, Easy Reasoning Hack</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-300</link>\n      <description>The Batch AI News and Insights: I’m delighted to announce that AI Fund has closed $190M for our new fund, in an oversubscribed round.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-300</guid>\n      <pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI’s Hit Image Generator, Hot AI Startups, Better Recommendations, Music Generation for Pros</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-299</link>\n      <description>The Batch AI News and Insights: I hope we can empower everyone to build with AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-299</guid>\n      <pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI’s Five New Models, Hugging Face’s Open Robot, U.S. Tightens Grip on AI Chips, Text-Only LLMs Go Multimodal</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-298</link>\n      <description>The Batch AI News and Insights: Even though I’m a much better Python than JavaScript developer, with AI assistance, I’ve been writing a lot of JavaScript code recently.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-298</guid>\n      <pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google Unveils Gemini 2.5, MCP Gains Momentum, Behind Sam Altman’s Fall and Rise, LLMs That Understand Misspellings</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-297</link>\n      <description>The Batch AI News and Insights: I’ve noticed that many GenAI application projects put in automated evaluations (evals) of the system’s output probably later — and rely on humans to manually examine and judge outputs longer — than they should.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-297</guid>\n      <pubDate>Wed, 16 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inside the Mind of Claude, Llama 4’s Mixture of Vision-Language Experts, More Open Multimodal Models, Neural Net for Tabular Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-296</link>\n      <description>The Batch AI News and Insights: I am so sorry that the U.S. is letting down our friends and allies.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-296</guid>\n      <pubDate>Wed, 09 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Open Voice-to-Voice With Vision, ChatGPT Creates Emotional Bonds, Human Action in 3D, Web Scrapers Caught in Maze</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-295</link>\n      <description>The Batch AI News and Insights: Contrary to standard prompting advice that you should give LLMs the context they need to succeed, I find it’s sometimes faster to be lazy and dash off a quick, imprecise prompt and see what happens.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-295</guid>\n      <pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Compact Vision-Language with Open Weights, Faster Learning, Diffusion in Few Steps, LLMs Aid Tutors</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-294</link>\n      <description>The Batch AI News and Insights: Fine-tuning small language models has been gaining traction over the past half year.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-294</guid>\n      <pubDate>Wed, 26 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Inside Google’s Co-Scientist, Copyright Office Weighs Generated Works, Multilingual (and Good at All of Them), Diffusion for Materials Design</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-293</link>\n      <description>The Batch AI News and Insights: Last Friday on Pi Day, we held AI Dev 25, a new conference for AI Developers.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-293</guid>\n      <pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DeepSeek-R1 Uncensored, QwQ-32B Puts Reasoning in Smaller Model, Phi-4-multimodal Takes Spoken Input, Training AI May Not Be Fair Use</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-292</link>\n      <description>The Batch AI News and Insights: Some people today are discouraging others from learning programming on the grounds AI will automate it.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-292</guid>\n      <pubDate>Wed, 12 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-4.5 Goes Big, Claude 3.7 Reasons, Alexa+ Goes Agentic, Generating Text Like an Image</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-291</link>\n      <description>The Batch AI News and Insights: Continuing our discussion on the Voice Stack, I’d like to explore an area that today’s voice-based systems mostly struggle with: Voice Activity Detection (VAD) and the turn-taking paradigm of communication.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-291</guid>\n      <pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meta Reads Minds, Big AI Spending Climbs, Deepfakes Appropriate Celeb Likenesses, Reasoning in Vectors</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-290</link>\n      <description>The Batch AI News and Insights: The Voice Stack is improving rapidly. Systems that interact with users via speaking and listening will drive many new applications.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-290</guid>\n      <pubDate>Wed, 26 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok 3 Scales Up, Mobile Apps Generated To Order, Musk Moves On OpenAI, Officials Reverse Course on AI Regulation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-289</link>\n      <description>The Batch AI News and Insights: Last month, a drone from Skyfire AI was credited with saving a police officer’s life after a dramatic 2 a.m. traffic stop.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-289</guid>\n      <pubDate>Wed, 19 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI Does Deep Research, Google Goes to War, Alibaba Answers DeepSeek, Web Agents Do Tree Search</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-288</link>\n      <description>The Batch AI News and Insights: At the Artificial Intelligence Action Summit in Paris this week, U.S. Vice President J.D. Vance said, “I’m not here to talk about AI safety.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-288</guid>\n      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>o3-mini Puts Reasoning in High Gear, How to Train for Computer Use, Gemini 2.0 Thinks Faster, More-Responsive Voice Interactions</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-287</link>\n      <description>The Batch AI News and Insights: A “10x engineer” — a widely accepted concept in tech — purportedly has 10 times the impact of the average engineer.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-287</guid>\n      <pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Reinforcement Learning Heats Up, White House Orders Muscular AI Policy, Computer Use Gains Momentum, Fine Control of Fine-Tuning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-286</link>\n      <description>Reinforcement Learning Heats Up, White House Orders Muscular AI Policy, Computer Use Gains Momentum, Fine Control of Fine-Tuning</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-286</guid>\n      <pubDate>Wed, 29 Jan 2025 14:48:00 -0800</pubDate>\n    </item>\n    <item>\n      <title>DeepSeek Sharpens Its Reasoning: DeepSeek-R1, an affordable rival to OpenAI’s o1</title>\n      <link>https://www.deeplearning.ai/the-batch/deepseek-r1-an-affordable-rival-to-openais-o1</link>\n      <description>DeepSeek Sharpens Its Reasoning: DeepSeek-R1, an affordable rival to OpenAI’s o1</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/deepseek-r1-an-affordable-rival-to-openais-o1</guid>\n      <pubDate>Wed, 22 Jan 2025 07:18:00 -0800</pubDate>\n    </item>\n    <item>\n      <title>DeepSeek’s Open Reasoning Model, Affordable Humanoid Robots, Texas’ Restrictive AI Law, GenAI for Electronics</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-285</link>\n      <description>The Batch AI News and Insights: Greetings from Davos, Switzerland! Many business and government leaders are gathered here again for the annual World Economic Forum to discuss tech, climate, geopolitics, and economic growth.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-285</guid>\n      <pubDate>Wed, 22 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tumbling Training Costs, Desktop AI Supercomputer, Tighter AI Export Restrictions, Improved Contrastive Loss</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-284</link>\n      <description>The Batch AI News and Insights: Writing software, especially prototypes, is becoming cheaper. This will lead to increased demand for people who can decide what to build. AI Product Management has a bright future!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-284</guid>\n      <pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>When Good Models Do Bad Things, What Users Really Want, More Training Data!, Better Model Merging</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-283</link>\n      <description>The Batch AI News and Insights: Using AI-assisted coding to build software prototypes is an important way to quickly explore many ideas and invent new things.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-283</guid>\n      <pubDate>Wed, 08 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Happy New Year! Hopes For 2025 With Mustafa Suleyman, Audrey Tang, Albert Gu, Hanno Basse, Joseph Gonzalez, David Ding</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-282</link>\n      <description>The Batch AI News and Insights: Despite having worked on AI since I was a teenager, I’m now more excited than ever about what we can do with it, especially in building AI applications.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-282</guid>\n      <pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Top AI Stories of 2024! Agents Rise, Prices Fall, Models Shrink, Video Takes Off, Acquisitions Morph</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-281</link>\n      <description>The Batch AI News and Insights: Is AI progressing rapidly? Yes! But while the progress of underlying AI technology has indeed sped up over the past 2 years, the fastest acceleration is in applications.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-281</guid>\n      <pubDate>Wed, 25 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Phi-4 Breaks Size Barrier, HunyuanVideo Narrows Open Source Gap, Gemini 2.0 Flash Accelerates Multimodal Modeling, LLMs Propose Research Ideas</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-280</link>\n      <description>The Batch AI News and Insights: I’m thrilled that former students and postdocs of mine won both of this year’s NeurIPS Test of Time Paper Awards.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-280</guid>\n      <pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Amazon Nova’s Competitive Price/Performance, OpenAI o1 Pro’s High Price/Performance, Google’s Game Worlds on Tap, Factual LLMs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-279</link>\n      <description>The Batch AI News and Insights: AI Product Management is evolving rapidly. The growth of generative AI and AI-based developer tools has created numerous opportunities to build AI applications.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-279</guid>\n      <pubDate>Wed, 11 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Agents Spend Real Money, Breaking Jailbreaks, Mistral Goes Big and Multimodal, AI’s Growing E-Waste Problem</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-278</link>\n      <description>The Batch AI News and Insights: AI Agents Spend Real Money, Breaking Jailbreaks, Mistral Goes Big and Multimodal, AI’s Growing E-Waste Problem.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-278</guid>\n      <pubDate>Wed, 04 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DeepSeek Takes On OpenAI, Robots Fold Laundry, Amazon and Anthropic Expand Partnership, More Efficient Object Detection</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-277</link>\n      <description>The Batch AI News and Insights: DeepSeek Takes On OpenAI, Robots Fold Laundry, Amazon and Anthropic Expand Partnership, More Efficient Object Detection.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-277</guid>\n      <pubDate>Wed, 27 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Next-Gen Models Show Limited Gains, Real-Time Video Generation, China AI Chips Blocked, Transformer Training Streamlined</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-276</link>\n      <description>The Batch AI News and Insights: A small number of people are posting text online that’s intended for direct consumption not by humans, but by LLMs (large language models).</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-276</guid>\n      <pubDate>Wed, 20 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama On the Battlefield, Mixture of Experts Pulls Ahead, Open Agentic Platform, Voter Support Chatbot</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-275</link>\n      <description>The Batch AI News and Insights: Large language models (LLMs) are typically optimized to answer peoples’ questions.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-275</guid>\n      <pubDate>Wed, 13 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Controls Desktops, Agents Train Algorithms, Does Anyone Comply With the EU’s AI Act?, Robots on the Loading Dock</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-274</link>\n      <description>The Batch AI News and Insights: Trump and the Republican party chalked up huge wins this week. Did manipulation of social media by generative AI play any role in this election?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-274</guid>\n      <pubDate>Wed, 06 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Trick or treat! AI Devours Energy, Innovation Can’t Win, Models Collapse, Benchmark Tests Are Meaningless, No Work for Coders</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-273</link>\n      <description>The Batch AI News and Insights: Welcome to our special Halloween issue of The Batch, in which we probe fears, anomalies, and shadows of AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-273</guid>\n      <pubDate>Wed, 30 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Giants Go Nuclear, A Tech Bromance Turns Turbulent, Mistral Sharpens the Edge, Cheaper Video Generation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-272</link>\n      <description>The Batch AI News and Insights: Startups live or die by their ability to execute at speed.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-272</guid>\n      <pubDate>Wed, 23 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bogus Apps, AI Boomtown, Better Embeddings, 2024 Highlights</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-271</link>\n      <description>The Batch AI News and Insights: It’s high time to take geoengineering more seriously as a potential tool to mitigate climate change.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-271</guid>\n      <pubDate>Wed, 16 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Meta’s Movie Gen Does It, AI’s Criminal Underground, Court Says LAION is Legal, OpenAI’s New Voice API</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-270</link>\n      <description>The Batch AI News and Insights: Congratulations to Geoff Hinton and John Hopfield for winning the 2024 Physics Nobel Prize!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-270</guid>\n      <pubDate>Wed, 09 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama Goes Multimodal, Pros Embrace Generative Video, Military AI Guidelines, LLMs That Read Spreadsheets</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-269</link>\n      <description>The Batch AI News and Insights: We won! California’s anti-innovation bill SB 1047 was vetoed by Governor Newsom over the weekend.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-269</guid>\n      <pubDate>Wed, 02 Oct 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hollywood Embraces Video Gen, New Restrictions on Deepfakes, More Open Source Models, Robot Server</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-268</link>\n      <description>The Batch AI News and Insights: Last week I spoke at Coursera Connect, the company’s annual conference in Las Vegas, where a major topic was AI and education.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-268</guid>\n      <pubDate>Wed, 25 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Models Built for Reasoning, High Gear for Llama 3.1, Brains for Warehouse Robots, Stopping LLMs From Plagiarizing</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-267</link>\n      <description>The Batch AI News and Insights: Years ago, when I was working at a large tech company, I was responsible for the data warehouse.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-267</guid>\n      <pubDate>Wed, 18 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Nations Sign Binding AI Treaty, Waymo Reveals Safety Record, 2D to 3D Goes Mainstream, Balancing Web Data Distributions</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-266</link>\n      <description>The Batch AI News and Insights: Over the weekend, my two kids colluded in a hilariously bad attempt to mislead me to look in the wrong place during a game of hide-and-seek.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-266</guid>\n      <pubDate>Wed, 11 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hallucination Index, AI-Powered Policing Goes National, Explainable LLMs, Faster Processing for Longer Inputs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-265</link>\n      <description>The Batch AI News and Insights: Recently I visited South Korea, where I spoke at length about AI with President Yoon Suk Yeol. Based on what I saw there in government, business, and academia, the nation is well positioned to become a strong AI hub.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-265</guid>\n      <pubDate>Wed, 04 Sep 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Restores ALS Patient’s Voice, AI Lobby Grows, Agentic Coding Advances, Massively Multimodal Model</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-264</link>\n      <description>The Batch AI News and Insights: After a recent price reduction by OpenAI, GPT-4o tokens now cost $4 per million tokens (using a blended rate that assumes 80% input and 20% output tokens).</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-264</guid>\n      <pubDate>Wed, 28 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Agents Generate Novel Research, Google Imagen 3 Raises the Bar, Alibaba’s Open Models for Specialized Tasks, Scaling Laws for Data Quality</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-263</link>\n      <description>The Batch AI News and Insights: I’m encouraged at the progress of the U.S. government at moving to stem harmful AI applications.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-263</guid>\n      <pubDate>Wed, 21 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LLM Price War, Black Forest’s Open Image Generator, The High Cost of AI Leadership, Machine Translation Goes Agentic</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-262</link>\n      <description>The Batch AI News and Insights | When entrepreneurs build a startup, it is often their speed and momentum that gives them a shot at competing with the tech behemoths.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-262</guid>\n      <pubDate>Wed, 14 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google Gets Character.AI Co-Founders, Ukraine's Aquatic Drones, AI Recruiting Tools Fuel Arms Race, ASCII Art Defeats LLM Guardrails</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-261</link>\n      <description>The Batch AI News &amp; Insights: I’m delighted to announce AI Python for Beginners, a sequence of free short courses that teach anyone to code, regardless of background.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-261</guid>\n      <pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Llama 3.1 is State-of-the-Art and Open, Web Data Goes Dark, OpenAI Takes on Google and Bing, Synthetic Data Improves</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-260</link>\n      <description>The Batch AI News and Insights: Last week, I wrote about why working on a concrete startup or project idea — meaning a specific product envisioned in enough detail that we can build it for a specific target user — lets you go faster.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-260</guid>\n      <pubDate>Wed, 31 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI Shrinks GPT-4o, Meta Withholds Models From Europe, Investors Hoard GPUs, Synthetic Talking Heads Get Expressive</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-259</link>\n      <description>The Batch AI News and Insights: AI’s usefulness in a wide variety of applications creates many opportunities for entrepreneurship.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-259</guid>\n      <pubDate>Wed, 24 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hallucination Detector, Battle of the Image Generators, How Open Are Open Models?, Copyright Claim Fails Against GitHub</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-258</link>\n      <description>The Batch AI News and Insights: “Democracy is the worst form of government, except for all the others,” said Winston Churchill.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-258</guid>\n      <pubDate>Wed, 17 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI’s Cloudy Path to Zero Emissions, Amazon’s Agent Builders, Claude’s UI Advance, Training On Consumer GPUs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-257</link>\n      <description>The Batch AI News and Insights: I continue to be alarmed at the progress of proposed California regulation SB 1047 and the attack it represents on open source and more broadly on AI innovation.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-257</guid>\n      <pubDate>Wed, 10 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI Blocks China, Tests for Human-Level Models, Music Industry Sues AI Startups, Model Merging Evolves</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-256</link>\n      <description>The Batch AI News and Insights: As we reach the milestone of the 256th issue of The Batch, I’m reflecting on how AI has changed over the years and how society continues to change with it.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-256</guid>\n      <pubDate>Wed, 03 Jul 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Monopolies, Ancestor Avatars, Benchmarks for Agentic Behavior, Chatbot for Minority Languages</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-255</link>\n      <description>The Batch AI News and Insights: On Monday, a number of large music labels sued AI music makers Suno and Udio for copyright infringement.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-255</guid>\n      <pubDate>Wed, 26 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Open Model Bonanza, Private Benchmarks for Fairer Tests, More Interactive Music Generation, Diffusion + GAN</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-254</link>\n      <description>The Batch AI News and Insights: On Father’s Day last weekend, I sat with my daughter to help her practice solving arithmetic problems.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-254</guid>\n      <pubDate>Wed, 19 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apple’s Gen AI Strategy, Stability's Copyright-Clear Audio Generator, International Safety Agreements, LLMs Play Doctor</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-253</link>\n      <description>The Batch AI News and Insights: One reason for machine learning’s success is that our field welcomes a wide range of work.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-253</guid>\n      <pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The AI PC Arrives, OpenAI Used For Disinformation, U.S. and China Seek AI Agreement, Training Models to Reason</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-252</link>\n      <description>The Batch AI News and Insights: The effort to protect innovation and open source continues. I believe we’re all better off if anyone can carry out basic AI research and share their innovations.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-252</guid>\n      <pubDate>Wed, 05 Jun 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Heart-Risk Model Saves Lives, Self-Driving on Unruly Roads, Knowledge Workers Embrace AI, Richer Context for RAG</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-251</link>\n      <description>The Batch AI News and Insights: A barrier to faster progress in generative AI is evaluations (evals), particularly of custom AI applications that generate free-form text.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-251</guid>\n      <pubDate>Wed, 29 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Music Industry Titan Targets AI, End-to-End Multimodality, Millions of Tokens of Context, More Responsive Text-to-Image</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-250</link>\n      <description>The Batch AI News and Insights: A good way to get started in AI is to start with coursework, which gives a systematic way to gain knowledge, and then to work on projects.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-250</guid>\n      <pubDate>Wed, 22 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI’s Rules for Model Behavior, Better Brain-Controlled Robots, AlphaFold 3 Covers All Biochemistry, AI Oasis in the Desert</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-249</link>\n      <description>The Batch AI News and Insights: In the last couple of days, Google announced a doubling of Gemini Pro 1.5's input context window from 1 million to 2 million tokens, and OpenAI released GPT-4o...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-249</guid>\n      <pubDate>Wed, 15 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI Licenses News Archives, Generative Coding From Plan to Pull Request, Recognizing Landmines, Streamlined Inference</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-248</link>\n      <description>The Batch AI News and Insights: Last week, I spoke about AI and regulation at the U.S. Capitol at an event that was attended by legislative and business leaders. I’m encouraged by the progress the open source community has made fending off regulations that would have stifled innovation.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-248</guid>\n      <pubDate>Wed, 08 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Apple’s Tiny LLMs, Amazon Rethinks Cashier-Free Stores, Predicting Scientific Discoveries</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-247</link>\n      <description>The Batch AI News and Insights: Inexpensive token generation and agentic workflows for large language models (LLMs) open up intriguing new possibilities for training LLMs on synthetic data. Pretraining...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-247</guid>\n      <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pop Song Generators, 3D Mesh Generators, Real-World Benchmarks, AI for Manufacturing</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-246</link>\n      <description>The Batch AI News and Insights: Much has been said about many companies’ desire for more compute (as well as data) to train larger foundation models.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-246</guid>\n      <pubDate>Wed, 24 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Agents With Low/No Code, Hallucinations Create Security Holes, Tuning for RAG Performance, GPT Store’s Lax Moderation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-245</link>\n      <description>The Batch AI News and Insights: Multi-agent collaboration is the last of the four key AI agentic design patterns that I’ve described in recent letters. Given a complex task like writing software, a multi-agent approach would break...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-245</guid>\n      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Autonomous Coding Agents, Instability at Stability AI, Mamba Mania, What Users Do With GenAI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-244</link>\n      <description>The Batch AI News and Insights: Planning is a key agentic AI design pattern in which we use a large language model (LLM) to autonomously decide on what sequence of steps to execute to accomplish a larger task.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-244</guid>\n      <pubDate>Wed, 10 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Microsoft Absorbs Inflection, Nvidia’s New GPUs, Managing AI Bio Risk, More Factual LLMs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-243</link>\n      <description>The Batch AI News and Insights: Tool use, in which an LLM is given functions it can request to call for gathering information, taking action, or manipulating data, is a key design pattern of AI agentic workflows.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-243</guid>\n      <pubDate>Wed, 03 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>One Agent For Many Worlds, Cross-Species Cell Embeddings, U.S. Deploys AI Targeting, Robo Football Gets Real</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-242</link>\n      <description>The Batch AI News and Insights: Last week, I described four design patterns for AI agentic workflows that I believe will drive significant progress this year...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-242</guid>\n      <pubDate>Wed, 27 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Robots Talk Back, AI Security Risks, Political Deepfakes, Pretrained Models on the Cheap</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-241</link>\n      <description>The Batch AI News and Insights: I think AI agent workflows will drive massive AI progress this year — perhaps even more than the next generation of foundation models. This is an important trend, and I urge everyone who works in AI to pay attention to it.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-241</guid>\n      <pubDate>Wed, 20 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anthropic Ups the Ante, India Warns Developers, Google Tests Generative News, Learning Language Without Language Training</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-240</link>\n      <description>The Batch AI News and Insights: I’ve noticed a trend in how generative AI applications are built that might affect both big companies and developers: The gravity of data is decreasing.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-240</guid>\n      <pubDate>Wed, 13 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Mistral Living Large, Google's Open Source Challenger, Robot Chemist, Schooling Language Models in Math</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-239</link>\n      <description>The Batch AI News and Insights: Progress on LLM-based agents that can autonomously plan out and execute sequences of actions has been rapid, and I continue to see month-over-month improvements.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-239</guid>\n      <pubDate>Wed, 06 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google's Troubled Gemini Launch, OpenAI's Next Act, Groq's Blazing Inference Speed, Faster Network Pruning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-238</link>\n      <description>The Batch AI News and Insights: I think the complexity of Python package management holds down AI application development more than is widely appreciated. AI faces multiple bottlenecks — we need more GPUs, better algorithms, cleaner data in large quantities.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-238</guid>\n      <pubDate>Wed, 28 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generated Video Gets Real(er), Nvidia Competitor Emerges, Neural Nets for Gymnastics, Efficient Optimizer</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-237</link>\n      <description>The Batch AI News and Insights: Earlier this month, my team AI Fund held its annual co-founder and CEO summit, where many of our collaborators gathered in California for two days to discuss how to build AI companies.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-237</guid>\n      <pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Recovers Ancient Scrolls, GPUs Strain Power Grid, Government Restricts Fake Voices, Better Image Generation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-236</link>\n      <description>The Batch AI News and Insights: The rise of cloud-hosted AI software has brought much discussion about the privacy implications of using it. But I find that users, including both consumers and developers...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-236</guid>\n      <pubDate>Wed, 14 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Taylor Swift Deepfakes, GPT-4 Biothreats, New Leaderboards, LLMs That Get Inside Your Head</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-235</link>\n      <description>The Batch AI News and Insights: On the LMSYS Chatbot Arena Leaderboard, which pits chatbots against each other anonymously and prompts users to judge which one generated a better answer, Google’s Bard (Gemini Pro)</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-235</guid>\n      <pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Jobs Proliferate, Big Compute Giveaway, Generated Video Upgrade, Higher Yields for Small Farms</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-234</link>\n      <description>The Batch AI News and Insights: Last year, a number of large businesses and individuals went to the media and governments and pushed the message that AI is scary, impossible to control, and might even lead to human extinction.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-234</guid>\n      <pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Machine Learning Detects Cancer Early, Language Model Learns Geometry, AI Creates Jobs, Nations Invest in Homegrown AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-233</link>\n      <description>The Batch AI News and Insights: Last week, I attended the World Economic Forum, an annual meeting of leaders in government, business, and culture at Davos, Switzerland.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-233</guid>\n      <pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Invades Consumer Products, OpenAI’s Platform Play, Watermarks for Synthetic Media, Generated Musical Accompaniments</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-232</link>\n      <description>The Batch AI News and Insights: As I wrote in an earlier letter, whether AI is sentient or conscious is a philosophical question rather than a scientific one, since there is no widely agreed-upon definition and test for these terms.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-232</guid>\n      <pubDate>Wed, 17 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Discovers New Antibiotics, OpenAI Revamps Safety, Researchers Define AGI, LLMs Go Multimodal</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-231</link>\n      <description>The Batch AI News and Insights: It is only rarely that, after reading a research paper, I feel like giving the authors a standing ovation. But I felt that way after finishing Direct Preference Optimization (DPO) by...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-231</guid>\n      <pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-4 Tells Lies, Microscopes Recognize Cancer, AI Fights Climate Change, Paris Spawns AI Startups</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-230</link>\n      <description>The Batch AI News and Insights: Last week, the New York Times (NYT) filed a lawsuit against OpenAI and Microsoft, alleging massive copyright infringements. The suit...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-230</guid>\n      <pubDate>Wed, 03 Jan 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hopes for 2024 from Anastasis Germanidis, Sara Hooker, Percy Liang, Sasha Luccioni, Pelonomi Moiloa, Kevin Scott</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-229</link>\n      <description>The Batch AI News and Insights: AI is progressing faster than ever. This is thrilling, yet rapid change can be disorienting. In such times, it’s useful to follow Jeff Bezos’ advice to think about not only what is changing but also what will stay the same.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-229</guid>\n      <pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Top Stories of 2023: Generative Everything, Doomsday Visions, Hollywood Versus AI, AI's Hit Record, Copyright Owners Revolt</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-228</link>\n      <description>The Batch - AI News &amp; Insights: Last week, I attended the NeurIPS conference in New Orleans. It was fun to catch up with old friends, make new ones, and also get a wide scan of current AI research.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-228</guid>\n      <pubDate>Wed, 20 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google’s Answer to GPT-4, Europe's Restrictions on AI, Open Source’s New Champion, Meta’s Vision Architecture</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-227</link>\n      <description>The Batch - AI News &amp; Insights: Last week, I participated in the United States Senate’s Insight Forum on Artificial Intelligence to discuss “Risk, Alignment, &amp; Guarding Against Doomsday Scenarios.”</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-227</guid>\n      <pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Amazon's New Chatbot, Pedestrian Detection, Limits on AI in Insurance, a Robot That Can Find Your Keys</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-226</link>\n      <description>The Batch - AI News &amp; Insights: Large language models, or LLMs, have transformed how we process text. Large vision models, or LVMs, are starting to change how we process images as well.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-226</guid>\n      <pubDate>Wed, 06 Dec 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Docs Wary of Medical AI, LLMs for Robots, Siemens' Industrial-Strength Language Model, Testing LLMs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-225</link>\n      <description>The Batch - AI News &amp; Insights: One year since the launch of ChatGPT on November 30, 2022, it’s amazing how many large language models are available. A year ago, ChatGPT was pretty much the only game in town for consumers (using a web user interface)...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-225</guid>\n      <pubDate>Wed, 29 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wild Times at OpenAI, Do Generative AI and Politics Mix?, More GPUs On the Way, Taming Transformers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-224</link>\n      <description>The Batch - AI News &amp; Insights: I’m delighted that the crisis at OpenAI, which you can read about below, seems to have been resolved with an agreement in principle for Sam Altman to return as CEO after his sudden firing last week.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-224</guid>\n      <pubDate>Wed, 22 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cyberattack Strikes OpenAI, Actors Reach Accord on AI, Anthropic Goes Steady with Google and Amazon</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-223</link>\n      <description>The Batch - AI News &amp; Insights: This week, I’m speaking at the World Economic Forum (WEF) and Asia-Pacific Economic Cooperation (APEC) meetings in San Francisco, where leaders in business and government have convened to discuss AI and other topics.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-223</guid>\n      <pubDate>Wed, 15 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>OpenAI Empowers Developers, AI Risk in the Spotlight, Decoding Schizophrenic Language, Synthetic Data Helps Image Classification</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-222</link>\n      <description>The Batch - AI News &amp; Insights: The past week has been an unusual split-screen time in AI. On one side, I see rapidly developing innovations from OpenAI, as well as Elon Musk's Grok and Kai-Fu Lee's open source Yi-34B large language model.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-222</guid>\n      <pubDate>Wed, 08 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Problematic White House AI Policy, Parked Cruise Robotaxis, Transparency For Foundation Models, Synthetic Data Helps Image Generators</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-221</link>\n      <description>The Batch - AI News &amp; Insights: I’ve always believed in democratizing access to the latest advances in artificial intelligence. As a step in this direction, we just launched “Generative AI for Everyone” on Coursera.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-221</guid>\n      <pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Feel the Fear! AI Turns Deadly, Data Disappears, Criminals Clone Voices, Hype Overshoots Reality</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-220</link>\n      <description>The Batch - AI News &amp; Insights: Welcome to the Halloween special issue of The Batch, where we take a look at fears associated with AI. In that spirit, I’d like to address a fear of mine: Sensationalist claims that AI could bring about human extinction will cause serious harm.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-220</guid>\n      <pubDate>Wed, 25 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI for Brain Surgery, Microsoft's ChatGPT Bill, Google's Generative Phones, Better Prompts</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-219</link>\n      <description>The Batch - AI News &amp; Insights: I wrote earlier about how my team at AI Fund saw that GPT-3 set a new direction for building language applications, two years before ChatGPT was released.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-219</guid>\n      <pubDate>Wed, 18 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-4 Opens Its Eyes, Meta’s Generative Facelift, Newsrooms Respond to AI, Beware Training on Generated Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-218</link>\n      <description>The Batch - AI News &amp; Insights: Over the weekend, Hamas launched a surprise terrorist attack on Israel, slaughtering and kidnapping civilians.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-218</guid>\n      <pubDate>Wed, 11 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI's New Power Couple, Movie Industry Limits AI, YouTube Goes Generative, More Web Data = More Bias</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-217</link>\n      <description>The Batch - AI News &amp; Insights: Andrej Karpathy, one of the Heroes of Deep Learning who currently works at OpenAI, quipped, “The hottest programming language is English.” While I appreciate the sentiment...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-217</guid>\n      <pubDate>Wed, 04 Oct 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ChatGPT Goes Multimodal, Dating Apps Embrace AI, Microsoft Doubles Down on Chatbots, AI Drives Energy Efficiency</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-216</link>\n      <description>The Batch - AI News &amp; Insights: As you can read below, improvements in chatbots have opened a market for bots integrated with dating apps. I’m excited about the possibilities for large language models (LLMs) in romantic relationships…</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-216</guid>\n      <pubDate>Wed, 27 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Text-to-Music Generation, Military Drone Swarm, Machine Translation Blocks Asylum Seekers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-215</link>\n      <description>The Batch - AI News &amp; Insights: While AI is a general-purpose technology that’s useful for many things, it isn’t good for every task under the sun. How can we decide which concrete use cases to build? If you’re helping a business figure out where to apply AI...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-215</guid>\n      <pubDate>Wed, 20 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ChatGPT Keeps Your Secrets, Microsoft Embraces GenAI Risk, Google Demands GenAI Disclosure</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-214</link>\n      <description>The Batch - AI News &amp; Insights: I recently spoke about “Opportunities in AI” at Stanford’s Graduate School of Business. I want to share a few observations from that presentation.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-214</guid>\n      <pubDate>Wed, 13 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>High Wages for AI Talent, Fake Newscasters, DeepMind’s Offspring Proliferate</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-213</link>\n      <description>The Batch - AI News &amp; Insights: Amidst rising worry about AI harms both realistic (like job loss) and unrealistic (like human extinction), It’s critical to understand AI’s potential to do tremendous good. Our new specialization, AI for Good...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-213</guid>\n      <pubDate>Wed, 06 Sep 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Text to 3D Animation, China Restricts Face Recognition, Self-Driving Cars Get Crash Recorders</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-212</link>\n      <description>The Batch - AI News &amp; Insights: I’d like to share a part of the origin story of large language models that isn’t widely known. A lot of early work in natural language processing (NLP) was funded by U.S. military intelligence...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-212</guid>\n      <pubDate>Wed, 30 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Battle Over Training Data Heats Up, AI Chip Challenger Gains Traction, Vision Transformers Get Flexible</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-211</link>\n      <description>The Batch - AI News &amp; Insights: Machine learning development is an empirical process. It’s hard to know in advance the result of a hyperparameter choice, dataset, or prompt to a large language model (LLM).</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-211</guid>\n      <pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPU Shortage, Affordable Robodog, Humanizing Large Language Models, China's Open LLMs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-210</link>\n      <description>The Batch - AI News &amp; Insights: An increasing variety of large language models (LLMs) are open source, or close to it. The proliferation of models with relatively permissive licenses gives developers more options for building applications.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-210</guid>\n      <pubDate>Wed, 16 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Medical AI Advances, Chatbots Work the Drive-Thru, ChatGPT Racks Up Server Fees, Image Generators Get an Upgrade</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-209</link>\n      <description>The Batch - AI News &amp; Insights: Do large language models understand the world? As a scientist and engineer, I’ve avoided asking whether an AI system “understands” anything.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-209</guid>\n      <pubDate>Wed, 09 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Drones of War, Generative AI in the Cloud, K-Pop in Many Tongues, Better Weather Forecasts</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-208</link>\n      <description>The Batch - AI News &amp; Insights: Last week, I returned home from Asia, where I spoke at Seoul National University in Korea, the National University of Singapore, and the University of Tokyo in Japan and visited many businesses.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-208</guid>\n      <pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ChatGPT Performance Drifts, Apple Grapples With Generative AI, Big AI Accepts Voluntary Limits</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-207</link>\n      <description>The Batch - AI News &amp; Insights: The White House announced voluntary commitments by seven AI companies, as you can read below. Most of the points were sufficiently vague that it seems easy for the White House and the companies to declare success without doing much that they don’t already do.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-207</guid>\n      <pubDate>Wed, 26 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generative AI On Trial, Chatbot Shoot-Out, Top AI Startups, No Hyperparameters External Inbox</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-206</link>\n      <description>The Batch - AI News &amp; Insights: Many laws will need to be updated to encourage beneficial AI innovations while mitigating potential harms. One example: Copyright law as it relates to generative AI is a mess!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-206</guid>\n      <pubDate>Wed, 19 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Stable Biases, Jobs at Risk, Efficient Robot Training, Banks Embrace AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-205</link>\n      <description>The Batch - AI News &amp; Insights: Internalizing this mental framework has made me a more efficient machine learning engineer: Most of the work of building a machine learning system is debugging rather than development.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-205</guid>\n      <pubDate>Wed, 12 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Secret Life of Data Labelers, Letting Chatbots See Your Data, Making Government Multilingual</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-204</link>\n      <description>The Batch - AI News &amp; Insights: Prompt-based development is making the machine learning development cycle much faster: Projects that used to take months now may take days.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-204</guid>\n      <pubDate>Wed, 05 Jul 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Meta’s Generative Strategy, Robots Invade Mechanical Turk, U.S. Gears Up to Regulate, Better Fine-Tuning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-203</link>\n      <description>The Batch - AI News &amp; Insights: Suddenly it seems like everyone wants to regulate AI. The European Union is on the verge of enacting a comprehensive AI Act that’s intended to mitigate risks and protect individual rights.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-203</guid>\n      <pubDate>Wed, 28 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generative Economic Engine, Tesla Semiautonomous Crashes, LLMs in the Courtroom, Seeing What the Brain Sees</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-202</link>\n      <description>The Batch - AI News &amp; Insights: I spent Sunday through Tuesday at the CVPR computer vision conference in Vancouver, Canada, along with over 4,000 other attendees. With the easing of the pandemic, it’s fantastic that large conferences are being held in person again!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-202</guid>\n      <pubDate>Wed, 21 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Taught by a Bot, Game Devs Embrace Generative AI, Japan's Data Free-For-All, Faster Diffusion</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-201</link>\n      <description>The Batch - AI News &amp; Insights: AI risks are in the air — from speculation that AI, decades or centuries from now, could bring about human extinction to ongoing problems like bias and fairness.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-201</guid>\n      <pubDate>Wed, 14 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bengio, Too, is Anxious About AI; LAION Tests Copyright Law; Abu Dhabi Develops Top Model; Optimizing Matrix Multiplication</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-200</link>\n      <description>The Batch - AI News &amp; Insights: Last week, safe.org asserted that “Mitigating the risk of extinction from AI should be a global priority alongside other societal-scale risks such as pandemics and nuclear war.”</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-200</guid>\n      <pubDate>Wed, 07 Jun 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New Push to Regulate AI, Weapons Detector Misses Knives, Grimes Embraces Voice Cloning, Text-to-Image Editing Evolves</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-199</link>\n      <description>The Batch - AI News &amp; Insights: In April, DeepLearning.AI launched a short course, “ChatGPT Prompt Engineering for Developers,” taught by OpenAI’s Isa Fulford and me. I’m thrilled to announce three more short courses, available today.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-199</guid>\n      <pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>EU's Algorithm Investigators, Crystal Ball for Interest Rates, Image Gen for Architects, Big Results From TinyML</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-198</link>\n      <description>The Batch - AI News &amp; Insights: t’s time to move beyond the stereotype that machine learning systems need a lot of data. While having more data is helpful, large pretrained models make it practical to build viable systems using a very small labeled training set...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-198</guid>\n      <pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google Goes All-In on AI, Do You Share GPT-3's Politics?, Generative AI Productivity Boost, Text to 3D Without 3D Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-197</link>\n      <description>The Batch - AI News &amp; Insights: A few weeks ago, I wrote about my team at Landing AI’s work on visual prompting. With the speed of building machine learning applications through text prompting and visual prompting...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-197</guid>\n      <pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Battlefield Chat, Protecting Artists' Styles, OpenAI Retools for Business, Language Models for Science Search</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-196</link>\n      <description>The Batch - AI News &amp; Insights: There are many great applications to be built on top of large language models, and the overhead of doing so may be lower than you think.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-196</guid>\n      <pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Scares Deep Learning Pioneer Geoffrey Hinton, Radio Tests AI DJs, Generated Political Attack Ad</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-195</link>\n      <description>The Batch - AI News &amp; Insights: Last week, we released a new course, ChatGPT Prompt Engineering for Developers, created in collaboration with OpenAI. This short, 1.5-hour course is taught by OpenAI’s Isa Fulford and me.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-195</guid>\n      <pubDate>Wed, 03 May 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Data Providers Hike Prices, Google AI Plans Leak, Music Stars Get Cloned, Image Generators Copy Training Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-194</link>\n      <description>The Batch - AI News &amp; Insights: My team at Landing AI just announced a new tool for quickly building computer vision models, using a technique we call Visual Prompting. It’s a lot of fun! I invite you to try it.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-194</guid>\n      <pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Record Industry Fights Generated Music, AWS Launches GenAI Platform, France Embraces Surveillance, Prompt Generation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-193</link>\n      <description>The Batch - AI News &amp; Insights: The competitive landscape of large language models (LLMs) is evolving quickly. The ultimate winners are yet to be determined, and already the current dynamics are exciting. Let me share a few observations...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-193</guid>\n      <pubDate>Wed, 19 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Startups Face Compute Shortage, Detecting Generated Text, Italy Bans ChatGPT, AI Trends Report</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-192</link>\n      <description>The Batch - AI News &amp; Insights: An ill-advised proposal for a 6-month pause in cutting-edge AI research got far more attention than I think it deserved. To me, this is a wake-up call that the AI doomers have done a much better job than the AI optimists at framing the narrative of progress in AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-192</guid>\n      <pubDate>Wed, 12 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Robot Metal Workers, Better Pay for Data Wranglers, Building a South African AI Hub, Collaborative Language Model</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-191</link>\n      <description>The Batch - AI News &amp; Insights: Last week, the tech news site The Information reported an internal controversy at Google. Engineers were concerned that Google’s Bard large language model was trained in part on output from OpenAI’s ChatGPT, which would have violated OpenAI’s terms of use.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-191</guid>\n      <pubDate>Wed, 05 Apr 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Public Attitudes Toward AI, Wanted: Prompt Engineers, AI Chips Slip Through U.S. Trade Ban, Efficient Reinforcement Learning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-190</link>\n      <description>The Batch - AI News &amp; Insights: Generative AI is taking off, and along with it excitement and hype about the technology’s potential. I encourage you to think of it as a general-purpose technology...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-190</guid>\n      <pubDate>Wed, 29 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How AI Kingpins Lost in Chatbots, Microsoft Cuts Ethics Squad, AI Curates the News, Training Robots in the Real World</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-189</link>\n      <description>The Batch - AI News &amp; Insights: Dear friends, here’s a quiz for you. Which company said this? “It’s always been a challenge to create computers that can actually communicate with and operate at anything like the level of a human mind. . . .</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-189</guid>\n      <pubDate>Wed, 22 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-4 Has Landed, AI Infers Talent, LLaMA Escapes into the Wild, Vision and Language Tightly Bound</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-188</link>\n      <description>The Batch - AI News &amp; Insights: Last week, Silicon Valley Bank (SVB), Signature Bank, and Silvergate Bank suddenly collapsed. If it passed uneventfully from your point of view, good for you!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-188</guid>\n      <pubDate>Wed, 15 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Voice Clones Go Viral, No Copyright for Generated Images, Text-Driven Video Style Transfer, Romania's AI Adviser</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-187</link>\n      <description>The Batch - AI News &amp; Insights: ChatGPT has raised fears that students will harm their learning by using it to complete assignments. Voice cloning, another generative AI technology, has fooled people into giving large sums of money to scammers, as you can read below in this issue of The Batch.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-187</guid>\n      <pubDate>Wed, 08 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>China Catches ChatGPT Fever, Top Publishers Embrace Text Generation, Replika’s Hot Bot Turns Cold, PCA Raises Red Flags</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-186</link>\n      <description>The Batch - AI News &amp; Insights: Landing AI, a sister company of DeepLearning.AI, just released its computer vision platform, LandingLens, for everyone to start using for free. You can try it...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-186</guid>\n      <pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Chatbots Gone Wild, Surveillance Takes Hold, Rules for Military AI, Robot Training Streamlined</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-185</link>\n      <description>The Batch - AI News &amp; Insights: As you can read below in this issue of The Batch, Microsoft’s effort to reinvent web search by adding a large language model snagged when its chatbot went off the rails.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-185</guid>\n      <pubDate>Wed, 22 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Titans Clash, Deepfaked Propaganda Spreads, Generative Models Resurrect Seinfeld, Unuseful Data Gets Pruned</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-184</link>\n      <description>The Batch - AI News &amp; Insights: AI has an Instagram problem. Just as Instagram’s parade of perfect physiques makes many people feel they don’t measure up, AI’s parade of exciting projects makes many people feel their own projects are lacking...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-184</guid>\n      <pubDate>Wed, 15 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generative AI on Trial, Text-to-Music Pumps Up the Volume, Robotaxis Face Headwinds, Mitigating AI Risk</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-183</link>\n      <description>The Batch - AI News &amp; Insights: Generative AI companies are being sued over their use of data (specifically images and code) scraped from the web to train their models. Once trained, such models can generate, on demand, images in a given artist’s style or code that executes particular tasks.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-183</guid>\n      <pubDate>Wed, 08 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tesla's Deceptive Demo, Image Generator Pays Artists for Training Data, AI Cheat Bedevils Esports, Language Models Defy Logic</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-182</link>\n      <description>The Batch - AI News &amp; Insights: Recent successes with large language models have brought to the surface a long-running debate within the AI community: What kinds of information do learning algorithms need in order to gain intelligence?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-182</guid>\n      <pubDate>Wed, 01 Feb 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Microsoft and OpenAI Forge $10 Billion Deal, Google Challenges ChatGPT, CNET Trusts Untrustworthy Text Generator, China Restricts Deepfakes</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-181</link>\n      <description>The Batch - AI News &amp; Insights: Today DeepLearning.AI is launching the Mathematics for Machine Learning and Data Science Specialization, taught by the world-class AI educator Luis Serrano. In my courses, when it came to math, I’ve sometimes said, “Don’t worry about it.”...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-181</guid>\n      <pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generated Code Makes Overconfident Programmers, China's Autonomous Drone Carrier, Does Bot Therapy Require Informed Consent?, Mining for Green Tech</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-180</link>\n      <description>The Batch - AI News &amp; Insights: In late December, Google reportedly issued a “code red” to raise the alarm internally to the threat of disruption of its business by large language models like OpenAI’s ChatGPT. Do large language models (LLMs) endanger Google's search engine business?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-180</guid>\n      <pubDate>Wed, 18 Jan 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ChatGPT Backlash, Face Recognition to Settle Scores, Deepfakes Versus Customer Service, Segmented Images Without Labeled Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-179</link>\n      <description>The Batch - AI News &amp; Insights: Will the future of large language models limit users to cutting-edge models from a handful of companies, or will users be able to choose among powerful models from a large number of developers?...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-179</guid>\n      <pubDate>Wed, 11 Jan 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Data Shortage?!, Precision-Guided Image Generation, Transparency for AI Vendors, AI in the Office</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-178</link>\n      <description>The Batch - AI News &amp; Insights: In last week’s issue of The Batch, Yoshua Bengio, Alon Halevy, Douwe Kiela, Been Kim, and Reza Zadeh shared their hopes for AI in 2023. I also asked people on Twitter and...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-178</guid>\n      <pubDate>Wed, 04 Jan 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hopes for 2023 from Yoshua Bengio, Been Kim, Douwe Kiela, Reza Zadeh, Alon Halevy</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-177</link>\n      <description>The Batch - AI News &amp; Insights: As we enter the new year, let’s view 2023 not as a single year, but as the first of more in which we will accomplish our long-term goals. Some results take a long time to achieve...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-177</guid>\n      <pubDate>Wed, 28 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Top AI Stories of 2022: AI Gets Creative, Relief for Coders, Language Models You Can Trust, One Model to Do Them All, Vision Transformers Bust Loose</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-176</link>\n      <description>The Batch - AI News &amp; Insights: As the winter holiday approaches, it occurs to me that, instead of facing AI winter, we are in a boiling-hot summer of AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-176</guid>\n      <pubDate>Wed, 21 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>FIFA World Cup's AI Referee, Apple Car Downshifts, Lensa AI Disrobes Users, Language Model Consults Database</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-175</link>\n      <description>The Batch - AI News &amp; Insights: What should be AI’s role in moderating the millions of messages posted on social media every day? The volume of messages means that automation is required. But the question of what is appropriate moderation versus inappropriate censorship lingers.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-175</guid>\n      <pubDate>Wed, 14 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>ChatGPT Mania, Crypto Fiasco Defunds AI Safety, Alexa Makes Up Stories, Vision Model Looks Into the Future</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-174</link>\n      <description>The Batch - AI News &amp; Insights: One of the dangers of large language models (LLMs) is that they can confidently make assertions that are blatantly false. This raises worries that they will flood the world with misinformation. If they could moderate their degree of confidence appropriately...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-174</guid>\n      <pubDate>Wed, 07 Dec 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Billboards Are Watching, City Goes Algorithmic, Auto-Translation for Unwritten Language, New Views of 3D Scenes Pronto!</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-173</link>\n      <description>The Batch - AI News &amp; Insights: On Monday, the European Union fined Meta roughly $275 million for breaking its data privacy law. Even though Meta’s violation was not AI specific, the EU’s response is a reminder that we need to build AI systems that preserve user privacy — not just to avoid fines...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-173</guid>\n      <pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Artists Rebel Against AI, One Weird Trick Beats Go Model, Neural Nets Vs. Decision Trees, More Bang Per Chip</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-172</link>\n      <description>The Batch - AI News &amp; Insights: Last week, Facebook’s parent company Meta released a demo of Galactica, a large language model trained on 48 million scientific articles. Two days later, amid controversy regarding the model’s potential to generate false or misleading...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-172</guid>\n      <pubDate>Wed, 23 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Trends in 2022, AI Isn't So Bad for Jobs, Price Optimization Vs. Price Hike, Visual Reasoning Advances</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-171</link>\n      <description>The Batch - AI News &amp; Insights: The population of Earth officially reached 8 billion this week. Hooray! It’s hard to imagine what so many people are up to. While I hope that humanity can learn how to leave only gentle footprints on the planet...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-171</guid>\n      <pubDate>Wed, 16 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Safety or Surveillance?, What Businesses Want from AI, Right-Sizing Models, AI-Driven Aquaculture</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-170</link>\n      <description>The Batch - AI News &amp; Insights: The economic downturn of the past six months has hit many individuals and companies hard, and I’ve written about the impact of rising interest rates on AI. The effects of high inflation, the Russian war in Ukraine, and an economic...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-170</guid>\n      <pubDate>Wed, 09 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Generative AI Brings Big Bucks, Assessing Ukraine War Damage, Candidates Target Voters, Translating 1,000 Languages</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-169</link>\n      <description>The Batch - AI News &amp; Insights. A new report from UN Climate Change says that the world might be on track for 2.5 °C of warming by the end of the century, a potentially catastrophic level of warming that’s far above the 1.5 °C target of the 2015 Paris Agreement.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-169</guid>\n      <pubDate>Wed, 02 Nov 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Happy Halloween! Neural Nets Awaken, Foundation Models Go Rogue, Bots Take Over the Office, GPUs Dry Up</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-168</link>\n      <description>The Batch - AI News &amp; Insights. Each year, AI brings wondrous advances. But, as Halloween approaches and the veil lifts between the material and ghostly realms, we see that spirits take advantage of these developments at least as much as humans do.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-168</guid>\n      <pubDate>Wed, 26 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: U.S. Blocks AI Chip Sales to China, Joe Rogan Meets Steve Jobs (Virtually), Massively Multilingual Translation, Smart Farms</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-167</link>\n      <description>The Batch - AI News &amp; Insights. Is prompt engineering — the art of writing text prompts to get an AI system to generate the output you want — going to be a dominant user interface for AI?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-167</guid>\n      <pubDate>Wed, 19 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Text-to-Video Explodes, Faster Fast Food, Regulating Medical AI, Coordinating Hurricane Relief</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-166</link>\n      <description>The Batch - AI News &amp; Insights. For the past decade, the rise of AI has been powered by the increasing speed and decreasing cost of GPUs and other accelerator chips. How long will this continue? The past month saw several events that might affect how GPU prices evolve.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-166</guid>\n      <pubDate>Wed, 12 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: DALL·E for Video, AI Startup Funding Falls, What the Dark Side of the Moon Looks Like, Modeling Spoken Conversation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-165</link>\n      <description>The Batch - AI News &amp; Insights. When I wrote recently about how to build a career in AI, several readers wrote to ask specifically about AI product management: the art and science of designing compelling AI products. I’ll share lessons I’ve learned about this here and in future letters.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-165</guid>\n      <pubDate>Wed, 05 Oct 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Robot Assistants Take a Step Forward, Nvidia Boosts AI as a Service, AI Enters Prisons, How to Train Vision Transformers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-164</link>\n      <description>The Batch - AI News &amp; Insights. In this letter, I’d like to address the serious matter of newcomers to AI sometimes experiencing imposter syndrome, where someone — regardless of their success in the field — wonders if they’re a fraud and really belong in the AI community.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-164</guid>\n      <pubDate>Wed, 28 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Data Scientists Analyze Data Science, AI Regulation Uses Undefined Terms, Robots LOL, AI Mattes Images</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-163</link>\n      <description>The Batch - AI News &amp; Insights. Activities such as writing code and solving math problems are often perceived as purely intellectual pursuits. But this ignores the fact that they involve the mental equivalent of muscle memory.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-163</guid>\n      <pubDate>Wed, 21 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Prompting DALL·E for Fun and Profit, Teaching Language Models New Info, Court Rules Against AI Proctoring, Predicting Breakdowns Keeps Factories Humming</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-162</link>\n      <description>The Batch - AI News &amp; Insights. Stable Diffusion, an image generation model that takes a text prompt and produces an image, was released a few weeks ago in a landmark event for AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-162</guid>\n      <pubDate>Wed, 14 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: GPU Geopolitics, Spotting Tax Cheats, Luring Subscribers, Accelerating Transformers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-161</link>\n      <description>The Batch - AI News &amp; Insights. Paywalled journals that block free access to scientific research are the bane of the academic community.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-161</guid>\n      <pubDate>Wed, 07 Sep 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Misinformation Recognition, China's AI ROI, Neural Nets Catch Fresher Fish, Object Detection Transformers Simplified</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-160</link>\n      <description>I’ve devoted several recent letters to building a career in AI. In this one, I’d like to discuss some fine points of finding a job.The typical job search follows a fairly predictable path.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-160</guid>\n      <pubDate>Wed, 31 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Regulations Proceed Locally, Taming Spurious Correlations, One Cool Robot, What a Molecule’s Structure Reveals</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-159</link>\n      <description>Last week, I wrote about switching roles, industries, or both as a framework for considering a job search. If you’re preparing to switch roles (say, taking a job as a machine learning engineer for the first time) or industries...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-159</guid>\n      <pubDate>Wed, 24 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Science Plagued by Machine Learning Mistakes, Deepfakes Censor Profanity, Wearable AI Helps Impaired Walking, Ensemble Models Simplified</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-158</link>\n      <description>The Batch - AI News &amp; Insights: Science Plagued by Machine Learning Mistakes, Deepfakes Censor Profanity, Wearable AI Helps Impaired Walking, Ensemble Models Simplified</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-158</guid>\n      <pubDate>Wed, 17 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Jobs Grow in Pharma, Self-Driving Safety Check, Holocaust Victims Identified, Protein Families Deciphered</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-157</link>\n      <description>The Batch - AI News &amp; Insights: AI Jobs Grow in Pharma, Self-Driving Safety Check, Holocaust Victims Identified, Protein Families Deciphered</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-157</guid>\n      <pubDate>Wed, 10 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: UK's Drone Superhighway, Largest Open Source Language Model, AI Protects Bees, Countering Biased Labels</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-156</link>\n      <description>While working on Course 3 of the Machine Learning Specialization, which covers reinforcement learning, I was reflecting on how reinforcement learning algorithms are still quite finicky.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-156</guid>\n      <pubDate>Wed, 03 Aug 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Military AI Spending Grows, Automated Talent Scout, Drive-Thru Car Inspection, Humanized Training for Robots</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-155</link>\n      <description>In this issue of The Batch: AI War Chest Grows | Drive-Thru Car Inspection Uses Computer Vision | AI computer vision grading soccer players...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-155</guid>\n      <pubDate>Wed, 27 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: In-Demand Job Titles, New Rules for Self-Driving Cars, How to Cut AI's Carbon Emissions, Learning from Metadata</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-154</link>\n      <description>Last week’s letter focused on coming up with AI project ideas, part of a series on how to build a career in the field. This letter describes how a sequence of projects might fit into your career path.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-154</guid>\n      <pubDate>Wed, 20 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Self-Driving Car Fleet Stalls, Homebrew DALL·E Goes Viral, Microsoft's AI Ethics Upgrade, When Higher Accuracy Hurts Some Classes</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-153</link>\n      <description>In the last two letters, I wrote about developing a career in AI and shared tips for gaining technical skills. This time, I’d like to discuss an important step in building a career: project work.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-153</guid>\n      <pubDate>Wed, 13 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Autonomous Atlantic Crossing, AI in the Courtroom, Satellite Photos Reveal Secrets, More Masking For Better Learning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-152</link>\n      <description>Last week, I wrote about key steps for building a career in AI: learning technical skills, doing project work, and searching for a job, all of which is supported by being part of a community. In this letter, I’d like to dive more deeply into the first</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-152</guid>\n      <pubDate>Wed, 06 Jul 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Machine Learning for Martian Drone, Regulators Punish Meta for Algorithmic Bias, Transformers Conquer Graphs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-151</link>\n      <description>The rapid rise of AI has led to a rapid rise in AI jobs, and many people are building exciting careers in this field. A career is a decades-long journey, and the path is not always straightforward.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-151</guid>\n      <pubDate>Wed, 29 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Next Step for Language Modeling, Predicting Wind Power, Even Bigger Transformers, Deep Doo-Doo</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-150</link>\n      <description>Many things in life have a positive side and a negative side. For instance, a new AI system might help democratize access, and at the same time it might be more accessible to people who have internet access than those who don’t.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-150</guid>\n      <pubDate>Wed, 22 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Google Engineer Claims Sentient AI, Ethics Team Grounds Taser Drones, Meta Reorgs AI Division, Deep Learning Optimizes Physical Designs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-149</link>\n      <description>A Google Engineer recently announced he believes that a language model is sentient. I’m highly skeptical that any of today’s AI models are sentient. Some reporters, to their credit, also expressed skepticism.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-149</guid>\n      <pubDate>Wed, 15 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Top 100 AI Startups, Inside the Mind of DALL·E 2, Child Welfare Officials Drop AI, Fresh Images From Cellular Automata</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-148</link>\n      <description>Last week, I wrote about how rising interest rates are likely to lead investors and other finance professionals to focus on short-term returns rather than longer-term investments. Nonetheless, I believe this is still a good time to invest in long-term bets on AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-148</guid>\n      <pubDate>Wed, 08 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Games Google, Actors Fight Deepfakes, Models Gain Good Judgement, Deep Learning Delivers Personalized Discounts</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-147</link>\n      <description>The United States Federal Reserve Bank has signaled that it will continue to raise interest rates. As one consequence, the stock market is significantly down, particularly tech stocks, relative to the beginning of the year.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-147</guid>\n      <pubDate>Wed, 01 Jun 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Special Issue! Foundational Algorithms, Where They Came From, Where They're Going</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-146</link>\n      <description>Years ago, I had to choose between a neural network and a decision tree learning algorithm. It was necessary to pick an efficient one, because we planned to apply the algorithm to a very large set of users on a limited compute budget.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-146</guid>\n      <pubDate>Wed, 25 May 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: One Model For Hundreds of Tasks, Recognizing Workplace Hazards, When Data Means Danger, Vision Transformer Upgrade</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-145</link>\n      <description>One of the challenges of building an AI startup is setting customer expectations. Machine learning is a highly experiment-driven field. Until you’ve built something, it’s hard to predict how well it will work. This creates a unique</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-145</guid>\n      <pubDate>Wed, 18 May 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Liberation for Large Language Models, AI Picks Music Hits, Robots in Hospitals</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-144</link>\n      <description>Last week, I described trends that AI Fund, the venture studio I lead, has seen in building AI startups. I'd like to discuss another aspect of building companies that’s unique to AI businesses: the controversial topic of data moats.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-144</guid>\n      <pubDate>Wed, 11 May 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Predicting the Next Pandemic, Driverless Cars Go Driverless, Managing Medical Uncertainty, Data-Efficient Vision Transformers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-143</link>\n      <description>AI Fund, which I lead, is a venture studio that works with entrepreneurs to build companies rapidly and increase their odds of success. We’ve evaluated a lot of AI startup ideas. There’s no one-size-fits-all template for building businesses.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-143</guid>\n      <pubDate>Wed, 04 May 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Recognizing Distracted Drivers, Training Fighter Pilots, Dominating the Bridge Table, Training Trillions of Parameters</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-142</link>\n      <description>It's official: Elon Musk will buy Twitter, pending approval of the transaction by the company's stockholders and the U.S. government. While some people are celebrating the deal in the name of free speech, others are worried about the platform’s future.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-142</guid>\n      <pubDate>Wed, 27 Apr 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: How DALL·E 2 Makes Images, Like GPT-3 But More Sensible, How AI Startups Spend Their Money, Robo Real Estate Agents</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-141</link>\n      <description>Last week, Elon Musk launched a surprise attempt to acquire Twitter. The $43-billion bid was motivated, he said, by his desire to protect free speech endangered by the company’s practice of promoting some tweets while burying others. To</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-141</guid>\n      <pubDate>Wed, 20 Apr 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Recognizing War Criminals in Ukraine, Salesbots Invade LinkedIn, AI Radiology Cleared for Clinics</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-140</link>\n      <description>With the pandemic easing in the United States and Canada, I’ve been traveling more in the last two weeks. I spoke at TED 2022 in Vancouver and ScaleUp:AI in New York and attended a manufacturing conference in California.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-140</guid>\n      <pubDate>Wed, 13 Apr 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Government Smacks Down Errant Algorithms, Animal Animations From Video, AI For Biofuel, Is There Learning After Overfitting?</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-139</link>\n      <description>The U.S. government punished an app vendor for building an algorithm based on ill-gotten data | Animal Animations From Video | Learning After Overfitting | Machine Learning boosts renewable fuels</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-139</guid>\n      <pubDate>Wed, 06 Apr 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Designs Chemical Weapons, AI Gains Cultural Awareness, New Chip Accelerates Transformers, Spotting Dangerous Mutations</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-138</link>\n      <description>AI Fund, the venture studio and investment firm that I lead, recently held a summit where CEOs and founders of portfolio companies shared ideas on topics from fundraising to building team culture.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-138</guid>\n      <pubDate>Wed, 30 Mar 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Builds AI, Face Recognition Sees Genetic Disorders, Stock Market Simulation, Tracking AI's Global Progress</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-137</link>\n      <description>I’ve always thought that how you treat those who are powerless shows your true character. People rarely mistreat others who have power over them -- for example, their boss — because they might suffer adverse consequences.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-137</guid>\n      <pubDate>Wed, 23 Mar 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI For President, Pig Sqeal Recognition, Help For Problem Gamblers, Hypernetworks For Hyper Training</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-136</link>\n      <description>Last week, I wrote about the grand challenge of artificial general intelligence. Other scientific and engineering grand challenges inspire me as well. For example, fusion energy, extended lifespans, and space colonization have massive potential to remake civilization (for good or ill).</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-136</guid>\n      <pubDate>Wed, 16 Mar 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Demand For AI Skills Exceeds Supply, Robot Dogs Learn to Fetch, Investor Bots Underperform, Algorithms Shortchange Elders</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-135</link>\n      <description>I’ve always thought that building artificial general intelligence — a system that can learn to perform any mental task that a typical human can — is one of the grandest challenges of our time. In fact, nearly 17 years ago, I co-organized a NeurIPS workshop on building human-level AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-135</guid>\n      <pubDate>Wed, 09 Mar 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Which Nation Dominates AI?, Meet Your Robot Colleagues, GANs Forecast Weather, Unmasking QAnon's Anonymous Conspiracy Theorist</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-134</link>\n      <description>Last week, DeepLearning.AI invited a group of learners to our Palo Alto office’s courtyard. We had a good time chatting about paths into AI, career trajectories, applications people were working on, and challenges they were facing.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-134</guid>\n      <pubDate>Wed, 02 Mar 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI For Unlimited Clean Energy, Stopping Robocalls, Reading Analog Meters, Choosing a Fine-Tuning Algorithm</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-133</link>\n      <description>Russian troops have invaded Ukraine, and the terrifying prospect of a war in Europe weighs on my mind. My heart goes out to all the civilians affected, and I hope we won’t see the loss of life, liberty, or property that many people fear.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-133</guid>\n      <pubDate>Wed, 23 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Race Driver Beats Humans, Apple Bets On Generated Music, Robots Don't Want Your Job, SOA Versus FBP For ML</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-132</link>\n      <description>We just launched a Data-Centric AI Resource Hub to help you improve the performance of AI systems by systematically engineering the underlying data. It offers new articles by Nvidia director of machine learning research...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-132</guid>\n      <pubDate>Wed, 16 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AlphaCode Beats Human Coders, Driving a Forklift In Pajamas, Facebook's New AI Cluster, Does Better Pretraining Yield Better Fine-Tuning?</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-131</link>\n      <description>I tested positive for Covid on Monday and mentioned this on social media. I’m grateful to the many people who wished me well. Reading your messages made me feel better. My unscientific feeling is that they helped clear my nose a bit!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-131</guid>\n      <pubDate>Wed, 09 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Chip Supplies At Risk, GPT-3 Goes to Finishing School, Fake Faces For Training Face Recognition, Roadblocks to Regulating AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-130</link>\n      <description>I’m writing this in Orlando, Florida, where I just spoke at the A3 Business Forum, a group that works to advance industrial automation through AI, robotics, and other tools. This was my first large conference since the pandemic started...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-130</guid>\n      <pubDate>Wed, 02 Feb 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Job Growth in Machine Learning, Amazon's AI-Driven Clothing Store, Transformers for Robot Vision, Hiring Algorithms Under Scrutiny</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-129</link>\n      <description>If you want to build a career in AI, it’s no longer necessary to be located in one of a few tech hubs such as Silicon Valley or Beijing. Tech hubs are emerging in many parts of the world, and cities large and small offer opportunities both for local talent and companies worldwide.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-129</guid>\n      <pubDate>Wed, 26 Jan 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Special #BeADeepLearner Issue! How to Learn, How to Get a Job, How to Keep Up, How to Break In From a Disadvantaged Background</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-128</link>\n      <description>How to Learn Machine Learning | How to Gain Practical Experience | How to Overcome Societal Obstacles | How to Get a Job in AI | How to Keep Up in a Changing Field</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-128</guid>\n      <pubDate>Wed, 19 Jan 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Recognizing Weapons, Reducing Garbage, Predicting Regime Change, Learning With Less Memory</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-127</link>\n      <description>AI continues to create numerous exciting career opportunities, and I know that many of you aim to develop a career in the field. While taking online courses in technical topics is an important step, being an AI professional requires more than technical skills.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-127</guid>\n      <pubDate>Wed, 12 Jan 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Failing AI 101, Google's Robot Workforce, AI Against High Taxes, Ethics for Automated Armies</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-126</link>\n      <description>One rule I try to live by is to not surprise my collaborators. During a project, for example, a deadline may slip, or a customer may drop out.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-126</guid>\n      <pubDate>Wed, 05 Jan 2022 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Hopes for 2022 from Alexei Efros, Abeba Birhane, Yoav Shoham, Chip Huyen, Matt Zeiler, Wolfram Burgard, Yale Song</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-125</link>\n      <description>As we approach the end of the year, many of us consider setting goals for next year. I wrote about setting learning goals in a previous letter. In this one, I’d like to share a framework that I’ve found useful: process goals versus outcome goals.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-125</guid>\n      <pubDate>Wed, 29 Dec 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Top AI Stories of 2021: Transformers Take Over, Models Balloon, Multimodal AI Takes Off, Governments Crack Down</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-123</link>\n      <description>As we approach the end of 2021, you may be winding down work and gearing up for the winter holiday. I’m looking forward to taking a break from work and hope you are too.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-123</guid>\n      <pubDate>Wed, 22 Dec 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: TikTok's Recommender Revealed, DeepMind's Not-So-Large Language Models, Neural Troll Trap, Recognizing Rotations</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-122</link>\n      <description>We just wrapped up the Data-Centric AI Workshop at the NeurIPS 2021 conference. It was packed with information about how to engineer data for AI systems.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-122</guid>\n      <pubDate>Wed, 15 Dec 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Bias in Predictive Policing, Timnit Gebru vs Corporate AI, Autism Recognized, Transformers for Reinforcement Learning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-121</link>\n      <description>Should we be optimistic or pessimistic about the prospects for ethical AI? I meet people who are encouraged by the progress we’ve made toward making AI more responsible and free of bias.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-121</guid>\n      <pubDate>Wed, 08 Dec 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Matches Patients to Drugs, Robots Crawl Sewers, New Voices for Atypical Speech, Graph Neural Networks Go Deep</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-120</link>\n      <description>I’ve seen many new technologies go through a predictable process on their journey from idea to large scale adoption. First, a handful of experts apply their ideas intuitively.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-120</guid>\n      <pubDate>Wed, 01 Dec 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Surveillance State In the Making?, Robot Fry Cook, U.S. AI Strategy, A Chatbot For Long Talks</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-119-2</link>\n      <description>I’m grateful to the AI community for the friendships it has brought me and the benefits it has brought to billions of people.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-119-2</guid>\n      <pubDate>Wed, 24 Nov 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Has AI Become Unaffordable?, Covid Confounds Price Prediction, Face Recognition Algorithms Are Not Equal, This Chatbot Knows How To Google</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-118</link>\n      <description>The physical world is full of unique details that differ from place to place, person to person, and item to item. In contrast, the world of software is built on abstractions that make for relatively uniform coding environments and user experiences.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-118</guid>\n      <pubDate>Wed, 17 Nov 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: GPT-3 For All, DeepMind's Goldmine, Facebook Unfriends Face Recognition, Empowering Robots To Find What They Need</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-117</link>\n      <description>On Monday, Landing AI (where I’m CEO) announced the close of a $57 million Series A funding round. The investment enables the company to continue building its data-centric MLOps platform for computer vision, with a focus on manufacturing visual inspection.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-117</guid>\n      <pubDate>Wed, 10 Nov 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Facebook's Algorithm Revealed, Google's Mobile AI Chip Unveiled, Art Forgeries Exposed, How Algorithms Understand Video</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-116</link>\n      <description>Dear friends, Years ago, whenever I had to do something boring or unpleasant — such as drive to work or go for a run — I used to listen to music to provide a distraction. Although I still appreciate music, as I got older I decided to cut out distractions.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-116</guid>\n      <pubDate>Wed, 03 Nov 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Halloween Special! Monsters of AI Including Tech Giants, Explosive Drones, Surveillance Democracies, Foundation Models</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-115</link>\n      <description>On Halloween, the veil lifts between the spirit and AI worlds, allowing the two to pass through one another. The resulting paranormal — or, as AI practitioners call it, paragaussian — phenomena raise questions...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-115</guid>\n      <pubDate>Wed, 27 Oct 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Regulating AI, Where the MLEs Are, Real-Time Voice Replacement, Robot Painter</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-114</link>\n      <description>In June, I announced the first Data-centric AI Competition. The deadline for submissions was in early September, and today I’m thrilled to announce the winners!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-114</guid>\n      <pubDate>Wed, 20 Oct 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Has a Web Problem, Google Goes Multimodal, Unfinished Symphony Completed, Transformers Get Faster Still</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-113</link>\n      <description>I’ve seen many friends transition from an academic or research role to a corporate role. The most successful ones adjusted to corporate work by shifting their mindset in a few crucial ways.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-113</guid>\n      <pubDate>Wed, 13 Oct 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Facebook on the Ropes, Tesla Tracks Driver Safety, Amazon Unleashes Guard Bot, Recognizing Outliers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-112</link>\n      <description>The image below shows two photos of the same gear taken under different conditions. From the point of view of a computer-vision algorithm — as well as the human eye — the imaging setup that produced the picture on the right makes</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-112</guid>\n      <pubDate>Wed, 06 Oct 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Allocates Covid Tests, Makeup Thwarts Face Recognition, Making Neural Nets Think Harder, NeurIPS Under Fire</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-111</link>\n      <description>In my experience, the most sophisticated decision makers tend to be hypothesis-driven thinkers. They may be engineers solving a technical problem, product designers fulfilling a customer need, or entrepreneurs growing a business. They</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-111</guid>\n      <pubDate>Wed, 29 Sep 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Distance Killing, Walmart Revs Driverless Delivery, Neural Net Learns Sense Of Style, UN Versus AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-110</link>\n      <description>In my experience, the most sophisticated decision makers tend to be hypothesis-driven thinkers. They may be engineers solving a technical problem, product designers fulfilling a customer need, or entrepreneurs growing a business.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-110</guid>\n      <pubDate>Wed, 22 Sep 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: China Clamps Down on Recommendation Engines, Robot Football, Ethics Survey, Reducing Elder Fall Risk</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-109</link>\n      <description>I invite you to be part of Pie &amp; AI, a series of meetups that bring together members of the global AI community for education and conversation. Pie &amp; AI is a place where you can network with peers, learn best practices from industry leaders...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-109</guid>\n      <pubDate>Wed, 15 Sep 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Predicting Climate Change, $500 Billion In AI Sales, Perceptrons Equal Transformers, Computer Vision Stares At The Sun</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-108</link>\n      <description>I’m thrilled to announce the NeurIPS Data-Centric AI Workshop, which will be held on December 14, 2021. You may have heard me speak about data-centric AI, in which we systematically engineer the data that feeds learning algorithms. This workshop is a chance to delve more deeply into the subject.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-108</guid>\n      <pubDate>Wed, 08 Sep 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Tesla's Dancing Robot, Adapting to Climate Change, Asking Language Models Nicely, Machine Unlearning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-107</link>\n      <description>Building AI products and businesses requires making tough choices about what to build and how to go about it. I’ve heard of two styles...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-107</guid>\n      <pubDate>Wed, 01 Sep 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Invasion of the Large Language Models, Can AI Recognize Opioid Addicts?, Better Coffee Through AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-106</link>\n      <description>Recently I attended an online celebration of my late grandfather’s life. He had passed away quietly in his sleep in March. Two days later, Coursera was publicly listed on the New York Stock Exchange. And two days after that, my son Neo Atlas Ng was born.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-106</guid>\n      <pubDate>Wed, 25 Aug 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Apple Weakens Privacy, AI's Invention Wins A Patent, Deere All-In For Robot Tractors, Atari-Playing Algo Learns New Trick</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-105</link>\n      <description>Say you’ve trained a learning algorithm and found that it works well on many examples but performs poorly on a particular subset, or slice, of the data. What can you do?...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-105</guid>\n      <pubDate>Wed, 18 Aug 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Recognizes Race in X-Rays, Robots Do Bees' Work, Transformers Pay Closer Attention, New Research Centers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-104</link>\n      <description>How much math do you need to know to be a machine learning engineer? It’s always nice to know more math! But there’s so much to learn that, realistically, it’s necessary to prioritize.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-104</guid>\n      <pubDate>Wed, 11 Aug 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Gunshot Detection Under Fire, AI At The Olympics, AlphaFold Goes Open-Source, Revenge Of The Perceptrons</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-103</link>\n      <description>Since the pandemic started, several friends and teammates have shared with me privately that they were not doing well emotionally. I’m grateful to each person who trusted me enough to tell me this. How about you — are you doing okay?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-103</guid>\n      <pubDate>Wed, 04 Aug 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Face Recognition Audit, Gamers Cheat with AI, Who Rules the Smart City?, Language Learning Generalizes to Other Domains</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-102</link>\n      <description>In earlier letters, I discussed some differences between developing traditional software and AI products, including the challenges of unclear technical feasibility, complex product specification, and need for data to start development.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-102</guid>\n      <pubDate>Wed, 28 Jul 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Amazon's Algorithmic Mismanagement, Brainwaves to Text, OpenAI Drops Robotics, Multi-Scene Synthesis</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-101</link>\n      <description>In a recent letter, I mentioned some challenges to building AI products. These problems are distinct from the issues that arise in building traditional software. They include unclear technical feasibility and complex product specification.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-101</guid>\n      <pubDate>Wed, 21 Jul 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Walking the Robot Dog, Mistaking German for English, Making Art With an Image Classifier, Zero-Shot Object Detection</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-100</link>\n      <description>I’ve been following with excitement the recent progress in space launches. Earlier this week, Richard Branson and his Virgin Galactic team flew a rocket plane 53 miles up, earning him astronaut wings.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-100</guid>\n      <pubDate>Wed, 14 Jul 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Zillow's New Neural Net, Optimizing Traffic City-Wide, Classifying Creepy Crawlies, Behavioral Cloning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-99</link>\n      <description>In a recent letter, I noted that one difference between building traditional software and AI products is the problem of complex product specification. With traditional software, product managers can specify a product in ways...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-99</guid>\n      <pubDate>Wed, 07 Jul 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Amazon's Grab-And-Go Grocery, The Trouble With Ethical AI, Airlines Optimized, Few-Shot Learning</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-98</link>\n      <description>Last week, I mentioned that one difference between traditional software and AI products is the problem of unclear technical feasibility. In short, it can be hard to tell whether it’s practical to build a particular AI system.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-98</guid>\n      <pubDate>Wed, 30 Jun 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Wildfire Alert Network, AI Invades Campuses, Synthetic Videos, Reviving Lost Traditions</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-97</link>\n      <description>With the rise of software engineering over several decades, many principles of how to build traditional software products and businesses are clear. But the principles of how to build AI products and businesses are still developing.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-97</guid>\n      <pubDate>Wed, 23 Jun 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Computers Spawn Computers, Self-Riding Bike, AI-Against-Covid Progress Report, Handwriting Deciphered</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-96</link>\n      <description>I’m thrilled to announce the first data-centric AI competition! I invite you to participate.For decades, model-centric AI competitions, in which the dataset is held fixed while you iterate on the code, have driven our field forward.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-96</guid>\n      <pubDate>Wed, 16 Jun 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Face Recognition at the Border, Robot Manicurists, Irresponsible AI, Synthesizing Real-World Scenes</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-95</link>\n      <description>Around the world, students are graduating. If you’re one of them, or if someone close to you is graduating, congratulations!!! My family swapped pictures on WhatsApp recently and came across this one, which was taken when I graduated from Carnegie Mellon (I’m standing in the middle).</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-95</guid>\n      <pubDate>Wed, 09 Jun 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Autonomous Weapons Used in Combat, Tesla Doubles Down on Computer Vision, Transformers Decipher Proteins</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-94</link>\n      <description>In school, most questions have only one right answer. But elsewhere, decisions often come down to a difficult choice among imperfect options. I’d like to share with you some approaches that have helped me make such decisions.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-94</guid>\n      <pubDate>Wed, 02 Jun 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Face Recognition for the Masses, Labeling Libel, Documenting Datasets, What Machines Want to See</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-93</link>\n      <description>Benchmarks have been a significant driver of research progress in machine learning. But they've driven progress in model architecture, not approaches to building datasets, which can have a large impact on performance in practical applications.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-93</guid>\n      <pubDate>Wed, 26 May 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Surgical Robots Go Autonomous, Virtual Reality On Speed, AI Crossword Champ, Algorithms For Orcas</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-92</link>\n      <description>I decided last weekend not to use a learning algorithm. Sometimes, a non-machine learning method works best. Now that my daughter is a little over two years old and highly mobile, I want to make sure the baby gate that keeps her away...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-92</guid>\n      <pubDate>Wed, 19 May 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch Special Issue! Machine Learning in Production: MLOps at scale with Amazon, Google, Microsoft</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-91</link>\n      <description>So you’ve trained an accurate neural network model in a Jupyter notebook. You should celebrate! But . . . now what? Machine learning engineering in production is an emerging discipline that helps individual engineers and teams put models into the hands of users.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-91</guid>\n      <pubDate>Wed, 12 May 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Rise of the Robocoders, Banks Embrace Face Recognition, Toward Greener AI, Cloning 3D Objects</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-90</link>\n      <description>It can take 6 to 24 months to bring a machine learning project from concept to deployment, but a specialized development platform can make things go much fasterMy team at Landing AI has been working on a platform called LandingLens...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-90</guid>\n      <pubDate>Wed, 05 May 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Europe's AI Backlash, Robot Debater, Car Wreck Recognition, Funding For Biomedicine</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-89</link>\n      <description>How much data do you need to collect for a new machine learning project? If you’re working in a domain you’re familiar with, you may have a sense based on experience or from the literature. But when you’re working on a novel application, it’s hard to tell.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-89</guid>\n      <pubDate>Wed, 28 Apr 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Top AI Startups, Muting Griefers, Re-Creating Lost Masterpieces, Better Video Search</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-88</link>\n      <description>Last Sunday was my birthday. That got me thinking about the days leading to this one and those that may lie ahead.As a reader of The Batch, you’re probably pretty good at math. But let me ask you a question, and please answer from your gut, without calculating.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-88</guid>\n      <pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Robots Supervise Robots, Bad Labels Plague Datasets, Large Language Models Learn Chinese, Transformers Assimilate GANs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-87</link>\n      <description>Machine learning development is highly iterative. Rather than designing a grand system, spending months to build it, and then launching it and hoping for the best, it’s usually better to build a quick-and-dirty system, get feedback, and use that feedback to improve the system.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-87</guid>\n      <pubDate>Wed, 14 Apr 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Doctors Distrust AI, New Life For Old Songs, ImageNet Without Faces, Learning From Random Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-86</link>\n      <description>Each year, the public relations agency Edelman produces a report on the online public’s trust in social institutions like government, media, and business. The latest Edelman Trust Barometer contains a worrisome finding: While technology was ranked the most trusted industry in the U.S.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-86</guid>\n      <pubDate>Wed, 07 Apr 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Tesla Under Investigation, Star Trek: The Chatbot, Attention For Vision Models, Spies Embrace AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-85</link>\n      <description>I have a two-year-old daughter, and am expecting my son to be born later this week. When I think about what we can do to build a brighter future for our children, the most important thing is...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-85</guid>\n      <pubDate>Wed, 31 Mar 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Networking License Plate Readers, Calling Out Unreproducible Results, Seeing What the Brain Sees, Chatbots Against Depression</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-84</link>\n      <description>Earlier today, I spoke at a DeepLearning.AI event about MLOps, a field that aims to make building and deploying machine learning models more systematic. AI system development will...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-84</guid>\n      <pubDate>Wed, 24 Mar 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Facebook's Algorithms Under Fire, Voice Clones Invade Entertainment, Old Drugs Fight New Illnesses, Auditors Assess AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-83</link>\n      <description>Over the past weekend, I happened to walk by a homeless encampment and went over to speak with some of the individuals there. I spoke with...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-83</guid>\n      <pubDate>Wed, 17 Mar 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Bringing Great Great Grandma Back To Life, Drones Play Defense, AI For Business Booms, Synthesizing New Video Angles</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-82</link>\n      <description>Engineers need strong technical skills to be successful. But many underestimate the importance of developing strong communication skills as well. Many AI products are so...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-82</guid>\n      <pubDate>Wed, 10 Mar 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Google Overhauls Ethics Team, Covid-19 Triage, Facebook Glasses, Data Science Jobs, Transformer Shoot-Out</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-81</link>\n      <description>One of the most important skills of an AI architect is the ability to identify ideas that are worth working on. Over the years, I’ve had fun applying machine learning to manufacturing, healthcare, climate change, agriculture, ecommerce, advertising, and...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-81</guid>\n      <pubDate>Wed, 03 Mar 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Face Datasets Under Fire, Baking With AI, Human Disabilities Baffle Algorithms, Ginormous Transformers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-80</link>\n      <description>AI-enabled automation is often portrayed as a binary on-or-off: A process is either automated or not. But in practice, automation is a spectrum, and AI teams have to choose where on this spectrum to operate. It’s important to...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-80</guid>\n      <pubDate>Wed, 24 Feb 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Untested Medical AI?, Art Appreciation For Robots, Why Models Don't Generalize, Autonomous Weapons Gain Support</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-79</link>\n      <description>When a lot of data is available, machine learning is great at automating decisions. But when data is scarce, consider using the data to augment human insight, so people can make better decisions...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-79</guid>\n      <pubDate>Wed, 17 Feb 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Drivers Under Surveillance, What Is Fairness?, Cancer Treatment, Vision Improves Language, Trade In Your Gucci</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-78</link>\n      <description>Over the last several decades, driven by a multitude of benchmarks, supervised learning algorithms have become really good at achieving high accuracy on test datasets. As valuable as this is...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-78</guid>\n      <pubDate>Wed, 10 Feb 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Feels Your Pain, GPT-3 Wants To Be Free, Privacy Is Harder Than You Think, Neural Network Performance Guaranteed</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-77</link>\n      <description>The price of shares in video game retailer GameStop (NYSE: GME) gyrated wildly last week. Many people viewed the stock’s rapid ascent as a David-versus-Goliath story: Tech-savvy individual retail investors coordinated their trades online to push up the price...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-77</guid>\n      <pubDate>Wed, 03 Feb 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Reading Viruses, Liberating Drones, Detecting Earthquakes, Social Networking For The Blind, Competition For GANs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-76</link>\n      <description>Last week, I talked about how best practices for machine learning projects are not one-size-fits-all, and how they vary depending on whether a project uses structured or unstructured data, and whether the dataset is small or big. Another dimension that affects best practices is which phase of...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-76</guid>\n      <pubDate>Wed, 27 Jan 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Detecting Guns, Fighting Lead Poisoning, Adversarial Training for Language-and-Vision, Financial Reports for Robots</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-75</link>\n      <description>Experience gained in building a model to solve one problem doesn’t always transfer to building models for other problems. How can you tell whether or not intuitions honed in one project are likely to generalize to another?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-75</guid>\n      <pubDate>Wed, 20 Jan 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Propagandists Lie About AI, Language Models Grok Images, Machines Triage Covid Cases, World Models Shrink</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-74</link>\n      <description>Last Wednesday, the U.S. Capitol building was overrun by insurrectionists at the moment when members of Congress were certifying the results of a national election. Reading accounts of how close the mob came to where those representatives had sheltered...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-74</guid>\n      <pubDate>Wed, 13 Jan 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Clues to Mental Illness, Enterprise AI, Bias in Compressed Models, U.S. AI Strategy</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-73</link>\n      <description>In my letter last week, I alluded to the way AI tends to concentrate power and wealth. This tendency worries me, and I believe it deserves more attention.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-73</guid>\n      <pubDate>Wed, 06 Jan 2021 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: New Year Wishes From Fei-Fei Li, Harry Shum, Ayanna Howard, Ilya Sutskever, Matthew Mattina</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-72</link>\n      <description>Happy New Year! As we enter 2021, I want to share with you three wishes I have for AI in the upcoming year. I hope we can: Narrow the gap between proofs-of-concept and production. While building good models is important...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-72</guid>\n      <pubDate>Wed, 30 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Biggest AI Stories of 2020: Covid Triage, Fun With GANs, Disinfo Whack-A-Mole, GPT Superstar, ImageNet Recall, FDA Approvals</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-71</link>\n      <description>Every year for the past decade, I flew to Singapore or Hong Kong to celebrate my mother’s birthday with her on December 22. This year, for the first time, we did it via Zoom.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-71</guid>\n      <pubDate>Wed, 23 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: New Coronavirus Treatments, Reimagining Robotaxis, Opening Historical Archives, Streamlining Simulations</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-70</link>\n      <description>When a researcher works for a company, what rights should they have to publish their work, and what rights should the company that sponsored the work have? This issue has come up many times in the AI community across many companies...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-70</guid>\n      <pubDate>Wed, 16 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Autonomous Helium Balloons, Seeing Eye AI, Muppet Models Estimate Weights and Measures, Labor Unions Fight Automation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-69</link>\n      <description>Like many people in the AI community, I am saddened by the sudden departure from Google of ethical AI researcher Timnit Gebru. Timnit is a tireless champion of diversity and fairness in AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-69</guid>\n      <pubDate>Wed, 09 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Intelligent Agent Vs. Fighter Pilot, GAN for Pajama Zooming, When AI Goes Wrong, Multimodal Learning for Medicine</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-68</link>\n      <description>The rise of AI creates opportunities for new startups that can move humanity forward. In the 1990s, the internet was embraced successfully by incumbent companies including Apple and Microsoft, but it also inspired hugely impactful...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-68</guid>\n      <pubDate>Wed, 02 Dec 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Government AI Falls Short, Face Recognition for Bears, Research Papers in One Sentence, Counting Crowds</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-67</link>\n      <description>Over the last two weeks, I described the importance of clean, consistent labels and how to use human-level performance (HLP) to trigger a review of whether labeling instructions need to be reviewed.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-67</guid>\n      <pubDate>Wed, 25 Nov 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Bias In Surprising Places, Retail Models Adjust to Covid, Faster Transformers, AI Patents Explode</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-66</link>\n      <description>Last week, I wrote about the limitation of using human-level performance (HLP) as a metric to beat in machine learning applications for manufacturing and other fields. In this letter, I would like to show why beating HLP isn’t always the best way to improve performance.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-66</guid>\n      <pubDate>Wed, 18 Nov 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Predicts the Vote, Face Recognition Looks for Criminals, Model Cow Makes Milk, Transformers Prove Theorems</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-65</link>\n      <description>Beating human-level performance (HLP) has been a goal of academic research in machine learning from speech recognition to X-ray diagnosis. When your model outperforms humans, you can argue that you’ve reached a significant milestone and publish a paper!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-65</guid>\n      <pubDate>Wed, 11 Nov 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Turning Tables on Face Recognition, Testing GPT-3, Recognizing Disinformation, Detecting Deepfakes</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-64</link>\n      <description>As I write this letter, the vote count is underway in yesterday’s U.S. presidential election. The race has turned out to be tight. In their final forecast last night, the political analysts at fivethirtyeight.com suggested an 89 percent chance that Joe Biden would win.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-64</guid>\n      <pubDate>Wed, 04 Nov 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Halloween Special! Skeletons in the AI Closet including Bias, Disinformation, Rivalries, Power-Hungry Models, Black Boxes</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-63</link>\n      <description>Welcome to this special Halloween issue of The Batch! In AI, we use many challenging technical terms. To help you keep things straight, I would like to offer some definitions that I definitely would not use.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-63</guid>\n      <pubDate>Wed, 28 Oct 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Researchers Under Fire, RL Agents in Danger, Bias in Synthetic Data, One Neuron to Rule Them All</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-62</link>\n      <description>Today Landing AI, where I am CEO, launched LandingLens, an AI-powered platform that helps manufacturers develop computer vision solutions that can identify defective products.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-62</guid>\n      <pubDate>Wed, 21 Oct 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Mapping Wildfires, Compressing Video, Humanizing Benchmarks, Training GANs on Small Datasets, Documenting Government AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-61</link>\n      <description>My father recently celebrated a milestone: He has completed 146 online courses since 2012. His studies have spanned topics from creative writing to complexity theory. Ronald Ng is a great example of lifelong learning.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-61</guid>\n      <pubDate>Wed, 14 Oct 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Deepfakes Against Oppression, Alexa Hears With Her Eyes, New Medical AI Standards, Action Recognition With a Twist</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-60</link>\n      <description>There’s a lot we don’t know about the future: When will a Covid-19 vaccine be available? Who will win the next election? Or in a business context, how many customers will we have next year?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-60</guid>\n      <pubDate>Wed, 07 Oct 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: GAN Special Issue! Ian Goodfellow For Real, Detecting Fakes, Including Minorities, Synthesizing Training Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-59</link>\n      <description>This special issue of The Batch celebrates the launch of our new Generative Adversarial Networks Specialization! GANs are among the most exciting technologies to emerge from deep learning. These networks learn in a very different way than typical supervised methods...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-59</guid>\n      <pubDate>Wed, 30 Sep 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: YouTube vs. Conspiracy Theorists, Robots That Think Ahead, GPU + CPU = The Future, Transformers Retooled</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-58</link>\n      <description>AI researchers keep coming up with impressive innovations: transformer-based language models, self-supervised learning, deep reinforcement learning, small data. All of these developments hold great promise.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-58</guid>\n      <pubDate>Wed, 23 Sep 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Training 1 Trillion Parameters, Medical AI Gets a Shot in the Arm, Does Bert Have Common Sense?, Revitalizing Chess</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-57</link>\n      <description>I’d like to share a programming tip that I’ve used for years. A large part of programming involves googling for code snippets you need on Stack Overflow and other websites. (Shh. Don’t tell the nondevelopers. ????)</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-57</guid>\n      <pubDate>Wed, 16 Sep 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Data for Defense, Predicting Credit Approvals, More Learning From Fewer Labels, Hunting for Planets</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-56</link>\n      <description>Today we take it for granted that many people know how to read and write. Someday, I hope, it will be just as common that people know how to write code. Several hundred years ago, society didn’t view language literacy as a necessary skill.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-56</guid>\n      <pubDate>Wed, 09 Sep 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Autonomous Air Freight, U.S. National AI Centers, Photorealistic Fantasy Tennis, Transformers Transform into RNNs</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-55</link>\n      <description>Did you ever spend days obsessing over a technical problem? If so, I applaud you. Determined pursuit of solutions to hard problems is an important step toward building deep expertise.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-55</guid>\n      <pubDate>Wed, 02 Sep 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Students Protest AI-Predicted Exam Scores, Autonomous Fighter Jet Outguns Humans, Computer Vision Sees Race</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-54</link>\n      <description>I’ve been trying to teach my toddler the alphabet. Despite having some educational experience, when she mispronounces a vowel for the nth time, I can’t help but feel like I’m doing it wrong.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-54</guid>\n      <pubDate>Wed, 26 Aug 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Predicting Car Crashes, Profiting From Deepfakes, Piloting Drone Swarms, Grading Data</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-53</link>\n      <description>Last week, I asked what values the AI community stands for. Thank you to everyone who replied! The email responses in aggregate ran to 55 pages of text, and I enjoyed reading all of them.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-53</guid>\n      <pubDate>Wed, 19 Aug 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Apple's AI Strategy, Retail Surveillance, Clothes That Fight Face Recognition, Suboptimal Optimizers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-52</link>\n      <description>Earlier this week, I asked a question on social media: What is the most important problem that the AI community should work on? Thousands of you responded. The most frequently mentioned themes included...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-52</guid>\n      <pubDate>Wed, 12 Aug 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Faster AI Chips, Smarter Prosthetic Legs, Transformers for Image Processing, Humbling Overconfident Models</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-51</link>\n      <description>I spoke last week at the National Intergovernmental Audit Forum, a meeting attended by U.S. federal, state, and local government auditors. (Apparently some of the organizers had taken AI for Everyone.)</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-51</guid>\n      <pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: GPT-3 Gone Wild, Covid Tech Roundup, AI for Sushi, Video Classification on Steroids</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-50</link>\n      <description>Over the weekend, my family celebrated my grandfather’s 102nd birthday on Zoom. We dialed in from Hong Kong (my grandfather), the U.S. (myself), the UK, Singapore, and New Zealand.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-50</guid>\n      <pubDate>Wed, 29 Jul 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Corporate Deepfakes, Robot Chemists, Smart Boutiques, Curvy Neural Nets</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-49</link>\n      <description>I received a copy of Why We Sleep: Unlocking the Power of Sleep and Dreams as a Christmas gift — back in the pre-Covid era — and finished it last weekend. This book by Matthew Walker, director of UC Berkeley’s sleep and neuroimaging lab...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-49</guid>\n      <pubDate>Wed, 22 Jul 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Easier Shopping, Smarter Manufacturing, Scarier Monsters, Sharper Headlines</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-48</link>\n      <description>Last week, I wrote about the U.S. Immigration and Customs Enforcement (ICE) policy that would have forced international students to leave the country if their university went fully online to manage the risk of Covid-19.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-48</guid>\n      <pubDate>Wed, 15 Jul 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Biased Datasets, AI for Footballers, Transformers for Object Detection, Photorealistic Faces From History</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-47</link>\n      <description>I am appalled by the policy, announced on Monday by U.S. Immigrations and Customs Enforcement (ICE), that international students in the country on an F-1 visa must leave if their school goes fully online to cope with Covid-19.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-47</guid>\n      <pubDate>Wed, 08 Jul 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Bias in Plain Sight, Apple's New AI, Amazon's Virtual Fitting Room, Bot Besties, Researchers Go Ape</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-46</link>\n      <description>We know that biased data leads to biased machine learning. But does the problem go beyond that? A few colleagues asked about this after a heated exchange on Twitter between Yann LeCun and Timnit Gebru (see “Image Resolution in Black and White” below).</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-46</guid>\n      <pubDate>Wed, 01 Jul 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Who Still Sells Face Recognition to Police?, AI's Talent Pipeline, Misleading Research, Scaling Models from Serve</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-45</link>\n      <description>I was dismayed on Monday to read that the U.S. is suspending the H1-B visa program at least through the end of the year. This effort to discourage immigration can only bring distress to workers from other countries and harm to the U.S.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-45</guid>\n      <pubDate>Wed, 24 Jun 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: NLP Special Issue! Powerful techniques from Amazon, Apple, Facebook, Google, Microsoft, Salesforce</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-44</link>\n      <description>I’m thrilled to announce our new Natural Language Processing Specialization! Courses 1 and 2 are available on Coursera. We expect to release Courses 3 and 4 soon.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-44</guid>\n      <pubDate>Wed, 17 Jun 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI's Progress Problem, Recognizing Masked Faces, Mapping Underwater Ecosystems, Augmenting Features</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-43</link>\n      <description>Last week, I wrote about the diversity problem in AI and why we need to fix it. I asked you to tell us about your experiences as a Black person in AI or share the names of Black colleagues you admire.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-43</guid>\n      <pubDate>Wed, 10 Jun 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Facebook’s Unruly Algorithm, AI That Does the Dishes, New Life for Old Data, Models That Take Shortcuts, YOLO</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-42</link>\n      <description>Like many of you, I’m deeply saddened by the events of the past week. I’m horrified by the senseless violence perpetrated against Black communities and appalled by the persistent racial injustice of our society. It’s long past time to right these terrible wrongs.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-42</guid>\n      <pubDate>Wed, 03 Jun 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI's New Supercomputer, GANs as Simulators, Giant Chatbot Shootout, Big Tech Meets Big Oil</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-41</link>\n      <description>I’m proud to announce that we held the 100th Pie &amp; AI last Friday. Pie &amp; AI is our meetup series that brings together members of the AI community worldwide for education, conversation, and a slice of pie.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-41</guid>\n      <pubDate>Wed, 27 May 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Covid-19 Infects AI, Learning from Small Data, Generated Music Goes Mainstream, Fighting Pandemic Disinformation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-40</link>\n      <description>I recently received an email from one of you who lives far from the major AI hubs, saying, “I feel like I’m all alone.” I want to tell you all: Even if it sometimes feels like you’re facing the challenges of work and life in isolation, you are not alone!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-40</guid>\n      <pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Covid Mask Detection, Brain To Text Translation, AI Chooses Tax Brackets, Neural Network Security</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-39</link>\n      <description>Inflection points in society create opportunities. The rise of online video was an inflection point that enabled scalable online education. The rise of the GPS-enabled smartphones similarly enabled Uber, Lyft, Airbnb, and many other services.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-39</guid>\n      <pubDate>Wed, 13 May 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Pandemic Triage, Asia's AI Advantage, Detecting Deepfakes, Cleaning Oceans, Music Industry in a Box</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-38</link>\n      <description>There has been a lot of excitement about the idea of using deep learning to diagnose diabetic retinopathy: That is by taking a photo of the retina and using AI to detect signs of disease.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-38</guid>\n      <pubDate>Wed, 06 May 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Tesla Parts the Curtain, Detecting Dangerous Bugs, Mapping Disaster Zones, Detecting Humans from Wi-Fi</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-37</link>\n      <description>In an earlier letter, I wrote about the challenge of robustness: A learning algorithm that performs well on test data often doesn’t work well in a practical production environment because the real world turns out to be different than the test set.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-37</guid>\n      <pubDate>Wed, 29 Apr 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Versus Covid Wake-Up Call, Straight Poop from a Smart Toilet, Sharper Image Inputs, Predicting Farm Yields</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-36</link>\n      <description>I spoke on Tuesday at Coursera’s annual conference. It was the company’s most well-attended conference yet, and the first to be held online. Higher education is in for turbulent times. With campuses shut down indefinitely...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-36</guid>\n      <pubDate>Wed, 22 Apr 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI For Medicine Special! Eric Topol’s Planetary Health System, Discovering Drugs, Diagnosing Heart Disease</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-35</link>\n      <description>This week’s issue of The Batch is all about medical applications of AI. Amid the current pandemic, the marriage of AI and medicine is more urgent than ever. My father is a practicing doctor, and I grew up seeing firsthand how the right...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-35</guid>\n      <pubDate>Wed, 15 Apr 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Antiviral Resources, Robot Superstars, AI for Scientists, 3D Data Augmentation, BatchNorm Demystified</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-34</link>\n      <description>Last week, I asked readers to tell me what they’re doing to address the Covid-19 pandemic. Many of you wrote to say you’re taking actions such as shopping for neighbors, making masks, and creating posters that promote Covid-safe practices...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-34</guid>\n      <pubDate>Wed, 08 Apr 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI-Against-Coronavirus Datasets, Voice Cloning for the Masses, Finding Unexploded Bombs, Seeing See-Through</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-33</link>\n      <description>In the earlier weeks of Covid-19, I didn’t want to contribute noise, so that experts in infectious disease could be heard. But now the situation has worsened. I spoke yesterday with Eric Topol, a cardiologist at Scripps Institute and author of Deep...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-33</guid>\n      <pubDate>Wed, 01 Apr 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Tracking China's Covid-19 Revival, A Robot Star is Born, Discovering New Antibiotics, Rightsizing Neural Networks</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-32</link>\n      <description>When I was younger, I was not a fan of working from home. Too many distractions! So I worked a lot in coffee shops. They turned out to be convenient places to talk to strangers and ask for feedback about products I was working on...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-32</guid>\n      <pubDate>Wed, 25 Mar 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Versus Coronavirus, Quantum Neural Networks, Workers Prepare for Job Losses, Translating Cuneiform</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-31</link>\n      <description>The unfolding Covid-19 crisis calls for individuals and organizations to step up and contribute to the common good. I believe that the tech community has an important role to play in slowing the progress of the virus and shortening the time...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-31</guid>\n      <pubDate>Wed, 18 Mar 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Mind-Controlled Robot Hand, Fashions by GAN, Face Recognition Countermeasure, More Realistic Deepfakes, Learning From</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-30</link>\n      <description>The Covid-19 pandemic is a tragedy that demands urgent and humane response. It’s also pushing us toward new ways of gathering and sharing information — and that may be a faint silver lining that might grow brighter over time.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-30</guid>\n      <pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Standing Up for Ethical AI, Efficient Transformers, Up-Rezzing Old Movies, Watching the Factory Floor, Pumping Iron</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-29</link>\n      <description>In addition to creating tremendous value, AI is creating tremendous concentrations of power. Our community is wrestling with what constitutes fair use of that power.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-29</guid>\n      <pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Political Deepfakes, Tree-Dodging Drones, Faster Brain Surgery, Robot Chicken Overlords</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-28</link>\n      <description>I chatted recently with MIT researcher Lex Fridman on his Artificial Intelligence podcast, where we discussed our experiences teaching deep learning.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-28</guid>\n      <pubDate>Wed, 26 Feb 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Chatbots Sue Telemarketers, Neural Nets See Around Corners, Police Read License Plates, Deep Learning Pioneers Speak</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-27</link>\n      <description>Nearly a decade ago, I got excited by self-taught learning and unsupervised feature learning — ways to learn features from unlabeled data that afterward can be used in a supervised task. These ideas contributed only marginally to practical performance back then, but I’m pleased</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-27</guid>\n      <pubDate>Wed, 19 Feb 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Hotter Dating Profiles, Pandas in Love, Compute for Coronavirus, Deepfake Detection, Self-Driving Cars Run Amok</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-26</link>\n      <description>A student once asked me, “Can an AI ever love?”Since the early days of AI, people have wondered whether AI can ever be conscious or feel emotions. Even though an artificial general intelligence may be centuries away, these are important questions.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-26</guid>\n      <pubDate>Wed, 12 Feb 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Robot Warehouse Workers, Cities Under Surveillance, Chatbot Comedian, Automated Drug Design</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-25</link>\n      <description>Many of us apply labels to ourselves that shape our identity. Some say, “I’m a sports fan,” and this attitude motivates behaviors such as cheering for the home team. Others identify themselves as introverts, extroverts, vegetarians, gamers, athletes, scientists, and/or engineers.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-25</guid>\n      <pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Fighting Coronavirus, Hunting Drug Dealers, Fixing Bugs, Regulating AI, Accelerating Text-to-Speech</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-24</link>\n      <description>I just finished reading BJ Fogg’s new book, Tiny Habits: The Small Changes That Change Everything. Fogg explains that the best way to build a new habit is to start small and succeed, rather than starting too big and giving up.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-24</guid>\n      <pubDate>Wed, 29 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Algorithm Designs Living Machines, AI Interviews Job Applicants, Recommender Spreads Misinformation, Researchers</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-23</link>\n      <description>Last week brought reports that the European Union is considering a three- to five-year moratorium on face recognition in public places. Face recognition is a problematic technology with significant potential for misuse, and I celebrate the EU’s effort to...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-23</guid>\n      <pubDate>Wed, 22 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Steals CES, Hollywood Predicts Blockbusters, Washington Regulates AI, Neural Nets Study Math</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-22</link>\n      <description>One of the best gifts a friend gave me last year was recommending a book that I subsequently read and loved. She didn’t even have to buy it for me! The right information at the right time can have a powerful impact. It can alter the course of a project or even a career.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-22</guid>\n      <pubDate>Wed, 15 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Facebook Takes on Deepfakes, Google AI Battles Cancer, Researchers Fight ImageNet Bias, AI Grows Globally</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-21</link>\n      <description>Many accomplished students and newly minted AI engineers ask me: How can I advance my career? Companies in many industries are building AI teams, but it may not be obvious how to join one of them. Different companies organize their teams differently and...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-21</guid>\n      <pubDate>Wed, 08 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hopes for AI in 2020: Yann LeCun, Kai-Fu Lee, Anima Anandkumar, Richard Socher</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-20</link>\n      <description>Happy New Year! Every winter holiday, I pursue a learning goal around a new topic. In between visits with family, I end up reading a lot. About a decade ago, my holiday topic was pedagogy — I still remember lugging a heavy suitcase of books through the airport — and this...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-20</guid>\n      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Biggest AI Stories of 2019: Driverless Cars Stall, Deepfakes Go Mainstream, Face Recognition Gets Banned</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-19</link>\n      <description>We here at deeplearning.ai wish you a wonderful holiday season. As you consider your New Year’s resolutions and set goals for 2020, consider not just what you want to do, but what you want to learn: What courses do you want to take this year?</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-19</guid>\n      <pubDate>Tue, 24 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Companies Slipping on AI Goals, Self Training for Better Vision, Muppets and Models, China Vs US?, Only the Best</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-18</link>\n      <description>I’ve been reflecting on the NeurIPS 2019 conference, which ended on Saturday. It’s always a wonderful event, but this year I found it a bittersweet experience. Bitter because the conference has grown so much that we no longer focus on a handful of ideas.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-18</guid>\n      <pubDate>Wed, 18 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Amazon's Surveillance Network, AI That Gets the Facts Right, Deepfakes Get Regulated, Predicting Volcanic Eruptions</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-17</link>\n      <description>I’ve been thinking about AI and ethics. With the techlash and an erosion of trust in technology as a positive force, it’s more important than ever that we make sure the AI community acts ethically.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-17</guid>\n      <pubDate>Wed, 11 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Google AI Explains Itself, Neural Net Fights Bias, AI Demoralizes Champions, Solar Power Heats Up</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-16</link>\n      <description>Recently I wrote about major reasons why AI projects fail, such as small data, robustness, and change management. Given that some AI systems don't work, users and customers sometimes rightly wonder whether they should trust an AI system.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-16</guid>\n      <pubDate>Wed, 04 Dec 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Sony Goes AI, Intel's GPU Killers, Transformer Networks In Disguise, Malicious Models Fool Bias Detection</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-15</link>\n      <description>I’ll be spending Thanksgiving with Nova and watching her taste turkey for the first time. To those of you who celebrate Thanksgiving, I hope you spend time with loved ones, reflect on what you are thankful for, and discuss some very important topics around the dinner table...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-15</guid>\n      <pubDate>Wed, 27 Nov 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Artificial Noses, Surveillance on Wheels, Unwelcome Researchers, Privacy Problems, Beyond Bounding Boxes</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-14</link>\n      <description>My last two letters explored robustness and small data as common reasons why AI projects fail. In the final letter of this three-part series, I’d like to discuss change management. Change management isn’t an issue specific to AI, but given the technology’s disruptive nature...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-14</guid>\n      <pubDate>Wed, 20 Nov 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Self-Driving Cars That Can't See Pedestrians?! Evolutionary Algorithms, Fish Recognition, Fighting Fraud</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-13</link>\n      <description>In this series exploring why machine learning projects fail, let’s examine the challenge of “small data.” Given 1 million labeled images, many teams can build a good classifier using open source.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-13</guid>\n      <pubDate>Wed, 13 Nov 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: DeepMind Masters StarCraft 2, AI Attacks on Amazon, A Career in Robot Management, Banks Embrace Bots</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-12</link>\n      <description>Building AI systems is hard. Despite all the hype, AI engineers struggle with difficult problems every day. For the next few weeks, I’ll explore some of the major challenges. Today’s topic: The challenge of building AI systems that are robust to real-world conditions.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-12</guid>\n      <pubDate>Wed, 06 Nov 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Daemon Spawn, AGI Takeover, Deepfake Deluge, Bias Crisis - How Scared Should You Be?</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-11</link>\n      <description>Welcome to the Halloween edition of The Batch! I promised last week to share some common reasons for AI project failures. But first, let’s start with some of the least common reasons.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-11</guid>\n      <pubDate>Wed, 30 Oct 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Robot Hand Works Rubik’s Cube, Self-Driving Tanks Roll Toward Battle, Face Rec Dataset Sparks Lawsuit, Bayes Finds</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-10</link>\n      <description>I’ve heard this conversation in multiple companies: Machine learning engineer: Look how well I did on the test set! Business owner: But your ML system doesn’t work. This sucks! Machine learning engineer: But look how well I did on the test set!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-10</guid>\n      <pubDate>Wed, 23 Oct 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: TensorFlow Versus PyTorch, Autonomous Drone Races, State-of-the-Art with Less Compute, NLP for Rare Languages</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-9</link>\n      <description>I just replaced my two-year-old phone with a new one and figured out how to take long-exposure photos of Nova even while she’s asleep and the lights are very low. This piece of technology brought me a surprising amount of joy!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-9</guid>\n      <pubDate>Wed, 16 Oct 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Tesla Acquires DeepScale, France Backs Face Recognition, Robots Learn in Virtual Reality, Acquirers Snag AI Startups</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-8</link>\n      <description>Last week, I saw a lot of social media discussion about a paper using deep learning to generate artificial comments on news articles. I’m not sure why anyone thinks this is a good idea. At best, it adds noise to the media environment.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-8</guid>\n      <pubDate>Wed, 09 Oct 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Google Achieves Quantum Supremacy, Amazon Aims To Sway Lawmakers, AI Predicts Basketball Plays, Face Detector</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-7</link>\n      <description>Thinking about the future of machine learning programming frameworks, I recently reread computer scientist Fred Brooks’ classic essay, “No Silver Bullet: Essence and Accidents of Software Engineering.” Three decades after...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-7</guid>\n      <pubDate>Wed, 02 Oct 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Global Surveillance Survey, AI’s Crisis of Reproducibility, Construction Drones, Bots Cheat at Hide-and-Seek</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-6</link>\n      <description>I read an interesting paper comparing the results of traditional passive learning (sitting in a lecture) versus active methods like the flipped classroom, where students watch videos at home and work on exercises in class.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-6</guid>\n      <pubDate>Wed, 25 Sep 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Robot Farm Workers, Making Algorithms Rock, Automating Contract Negotiations, Recognizing Accented Speech</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-5</link>\n      <description>Over the weekend, we hosted our first Pie &amp; AI meetup in Kuala Lumpur, Malaysia, in collaboration with the AI Malaysia group, MDEC, and ADAX. The event was part of Malaysia’s AI &amp; Data Week 2019. Several people traveled from neighboring southeast Asian countries to attend!</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-5</guid>\n      <pubDate>Wed, 18 Sep 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Autonomous Nuclear Weapons?!, Fighting Deepfakes, Recognizing Chimps, Automating Fast Food</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-4</link>\n      <description>When it comes to artificial intelligence, one of the biggest mistakes large companies make is thinking tactically rather than strategically. What’s the difference? Some taxi companies thought they had the internet revolution...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-4</guid>\n      <pubDate>Wed, 11 Sep 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Taming Dangerous AI, Microscopes Spot Tumors, NLP Grades Standardized Tests, Viz Without Mesh</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-3</link>\n      <description>I traveled to Taiwan last week, where I met many CEOs interested in AI transformation of traditional companies. I also visited Taiwan AI Labs which, similar to OpenAI, started as a nonprofit AI research institute.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-3</guid>\n      <pubDate>Wed, 04 Sep 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Gunning for GPUs, Football for DRL, Navigation for the Blind, Mystery Signals From Outer Space</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-2</link>\n      <description>We ended a busy week in Colombia hosting a Pie &amp; AI meetup in Medellín. I met hundreds of engineers and business professionals excited to take the next step in their AI careers. I was energized by the enthusiasm the Colombia community had for collaborating...</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-2</guid>\n      <pubDate>Wed, 28 Aug 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Clothes That Thwart Surveillance, DeepMind in the Hot Seat, BERT’s Revenge, Federal AI Standards</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-1</link>\n      <description>I am writing to you from Colombia today, and am excited to announce the opening of our office in Medellín. The office will serve as the Latin American headquarters for three of the companies in our AI ecosystem: Landing AI, deeplearning.ai, and AI Fund.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-1</guid>\n      <pubDate>Wed, 21 Aug 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI for Artists, Relief for Programmers, Diagnosing Heart Disease, Emotional Un-Intelligence, Multilingual Text-to-Speech</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-xvi</link>\n      <description>Shortly after Pi day (3/14), I announced our Pie &amp; AI series of meetups. We held them in Seattle in March and London in April. We just hosted our third Pie &amp; AI meetup to celebrate the launch of the final course in the deeplearning.ai TensorFlow Specialization.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-xvi</guid>\n      <pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Wiring the Brain for AI, Diagnosing Cancer, Generating Realistic Videos, Innovating in Africa</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-xv</link>\n      <description>I recently met an engineer at a large travel agency who had built a fun ML project for sending guests greetings. This was one of the company’s first forays into ML. The project did not generate any revenue, and their managers discouraged them from doing more work on ML.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-xv</guid>\n      <pubDate>Wed, 24 Jul 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Shows Emotional Intelligence, Machines Beat Humans at Poker, Watson Takes Up Tennis, GANs Reveal What They’ve Learned</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-xiv</link>\n      <description>My stash of new blank notebooks just arrived in the mail. I have a weakness for stationery. I always feel that if only I had the perfect pen and notebook, I might have better ideas.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-xiv</guid>\n      <pubDate>Wed, 17 Jul 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Faking out FaceTime, deciphering lost languages, predicting scientific discoveries, reading body language, recycling with robots</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-xiii</link>\n      <description>If you wonder how often I take online courses myself, the answer is: Quite often. I have a longstanding interest in AI for healthcare.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-xiii</guid>\n      <pubDate>Wed, 10 Jul 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Predicting Violence, DeepNude, Preparing For Robots, Regulating Medical AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-xii</link>\n      <description>As we were working on the latest course of the deeplearning.ai TensorFlow Specialization, instructor Laurence Moroney messaged me his LSTM-generated poetry, created by learning from a database of roughly 100 Irish song lyrics.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-xii</guid>\n      <pubDate>Wed, 03 Jul 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Grieving for Dead Robots, Hacking Animal Brains, Navigating Without GPS, Watching Electrons</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-xi</link>\n      <description>AI is still compute-hungry. With supervised learning algorithms and emerging approaches to self-supervised and unsupervised learning, we are nowhere near satisfying this hunger.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-xi</guid>\n      <pubDate>Wed, 26 Jun 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI Jobs in Flux, Robot Tanks, Deepfakes in DC, Psychosis Detection</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-x</link>\n      <description>Last Friday, I attended the International Conference on Machine Learning. I spoke at the AI and Climate Change workshop on projects we’re doing to model methane emissions and on wind turbines. John Platt gave an overview of climate issues.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-x</guid>\n      <pubDate>Wed, 19 Jun 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Easy Deepfakes, Sustainable AI, Biased Data, Realistic Image Generation</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-ix</link>\n      <description>I spoke last week at re:MARS, Amazon's conference focusing on machine learning, automation, robotics, and space. I heard great talks from Jeff Bezos, Kate Darling, Ken Goldberg, Marc Raibert, and others.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-ix</guid>\n      <pubDate>Wed, 12 Jun 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Detecting Fake News, Fighting Climate Change, Seeing Into the Future, Rescue Robots, and More AI News</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-viii</link>\n      <description>Healthcare is one of many sectors being transformed by AI. I have a personal interest in it, since my father worked on machine learning for diagnosis of liver diseases almost 40 years ago. It’s thanks partly to this work that I learned about AI from an early age.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-viii</guid>\n      <pubDate>Wed, 05 Jun 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Deepfakes, Robot Ships, Small Data, Autonomous Trucking, More AI News</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-vii</link>\n      <description>In March, I announced our Pie &amp; AI series of meetups. Since then, we've held events in Seattle and London, two growing centers of AI talent. It’s inspiring to see AI develop around the world and not just in Silicon Valley and Beijing.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-vii</guid>\n      <pubDate>Wed, 29 May 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Face Recognition Sparks Revolt, Deepfakes Find Their Voice, Retail Embraces AI</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-vi</link>\n      <description>So many people who are just starting out in machine learning are doing amazing work. With online education, open source software, and open publications, it takes less time than ever to go from 0 to 100 in ML.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-vi</guid>\n      <pubDate>Wed, 22 May 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Explainable AI, Smaller Models, Labeled Data On Tap, Algorithms On Trial</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-v</link>\n      <description>I’ve been thinking a lot about \"small data.\" If you have an image classification problem and 1,000,000 images, then dozens of teams around the world can build a good classifier.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-v</guid>\n      <pubDate>Wed, 15 May 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: AI With Fashion Sense, Robot Farmers, Schooling Alexa, Sharper Computer Vision</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-iv</link>\n      <description>A first for my three-month-old daughter Nova: an outing to the park. As my mother and I watched her staring at a tree. I realized what a novel experience it must be to see a tree close-up for the first time.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-iv</guid>\n      <pubDate>Wed, 08 May 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Invisibility Cloak For Computer Vision, Algorithmic Music Rocks, Automating Justice</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-iii</link>\n      <description>On Monday, I delivered a keynote via teleconference for Dubai's AI Everything conference. It was inspiring to see so many governments, businesses, and social enterprises coming together to talk about AI.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-iii</guid>\n      <pubDate>Wed, 01 May 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Un-Redacting Mueller, Attack Of The Robot Dogs, AI Gaming Champs, Training Data Transparency</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-ii</link>\n      <description>I spent my birthday last week thinking about how AI can be used to address one of humanity's most pressing problems: climate change.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-ii</guid>\n      <pubDate>Wed, 24 Apr 2019 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Batch: Initializing Neural Networks Tutorial, Automatic Annotation, The Robots are Winning, Drones Go Commercial</title>\n      <link>https://www.deeplearning.ai/the-batch/issue-i</link>\n      <description>We're busily wrapping up the Machine Learning Yearning book. Meanwhile, we'd like to give you regular updates on important developments in AI, with an emphasis on helping you build a career or business in it.</description>\n      <guid isPermaLink=\"false\">https://www.deeplearning.ai/the-batch/issue-i</guid>\n      <pubDate>Wed, 17 Apr 2019 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_thinkingmachines.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Thinking Machines Lab - Connectionism</title>\n    <link>https://thinkingmachines.ai/blog/</link>\n    <description>Shared science and news from the team</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_thinkingmachines.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:51:17 +0000</lastBuildDate>\n    <item>\n      <title>Interaction Models: A Scalable Approach to Human-AI Collaboration</title>\n      <link>https://thinkingmachines.ai/blog/interaction-models/</link>\n      <description>Interaction Models: A Scalable Approach to Human-AI Collaboration by Thinking Machines</description>\n      <guid isPermaLink=\"false\">https://thinkingmachines.ai/blog/interaction-models/</guid>\n      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>On-Policy Distillation</title>\n      <link>https://thinkingmachines.ai/blog/on-policy-distillation/</link>\n      <description>On-Policy Distillation by Kevin Lu in collaboration with others at Thinking Machines</description>\n      <guid isPermaLink=\"false\">https://thinkingmachines.ai/blog/on-policy-distillation/</guid>\n      <pubDate>Mon, 27 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>LoRA Without Regret</title>\n      <link>https://thinkingmachines.ai/blog/lora/</link>\n      <description>LoRA Without Regret by John Schulman in collaboration with others at Thinking Machines</description>\n      <guid isPermaLink=\"false\">https://thinkingmachines.ai/blog/lora/</guid>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Modular Manifolds</title>\n      <link>https://thinkingmachines.ai/blog/modular-manifolds/</link>\n      <description>Modular Manifolds by Jeremy Bernstein</description>\n      <guid isPermaLink=\"false\">https://thinkingmachines.ai/blog/modular-manifolds/</guid>\n      <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Defeating Nondeterminism in LLM Inference</title>\n      <link>https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/</link>\n      <description>Defeating Nondeterminism in LLM Inference by Horace He in collaboration with others at Thinking Machines</description>\n      <guid isPermaLink=\"false\">https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/</guid>\n      <pubDate>Wed, 10 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_weaviate.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Weaviate Blog</title>\n    <link>https://weaviate.io/blog</link>\n    <description>Latest updates from Weaviate</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_weaviate.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:51:18 +0000</lastBuildDate>\n    <item>\n      <title>Your LLM Is Only as Good as What It Retrieves</title>\n      <link>https://weaviate.io/blog/retrieval-quality-rag-overview</link>\n      <description>A Researcher's Perspective on Retrieval Quality in RAG Systems</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/retrieval-quality-rag-overview</guid>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate 1.37 Release</title>\n      <link>https://weaviate.io/blog/weaviate-1-37-release</link>\n      <description>This release introduces the built-in MCP Server, Extensible Tokenizers, Diversity Search (MMR), and Query Profiling as previews, along with Incremental Backups, Gemini audio support for multi2vec-google, and the new BlobHash property type.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-1-37-release</guid>\n      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Engram: Memory by Weaviate</title>\n      <link>https://weaviate.io/blog/engram-deep-dive</link>\n      <description>A deep dive into Engram, our managed memory service for agents which is simple to get started but adaptable to any use case.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/engram-deep-dive</guid>\n      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate Shared Cloud now generally available on AWS</title>\n      <link>https://weaviate.io/blog/aws-shared-cloud-launch</link>\n      <description>Weaviate Shared Cloud is now generally available on AWS in US East and Europe, giving teams a fully managed, AI-native database on the provider and region that works best for them.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/aws-shared-cloud-launch</guid>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Oh Memories, Where'd You Go</title>\n      <link>https://weaviate.io/blog/engram-internal-use-case</link>\n      <description>Two weeks of dogfooding Engram, Weaviate's memory product, in daily Claude Code sessions. This surfaced where a dedicated memory product adds value, and the specific mechanics that prevent integration with coding assistants from working well.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/engram-internal-use-case</guid>\n      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Multimodal Embeddings and RAG: A Practical Guide</title>\n      <link>https://weaviate.io/blog/multimodal-guide</link>\n      <description>Multimodal embeddings allow AI systems to search and reason across text, images, audio, and video in their native formats. This blog covers the key intuitions behind how this all works and walks through three practical implementations using Weaviate and Gemini.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/multimodal-guide</guid>\n      <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Your Code is Your Schema: Weaviate Managed C# Client</title>\n      <link>https://weaviate.io/blog/weaviate-managed-dotnet-client</link>\n      <description>Use semantic search and RAG in C# with the Weaviate Managed .NET client — attribute-driven schema, type-safe queries, and safe migrations, all in idiomatic .NET.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-managed-dotnet-client</guid>\n      <pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Securing Enterprise AI with Weaviate</title>\n      <link>https://weaviate.io/blog/weaviate-security-enterprise</link>\n      <description>A complete guide on how to secure Weaviate enterprise deployments with OIDC, RBAC, and multi-tenant isolation.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-security-enterprise</guid>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate 1.36 Release</title>\n      <link>https://weaviate.io/blog/weaviate-1-36-release</link>\n      <description>This release introduces HFresh vector index (Preview), and brings Server-side Batching, Object TTL, Async Replication Improvements, Drop Inverted Indices, and Backup Restoration Cancellation to general availability.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-1-36-release</guid>\n      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building A Legal RAG App in 36 Hours</title>\n      <link>https://weaviate.io/blog/legal-rag-app</link>\n      <description>Learn how we built a production-ready, end-to-end RAG application in just 36 hours using the Query Agent and the new Weaviate Agent Skills library.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/legal-rag-app</guid>\n      <pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate Authentication &amp; Authorization: A Complete Security Guide</title>\n      <link>https://weaviate.io/blog/weaviate-security-authn-authz</link>\n      <description>Learn how to secure your Weaviate vector database with API keys, OIDC, and role-based access control (RBAC). Includes practical examples and setup steps.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-security-authn-authz</guid>\n      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Weaviate Agent Skills</title>\n      <link>https://weaviate.io/blog/weaviate-agent-skills</link>\n      <description>Build production-ready agent workflows with a single prompt in Claude Code, Cursor, and GitHub Copilot.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-agent-skills</guid>\n      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Limit in the Loop</title>\n      <link>https://weaviate.io/blog/limit-in-the-loop</link>\n      <description>Memory isn't just a feature for AI applications—it's infrastructure. As agents scale, the limited loop of stateless interactions breaks down, and continuity becomes a systems problem that requires active maintenance.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/limit-in-the-loop</guid>\n      <pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate in 2025: Reliable Foundations for Agentic Systems</title>\n      <link>https://weaviate.io/blog/weaviate-in-2025</link>\n      <description>2025 was a defining year for us at Weaviate. Instead of chasing shiny features, we focused on an overarching goal - upgrading our infrastructure and technology in order to better support AI systems.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-in-2025</guid>\n      <pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>We are not your parents’ (and grandparents’) Database</title>\n      <link>https://weaviate.io/blog/not-your-grandparents-database</link>\n      <description>Why vector databases are here to stay.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/not-your-grandparents-database</guid>\n      <pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing the Weaviate C# Client</title>\n      <link>https://weaviate.io/blog/weaviate-csharp-client-release</link>\n      <description>The Weaviate C# client is now generally available! This release brings a modern and intuitive API for .NET developers, making it easier than ever to build AI-powered applications.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-csharp-client-release</guid>\n      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate 1.35 Release</title>\n      <link>https://weaviate.io/blog/weaviate-1-35-release</link>\n      <description>This release introduces Object Time-to-Live (TTL), zstd compression support, flat index RQ quantization, multimodal support with Weaviate Embeddings, runtime configurable OIDC certificates and much more.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-1-35-release</guid>\n      <pubDate>Mon, 29 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Context Engineering -  LLM Memory and Retrieval for AI Agents</title>\n      <link>https://weaviate.io/blog/context-engineering</link>\n      <description>Context engineering is how AI agents manage LLM memory—selecting, retrieving, and organizing context from short-term and long-term memory to improve reliability in production.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/context-engineering</guid>\n      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AWS 2025 Rising Star Technology Partner</title>\n      <link>https://weaviate.io/blog/aws-2025-partner-award</link>\n      <description>Weaviate recognized by AWS Partners in Benelux as leaders in helping customers drive innovation</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/aws-2025-partner-award</guid>\n      <pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing the new Weaviate Java Client v6</title>\n      <link>https://weaviate.io/blog/weaviate-java-client-v6</link>\n      <description>The Weaviate Java client v6 is now generally available! This release brings a completely redesigned API that embraces modern Java patterns, simplifies common operations, and makes working with vector databases more intuitive than ever.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-java-client-v6</guid>\n      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing RAG to Life with Dify and Weaviate</title>\n      <link>https://weaviate.io/blog/dify-and-weaviate</link>\n      <description>Learn how to use the Dify and Weaviate integration to build RAG applications.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/dify-and-weaviate</guid>\n      <pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate 1.34 Release</title>\n      <link>https://weaviate.io/blog/weaviate-1-34-release</link>\n      <description>1.34 introduces flat index support with RQ quantization, server-side batching improvements, new client libraries, Contextual AI integration and much more.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-1-34-release</guid>\n      <pubDate>Tue, 11 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate security release - Medium and High severity fixes for CVE-2025-67818 and CVE-2025-67819</title>\n      <link>https://weaviate.io/blog/weaviate-security-release-november-2025</link>\n      <description>Weaviate announces two CVEs that are fixed in updated versions of our product.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-security-release-november-2025</guid>\n      <pubDate>Fri, 07 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>From Kitchen Experiments to Five Star Service: The Weaviate Development Journey</title>\n      <link>https://weaviate.io/blog/day0-day1-day2-operations</link>\n      <description>What building AI apps with Weaviate and cooking have in common? Let’s find out!</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/day0-day1-day2-operations</guid>\n      <pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evals and Guardrails in Enterprise workflows (Part 3)</title>\n      <link>https://weaviate.io/blog/evals-enterprise-workflows-3</link>\n      <description>Hands-on patterns: Design pattern for gen-AI enterprise applications, with Arize AI.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/evals-enterprise-workflows-3</guid>\n      <pubDate>Tue, 04 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unleash Real-Time Agentic AI with Streaming Agents on Confluent Cloud and Weaviate</title>\n      <link>https://weaviate.io/blog/confluent-streaming-agents-and-weaviate</link>\n      <description>Learn how Confluent’s Streaming Agents and Weaviate combine real-time context with semantic understanding for agentic AI.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/confluent-streaming-agents-and-weaviate</guid>\n      <pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>A Simpler, More Transparent Pricing Model for Weaviate Cloud</title>\n      <link>https://weaviate.io/blog/weaviate-cloud-pricing-update</link>\n      <description>Weaviate Cloud gets an updated pricing model.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-cloud-pricing-update</guid>\n      <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Legacy data to RAG : Modernise Your Apps with Amazon Sagemaker Unified Studio</title>\n      <link>https://weaviate.io/blog/sagemaker-studio-rag</link>\n      <description>A guide to seamlessly transform data sitting in lakes and warehouses for GenAI capable applications</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/sagemaker-studio-rag</guid>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>When Good Models Go Bad</title>\n      <link>https://weaviate.io/blog/when-good-models-go-bad</link>\n      <description>A strategic guide to the costs, risks and rewards of upgrading embedding models in production AI</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/when-good-models-go-bad</guid>\n      <pubDate>Thu, 09 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Rethinking Vector Search at Scale: Weaviate's Native, Efficient and Optimized Multi-Tenancy</title>\n      <link>https://weaviate.io/blog/weaviate-multi-tenancy-architecture-explained</link>\n      <description>Learn how Weaviate's native multi-tenancy architecture delivers scalable vector search with one shard per tenant, dynamic resource management, and true data isolation.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-multi-tenancy-architecture-explained</guid>\n      <pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate 1.33 Release</title>\n      <link>https://weaviate.io/blog/weaviate-1-33-release</link>\n      <description>1.33 brings compression by default for optimal resource utilization, powerful 1-bit rotational quantization (RQ), streamlined server-side batch imports, enhanced OIDC group management, and collection aliases become generally available (GA).</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-1-33-release</guid>\n      <pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Building Multi-Agent Systems with Crew AI and Weaviate</title>\n      <link>https://weaviate.io/blog/building-multi-agent-systems</link>\n      <description>Learn about how you can build multi-agent systems with CrewAI and Weaviate.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/building-multi-agent-systems</guid>\n      <pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evals and Guardrails in Enterprise workflows (Part 2)</title>\n      <link>https://weaviate.io/blog/evals-guardrails-enterprise-workflows-2</link>\n      <description>Hands-on patterns: LLM-as-Judge with LangChain and W&amp;B</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/evals-guardrails-enterprise-workflows-2</guid>\n      <pubDate>Thu, 25 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate is now ISO 27001 compliant</title>\n      <link>https://weaviate.io/blog/weaviate-iso-compliant</link>\n      <description>Announcing Weaviate has achieved ISO 27001 compliance.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-iso-compliant</guid>\n      <pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Search Mode Benchmarking</title>\n      <link>https://weaviate.io/blog/search-mode-benchmarking</link>\n      <description>Learn how Search Mode compares against Hybrid Search on the BEIR, LoTTe, BRIGHT, EnronQA, and WixQA Information Retrieval benchmarks.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/search-mode-benchmarking</guid>\n      <pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Accelerating Data Workflows with Query Agent, now GA</title>\n      <link>https://weaviate.io/blog/query-agent-generally-available</link>\n      <description>The Query Agent is now generally available! Learn how the interface to databases is shifting with the introduction of agentic retrievers – domain experts at using Weaviate’s APIs with your data.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/query-agent-generally-available</guid>\n      <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Using Weaviate Cloud Queries in MacOS apps</title>\n      <link>https://weaviate.io/blog/apple-and-weaviate-2</link>\n      <description>A practical guide on using Weaviate Cloud Queries in MacOS apps.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/apple-and-weaviate-2</guid>\n      <pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Chunking Strategies to Improve LLM RAG Pipeline Performance</title>\n      <link>https://weaviate.io/blog/chunking-strategies-for-rag</link>\n      <description>Learn how chunking strategies improve LLM RAG pipelines, retrieval quality, and agent memory performance across production AI systems.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/chunking-strategies-for-rag</guid>\n      <pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>8-bit Rotational Quantization: How to Compress Vectors by 4x and Improve the Speed-Quality Tradeoff of Vector Search</title>\n      <link>https://weaviate.io/blog/8-bit-rotational-quantization</link>\n      <description>Get spun around by our new vector quantization algorithm that utilizes the power of random rotations to improve the speed-quality tradeoff of vector search with Weaviate.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/8-bit-rotational-quantization</guid>\n      <pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Evals and Guardrails in Enterprise workflows (Part 1)</title>\n      <link>https://weaviate.io/blog/evals-guardrails-enterprise-workflows-1</link>\n      <description>Evals and Guardrails in enterprise workflows part 1</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/evals-guardrails-enterprise-workflows-1</guid>\n      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Elysia: Building an end-to-end agentic RAG app</title>\n      <link>https://weaviate.io/blog/elysia-agentic-rag</link>\n      <description>Elysia is an open-source, decision tree-based agentic RAG framework that dynamically displays data, learns from user feedback, and chunks documents on-demand. Built with pure Python logic and powered by Weaviate, it's designed to be the next evolution beyond traditional text-only AI assistants.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/elysia-agentic-rag</guid>\n      <pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why, When and How to Fine-Tune a Custom Embedding Model</title>\n      <link>https://weaviate.io/blog/fine-tune-embedding-model</link>\n      <description>Key consideration for customizing an embedding model through fine-tuning it on company- or domain-specific data to improve the downstream retrieval performance in RAG applications.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/fine-tune-embedding-model</guid>\n      <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build enterprise workflows with Langchain and Weaviate v3</title>\n      <link>https://weaviate.io/blog/enterprise-workflow-langchain-weaviate</link>\n      <description>LangChain and Weaviate v3 power scalable AI with fast, type-safe RAG workflows, practical code, and future-ready features like LLM eval and event-driven design.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/enterprise-workflow-langchain-weaviate</guid>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Agent Workflow Automation with n8n and Weaviate</title>\n      <link>https://weaviate.io/blog/agent-workflow-automation-n8n-weaviate</link>\n      <description>You can now use Weaviate with n8n for no-code agentic workflows. This article teaches you how.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/agent-workflow-automation-n8n-weaviate</guid>\n      <pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate 1.32 Release</title>\n      <link>https://weaviate.io/blog/weaviate-1-32-release</link>\n      <description>1.32 adds collection aliases for no-downtime collection migrations, efficient &amp; powerful rotational quantization (RQ), GA replica movement, memory reduction with compressed HNSW connections and more!</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-1-32-release</guid>\n      <pubDate>Tue, 22 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the New Weaviate Confluent Apache Kafka® Connector: Real-Time Vector Data Pipelines Made Easy</title>\n      <link>https://weaviate.io/blog/weaviate-apache-kafka-connector</link>\n      <description>Learn about the new certified Weaviate Confluent Apache Kafka Connector!</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-apache-kafka-connector</guid>\n      <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Latency and Weaviate: Choosing the Right Region for your Vector Database</title>\n      <link>https://weaviate.io/blog/latency-and-weaviate</link>\n      <description>Design for speed, build for experience. </description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/latency-and-weaviate</guid>\n      <pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Glowe: Agent-Powered Korean Skincare Routines</title>\n      <link>https://weaviate.io/blog/glowe-app</link>\n      <description>Glowe is a Korean beauty recommendation app that uses domain knowledge agents, custom embedding strategies, and vector search to create personalized skincare routines. Try now: https://www.glowe.app/</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/glowe-app</guid>\n      <pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How We Are Building the Core of the AI-Native Stack</title>\n      <link>https://weaviate.io/blog/building-core-of-ai-native-stack</link>\n      <description>How Weaviate's day zero, day one, day two mindset helps developers build AI-native applications.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/building-core-of-ai-native-stack</guid>\n      <pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Constella Uses Weaviate for Vector Search (RAG) and Cross-Platform Syncing across Devices for Consumer Apps</title>\n      <link>https://weaviate.io/blog/vector-search-cross-platform-sync-constella</link>\n      <description>How we built cross-platform vector search and syncing for a thinking tool using Weaviate, RAG, and multi-tenant architecture.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/vector-search-cross-platform-sync-constella</guid>\n      <pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Secure AI for Healthcare: HIPAA-compliant vector search with Weaviate</title>\n      <link>https://weaviate.io/blog/weaviate-hipaa-compliant</link>\n      <description>Announcing Weaviate Enterprise Cloud new HIPAA compliance on AWS, enabling secure PHI storage, search, and vector-powered AI for healthcare workloads.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-hipaa-compliant</guid>\n      <pubDate>Thu, 26 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Art of Scaling a Vector Database like Weaviate</title>\n      <link>https://weaviate.io/blog/scaling-and-weaviate</link>\n      <description>Master the art of scaling a vector database like Weaviate. </description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/scaling-and-weaviate</guid>\n      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Unleashing AI Factories: Weaviate and NVIDIA Turbocharge Vector Search with GPU Acceleration</title>\n      <link>https://weaviate.io/blog/nvidia-and-weaviate</link>\n      <description>Learn how Weaviate and NVIDIA enable fast, scalable vector search for agentic AI.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/nvidia-and-weaviate</guid>\n      <pubDate>Mon, 09 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>More efficient multi-vector embeddings with MUVERA</title>\n      <link>https://weaviate.io/blog/muvera</link>\n      <description>Weaviate `1.31` implements the MUVERA encoding algorithm for multi-vector embeddings. In this blog, we dive the algorithm in detail, including what MUVERA is, how it works, and whether it might make sense for you.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/muvera</guid>\n      <pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Weaviate 1.31 Release</title>\n      <link>https://weaviate.io/blog/weaviate-1-31-release</link>\n      <description>1.31 adds MUVERA for multi-vector embeddings, new BM25 operators, the ability to add new object vectors, and more!</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/weaviate-1-31-release</guid>\n      <pubDate>Tue, 03 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The State of Enterprise AI in 2025: Measured Progress Over Hype</title>\n      <link>https://weaviate.io/blog/enterprise-ai-trends-2025</link>\n      <description>What trends we see arise in Enterprise AI in 2025.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/enterprise-ai-trends-2025</guid>\n      <pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Build Scalable Gen AI Data Pipelines with Weaviate and Databricks</title>\n      <link>https://weaviate.io/blog/genai-apps-with-weaviate-and-databricks</link>\n      <description>Learn how to build generative AI data pipelines at scale with Weaviate and Databricks</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/genai-apps-with-weaviate-and-databricks</guid>\n      <pubDate>Tue, 29 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Exploring RAG and GraphRAG: Understanding when and how to use both</title>\n      <link>https://weaviate.io/blog/graph-rag</link>\n      <description>Learn when and how to use GraphRAG and how it can improve on some search tasks</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/graph-rag</guid>\n      <pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing the Weaviate Personalization Agent</title>\n      <link>https://weaviate.io/blog/personalization-agent</link>\n      <description>Learn about how you can use our new agentic personalization service to provide user-catered recommendations from Weaviate collections.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/personalization-agent</guid>\n      <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An Overview of Late Interaction Retrieval Models: ColBERT, ColPali, and ColQwen</title>\n      <link>https://weaviate.io/blog/late-interaction-overview</link>\n      <description>Late interaction allow for semantically rich interactions that enable a precise retrieval process across different modalities of unstructured data, including text and images.</description>\n      <guid isPermaLink=\"false\">https://weaviate.io/blog/late-interaction-overview</guid>\n      <pubDate>Wed, 09 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_windsurf_blog.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Windsurf Blog</title>\n    <link>https://windsurf.com/blog</link>\n    <description>Read about the latest announcements from Windsurf</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_blog.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:51:19 +0000</lastBuildDate>\n    <item>\n      <title>Opus 4.7 (fast mode) is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/opus-4.7-fast</link>\n      <description>Claude Opus 4.7 (fast mode) is now available in Windsurf with the full intelligence of Opus 4.7 and ~2.5x higher output speeds.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/opus-4.7-fast</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>anthropic</category>\n      <category>opus-4.7-fast</category>\n      <pubDate>Tue, 12 May 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Fast and Comprehensive Code Review, Now in Windsurf</title>\n      <link>https://windsurf.com/blog/devin-review-windsurf</link>\n      <description>Devin Review and Quick Review bring verification into the same workspace where you write code.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/devin-review-windsurf</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>devin-review</category>\n      <pubDate>Wed, 06 May 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.0: Introducing the Agent Command Center and Devin in Windsurf</title>\n      <link>https://windsurf.com/blog/windsurf-2-0</link>\n      <description>Ship more with local and cloud agents working together.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-2-0</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>agent-command-center</category>\n      <category>devin</category>\n      <pubDate>Wed, 15 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Adaptive: a smarter way to use Windsurf</title>\n      <link>https://windsurf.com/blog/windsurf-adaptive</link>\n      <description>We're launching multiple updates to Windsurf today: an Adaptive model router, a redesigned model picker with pricing context, and the removal of daily limits for Max.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-adaptive</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>pricing</category>\n      <category>adaptive</category>\n      <pubDate>Mon, 06 Apr 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing our new Windsurf pricing plans</title>\n      <link>https://windsurf.com/blog/windsurf-pricing-plans</link>\n      <description>We're simplifying Windsurf pricing across Free, Pro, and Teams alongside launching a new Max plan for our power users. The new plans replace the current credit-based system with industry-standard quotas.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-pricing-plans</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>pricing</category>\n      <pubDate>Wed, 18 Mar 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5.4 is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/gpt-5.4</link>\n      <description>GPT-5.4 is now available in Windsurf with multiple reasoning effort levels. For a limited time, self serve users enjoy promotional pricing starting at 1x credits.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gpt-5.4</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>openai</category>\n      <category>gpt-5.4</category>\n      <pubDate>Thu, 05 Mar 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Gemini 3.1 Pro is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/gemini-3.1-pro</link>\n      <description>Gemini 3.1 Pro is now available in Windsurf with Low and High thinking variants. For a limited time, enjoy promotional pricing on credit usage.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gemini-3.1-pro</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>google</category>\n      <category>gemini-3.1-pro</category>\n      <pubDate>Thu, 19 Feb 2026 16:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Claude Sonnet 4.6 is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/sonnet-4.6</link>\n      <description>Claude Sonnet 4.6 is now available in Windsurf with limited-time promotional pricing for self serve users: 2x credits without thinking and 3x credits with thinking.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/sonnet-4.6</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>anthropic</category>\n      <category>sonnet-4.6</category>\n      <pubDate>Tue, 17 Feb 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GLM-5 and Minimax M2.5 are now available in Windsurf</title>\n      <link>https://windsurf.com/blog/glm-5-minimax-m2.5</link>\n      <description>GLM-5 from Zhipu AI and Minimax M2.5 are now available in Windsurf with limited-time promotional pricing. Both models are included in Arena Mode's Frontier Arena and Hybrid Arena battle groups.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/glm-5-minimax-m2.5</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>glm-5</category>\n      <category>minimax-m2.5</category>\n      <pubDate>Mon, 16 Feb 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5.3-Codex-Spark is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/gpt-5.3-codex-spark</link>\n      <description>OpenAI's GPT-5.3-Codex-Spark, an ultra-fast model optimized for real-time coding, is now available in Windsurf's Arena Mode Fast and Hybrid battle groups.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gpt-5.3-codex-spark</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>openai</category>\n      <category>gpt-5.3-codex-spark</category>\n      <pubDate>Thu, 12 Feb 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Arena Mode Leaderboard: The People Want Speed</title>\n      <link>https://windsurf.com/blog/windsurf-arena-mode-leaderboard</link>\n      <description>We are releasing the initial results of the Windsurf Arena Mode leaderboard today — with some surprising upsets.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-arena-mode-leaderboard</guid>\n      <category>product</category>\n      <pubDate>Wed, 11 Feb 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Opus 4.6 (fast mode) is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/opus-4.6-fast</link>\n      <description>Claude Opus 4.6 (fast mode) is now available in Windsurf with limited-time promotional pricing for self serve users: 10x credits without thinking and 12x credits with thinking until February 16.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/opus-4.6-fast</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>anthropic</category>\n      <category>opus-4.6-fast</category>\n      <pubDate>Sat, 07 Feb 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Opus 4.6 is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/opus-4.6</link>\n      <description>Claude Opus 4.6 is now available in Windsurf with limited-time promotional pricing for self serve users: 2x credits without thinking and 3x credits with thinking. Available in Arena Mode's Frontier Arena.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/opus-4.6</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>anthropic</category>\n      <category>opus-4.6</category>\n      <pubDate>Thu, 05 Feb 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Tab v2: 25-75% more accepted code with Variable Aggression</title>\n      <link>https://windsurf.com/blog/windsurf-tab-2</link>\n      <description>We've completely rewritten and retrained the old Windsurf Tab, increasing accepted lines by up to 100% and introducing 2 new aggression levels on our new Pareto Frontier tab model.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-tab-2</guid>\n      <category>product</category>\n      <pubDate>Tue, 03 Feb 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wave 14: Arena Mode - May the Best Model Win</title>\n      <link>https://windsurf.com/blog/windsurf-wave-14</link>\n      <description>Arena Mode brings side-by-side model comparison directly into your IDE, plus Plan Mode and Megaplan for smarter task planning.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-14</guid>\n      <category>product</category>\n      <pubDate>Fri, 30 Jan 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT-5.2-Codex is now available in Windsurf!</title>\n      <link>https://windsurf.com/blog/gpt-5-2-codex</link>\n      <description>GPT-5.2-Codex is now available in Windsurf with multiple reasoning effort levels. For a limited time, enjoy discounts on credit usage.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gpt-5-2-codex</guid>\n      <category>product</category>\n      <category>company</category>\n      <category>openai</category>\n      <category>windsurf</category>\n      <pubDate>Wed, 14 Jan 2026 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 13: Merry Shipmas</title>\n      <link>https://windsurf.com/blog/windsurf-wave-13</link>\n      <description>Parallel agents, Git worktrees, multi-pane Cascade, dedicated terminal, and SWE-1.5 Free</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-13</guid>\n      <category>product</category>\n      <pubDate>Wed, 24 Dec 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT 5.2 is now available in Windsurf!</title>\n      <link>https://windsurf.com/blog/gpt-5-2</link>\n      <description>GPT-5.2 is now live in Windsurf! Available for 0x credits for a limited time (paid and trial users). The version bump undersells the jump in intelligence: Biggest leap for GPT models in agentic coding since GPT-5, SOTA coding model at its price point, Default in Windsurf</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gpt-5-2</guid>\n      <category>product</category>\n      <category>company</category>\n      <category>openai</category>\n      <category>gpt-5.2</category>\n      <category>windsurf</category>\n      <pubDate>Thu, 11 Dec 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Opus 4.5 is now available in Windsurf</title>\n      <link>https://windsurf.com/blog/opus-4.5</link>\n      <description>The most capable model in Windsurf yet, now available at Sonnet prices for a limited time</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/opus-4.5</guid>\n      <category>product</category>\n      <category>windsurf</category>\n      <category>anthropic</category>\n      <category>opus-4.5</category>\n      <pubDate>Mon, 24 Nov 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GPT 5.1, GPT 5.1-Codex, and GPT-5.1-Codex Mini are now available in Windsurf</title>\n      <link>https://windsurf.com/blog/gpt-5-1</link>\n      <description>GPT 5.1, GPT 5.1-Codex, and GPT-5.1-Codex Mini deliver a solid upgrade for agentic coding with variable thinking and improved steerability</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gpt-5-1</guid>\n      <category>product</category>\n      <category>company</category>\n      <category>openai</category>\n      <category>gpt-5.1</category>\n      <category>codex</category>\n      <pubDate>Thu, 13 Nov 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing SWE-1.5: Our Fast Agent Model</title>\n      <link>https://windsurf.com/blog/swe-1-5</link>\n      <description>SWE-1.5 is our latest frontier model, delivering near-SOTA coding performance at unprecedented speed.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/swe-1-5</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 29 Oct 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cognition and Windsurf's Commitment to United States Government (USG) and Impact Level 6 (IL6) Deployments</title>\n      <link>https://windsurf.com/blog/cognition-windsurf-il6</link>\n      <description>Windsurf is ready to support IL6 deployments through partnership with Palantir FedStart, demonstrating Cognition's commitment to serving DoD missions across all networks and domains.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/cognition-windsurf-il6</guid>\n      <category>company</category>\n      <category>enterprise</category>\n      <pubDate>Fri, 03 Oct 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Cognition (Windsurf) Named a Leader in the 2025 Gartner® Magic Quadrant™ for AI Code Assistants</title>\n      <link>https://windsurf.com/blog/gartner-windsurf-cognition-magic-quadrant-ai-coding-assistants</link>\n      <description>Cognition’s Windsurf has been named a Leader in the 2025 Gartner® Magic Quadrant™ for AI Code Assistants</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gartner-windsurf-cognition-magic-quadrant-ai-coding-assistants</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <category>industry</category>\n      <category>company</category>\n      <pubDate>Wed, 17 Sep 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Queued Messages Release</title>\n      <link>https://windsurf.com/blog/queued-messages</link>\n      <description>Windsurf now has Queued Messages!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/queued-messages</guid>\n      <category>product</category>\n      <pubDate>Tue, 16 Sep 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 12: Devin features in Windsurf</title>\n      <link>https://windsurf.com/blog/windsurf-wave-12</link>\n      <description>DeepWiki, Vibe and Replace, Dev Containers, and more!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-12</guid>\n      <category>product</category>\n      <pubDate>Thu, 14 Aug 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wave 11: Just Keep Shipping</title>\n      <link>https://windsurf.com/blog/windsurf-wave-11</link>\n      <description>More tools for the Browser, Voice Mode, Checkpoints, and more!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-11</guid>\n      <category>product</category>\n      <pubDate>Thu, 17 Jul 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our Commitment to Windsurf</title>\n      <link>https://windsurf.com/blog/our-commitment-cognition-partnership</link>\n      <description>What the acquisition by Cognition means for you</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/our-commitment-cognition-partnership</guid>\n      <category>company</category>\n      <category>enterprise</category>\n      <category>product</category>\n      <pubDate>Wed, 16 Jul 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Next Chapter</title>\n      <link>https://windsurf.com/blog/windsurfs-next-chapter</link>\n      <description>Windsurf is joining forces with Cognition.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurfs-next-chapter</guid>\n      <category>company</category>\n      <pubDate>Mon, 14 Jul 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Next Stage of Windsurf</title>\n      <link>https://windsurf.com/blog/windsurfs-next-stage</link>\n      <description>Entering a new era.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurfs-next-stage</guid>\n      <category>company</category>\n      <pubDate>Fri, 11 Jul 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: June 2025</title>\n      <link>https://windsurf.com/blog/changelist-jun25</link>\n      <description>Windsurf updates from June 2025!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jun25</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Tue, 01 Jul 2025 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf and AHEAD Form Strategic AI DevOps Partnership</title>\n      <link>https://windsurf.com/blog/ahead-partnership</link>\n      <description>AHEAD is now offering a full suite of services around Windsurf</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/ahead-partnership</guid>\n      <category>enterprise</category>\n      <pubDate>Thu, 26 Jun 2025 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our Brand</title>\n      <link>https://windsurf.com/blog/our-brand</link>\n      <description>A visual reflection of how we want our users to feel while using the platform: LIMITLESS.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/our-brand</guid>\n      <category>company</category>\n      <pubDate>Fri, 20 Jun 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Percentage of Code Written</title>\n      <link>https://windsurf.com/blog/percentage-code-written</link>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/percentage-code-written</guid>\n      <category>product</category>\n      <pubDate>Fri, 13 Jun 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wave 10: Other Announcements</title>\n      <link>https://windsurf.com/blog/windsurf-wave-10-ux-enterprise</link>\n      <description>A number of improvements to the enterprise offering and general UI/UX.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-10-ux-enterprise</guid>\n      <category>product</category>\n      <pubDate>Thu, 12 Jun 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wave 10: The Windsurf Browser</title>\n      <link>https://windsurf.com/blog/windsurf-wave-10-browser</link>\n      <description>Our new browser surface for maximum implicit context understanding and flow awareness.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-10-browser</guid>\n      <category>product</category>\n      <pubDate>Wed, 11 Jun 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wave 10: Planning Mode</title>\n      <link>https://windsurf.com/blog/windsurf-wave-10-planning-mode</link>\n      <description>A native way to collaborate with the AI on longer, more complex tasks.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-10-planning-mode</guid>\n      <category>product</category>\n      <pubDate>Tue, 10 Jun 2025 10:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>athenahealth Advances Healthcare Innovation with Windsurf</title>\n      <link>https://windsurf.com/blog/athena-health-case-study</link>\n      <description>athenahealth uses Windsurf to accelerate their developers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/athena-health-case-study</guid>\n      <category>enterprise</category>\n      <category>case studies</category>\n      <pubDate>Tue, 10 Jun 2025 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: May 2025</title>\n      <link>https://windsurf.com/blog/changelist-may25</link>\n      <description>Windsurf updates from May 2025!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-may25</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Fri, 06 Jun 2025 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Statement on Anthropic Model Availability</title>\n      <link>https://windsurf.com/blog/anthropic-models</link>\n      <description>Anthropic deciding to cut off capacity does not change our commitment to providing the best product for our users.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/anthropic-models</guid>\n      <category>product</category>\n      <category>company</category>\n      <category>industry</category>\n      <pubDate>Tue, 03 Jun 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An Inflection Point for U.S. Government</title>\n      <link>https://windsurf.com/blog/windsurf-inflection-government</link>\n      <description>Windsurf is uniquely positioned to address the U.S. Government’s challenges</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-inflection-government</guid>\n      <category>enterprise</category>\n      <pubDate>Thu, 29 May 2025 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Fuels Mercado Libre’s Growth Strategy</title>\n      <link>https://windsurf.com/blog/mercado-libre-case-study</link>\n      <description>Mercado Libre uses Windsurf to accelerate their developers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/mercado-libre-case-study</guid>\n      <category>case studies</category>\n      <pubDate>Tue, 27 May 2025 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>SWE-1: Our First Frontier Models</title>\n      <link>https://windsurf.com/blog/windsurf-wave-9-swe-1</link>\n      <description>Introducing our first Frontier Models!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-9-swe-1</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Thu, 15 May 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Self-Hosted Deployment Maintenance Mode</title>\n      <link>https://windsurf.com/blog/self-hosted-deployment-maintenance-mode</link>\n      <description>We have decided to place our self-hosted offering in maintenance mode, and offer a new single-tenant hosted offering that can expose our agentic capabilities.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/self-hosted-deployment-maintenance-mode</guid>\n      <category>company</category>\n      <pubDate>Mon, 12 May 2025 14:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wave 8: UX Features + Plugins Update</title>\n      <link>https://windsurf.com/blog/windsurf-wave-8-ux-features-and-plugins</link>\n      <description>Introducing Wave 8, our biggest batch of updates yet! This is part 3 of 3.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-8-ux-features-and-plugins</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Thu, 08 May 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Wave 8: Cascade Customization Features</title>\n      <link>https://windsurf.com/blog/windsurf-wave-8-cascade-customization-features</link>\n      <description>Introducing Wave 8, our biggest batch of updates yet! This is part 2 of 3.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-8-cascade-customization-features</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 07 May 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 8: Teams &amp; Enterprise Features</title>\n      <link>https://windsurf.com/blog/windsurf-wave-8-teams-and-enterprise</link>\n      <description>Introducing Wave 8, our biggest batch of updates yet! This is part 1 of 3.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-8-teams-and-enterprise</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Tue, 06 May 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: April 2025</title>\n      <link>https://windsurf.com/blog/changelist-apr25</link>\n      <description>Windsurf updates from April 2025!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-apr25</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Fri, 02 May 2025 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An Update to Our Free Plan</title>\n      <link>https://windsurf.com/blog/update-to-free-plan</link>\n      <description>The Free Tier is getting an upgrade!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/update-to-free-plan</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Mon, 28 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>An Update to Our Pricing</title>\n      <link>https://windsurf.com/blog/pricing-v2</link>\n      <description>Our pricing model is getting much simpler!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/pricing-v2</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Mon, 21 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: March 2025</title>\n      <link>https://windsurf.com/blog/changelist-mar25</link>\n      <description>Codeium updates from March 2025!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-mar25</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Fri, 11 Apr 2025 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Named 2025’s Forbes AI 50 Recipient</title>\n      <link>https://windsurf.com/blog/windsurf-codeium-forbes-ai50</link>\n      <description>Forbes AI 50 spotlights the most promising private companies applying AI to real-world challenges.hero</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-codeium-forbes-ai50</guid>\n      <category>company</category>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Thu, 10 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 7</title>\n      <link>https://windsurf.com/blog/windsurf-wave-7</link>\n      <description>Introducing Wave 7, our seventh batch of updates to the Windsurf Editor.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-7</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 09 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Next Chapter: Renaming to Windsurf</title>\n      <link>https://windsurf.com/blog/windsurf-rebrand-announcement</link>\n      <description>Announcing the renaming of Codeium to Windsurf</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-rebrand-announcement</guid>\n      <category>company</category>\n      <category>enterprise</category>\n      <category>product</category>\n      <pubDate>Fri, 04 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Forge Deprecation</title>\n      <link>https://windsurf.com/blog/forge-deprecation</link>\n      <description>Deprecating Forge and looking towards better AI code review.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/forge-deprecation</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Fri, 04 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What is an Agent?</title>\n      <link>https://windsurf.com/blog/what-is-an-agent</link>\n      <description>Demystifying AI agents: understanding the reasoning-action loop that powers modern AI systems</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/what-is-an-agent</guid>\n      <category>industry</category>\n      <category>company</category>\n      <category>enterprise</category>\n      <pubDate>Thu, 03 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 6</title>\n      <link>https://windsurf.com/blog/windsurf-wave-6</link>\n      <description>Introducing Wave 6, our sixth batch of updates to the Windsurf Editor.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-6</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 02 Apr 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 5</title>\n      <link>https://windsurf.com/blog/windsurf-wave-5</link>\n      <description>Introducing Wave 5, our fifth batch of updates to the Windsurf Editor.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-5</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Fri, 14 Mar 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Extensions are now FedRAMP High Authorized and compliant with DoD IL5 and ITAR: A Milestone for Secure AI-Driven Development in the Federal Space</title>\n      <link>https://windsurf.com/blog/fedramp-certification</link>\n      <description>Windsurf Extensions have achieved FedRAMP High Authorization and IL5 Compliance, marking a significant milestone in the federal space.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/fedramp-certification</guid>\n      <category>company</category>\n      <category>enterprise</category>\n      <pubDate>Mon, 10 Mar 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: February 2025</title>\n      <link>https://windsurf.com/blog/changelist-feb25</link>\n      <description>Codeium updates from February 2025!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-feb25</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Fri, 07 Mar 2025 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 4</title>\n      <link>https://windsurf.com/blog/windsurf-wave-4</link>\n      <description>Introducing Wave 4, our fourth batch of updates to the Windsurf Editor.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-4</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 05 Mar 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 3</title>\n      <link>https://windsurf.com/blog/windsurf-wave-3</link>\n      <description>Introducing Wave 3, our third batch of updates to the Windsurf Editor.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-3</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Thu, 13 Feb 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: January 2025</title>\n      <link>https://windsurf.com/blog/changelist-jan25</link>\n      <description>Codeium updates from January 2025!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jan25</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Thu, 06 Feb 2025 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next Launch</title>\n      <link>https://windsurf.com/blog/windsurf-next</link>\n      <description>Introducing Windsurf Next, our opt-in prerelease version of Windsurf.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-next</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 05 Feb 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DeepSeek R1 and OpenAI o3-mini now available in Windsurf</title>\n      <link>https://windsurf.com/blog/deepseek-r1-and-o3-mini-available-in-windsurf</link>\n      <description>DeepSeek R1, DeepSeek V3, and OpenAI o3-mini are now available in Windsurf.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/deepseek-r1-and-o3-mini-available-in-windsurf</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Fri, 31 Jan 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 2</title>\n      <link>https://windsurf.com/blog/windsurf-wave-2</link>\n      <description>Introducing Wave 2, our second batch of updates to the Windsurf Editor.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-2</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Fri, 17 Jan 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>DRW on Codeium</title>\n      <link>https://windsurf.com/blog/drw-case-study</link>\n      <description>DRW uses Codeium to boost developer productivity while safeguarding intellectual property.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/drw-case-study</guid>\n      <category>enterprise</category>\n      <category>case studies</category>\n      <pubDate>Mon, 06 Jan 2025 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: December 2024</title>\n      <link>https://windsurf.com/blog/changelist-dec24</link>\n      <description>Codeium updates from December 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-dec24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Fri, 03 Jan 2025 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Innovation, not Productivity: Why we Built Windsurf</title>\n      <link>https://windsurf.com/blog/why-we-built-windsurf</link>\n      <description>Why did we build Windsurf? Were the extensions not good enough?</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/why-we-built-windsurf</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Thu, 19 Dec 2024 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Wave 1</title>\n      <link>https://windsurf.com/blog/windsurf-wave-1</link>\n      <description>Introducing Wave 1, our first batch of updates to the Windsurf Editor.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-wave-1</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 11 Dec 2024 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: November 2024</title>\n      <link>https://windsurf.com/blog/changelist-nov24</link>\n      <description>Codeium updates from November 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-nov24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Tue, 10 Dec 2024 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Plans and Pricing Updates</title>\n      <link>https://windsurf.com/blog/pricing-windsurf</link>\n      <description>Some changes to our pricing model for Cascade.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/pricing-windsurf</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Fri, 06 Dec 2024 12:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Launch</title>\n      <link>https://windsurf.com/blog/windsurf-launch</link>\n      <description>Introducing the Windsurf Editor, our new IDE.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/windsurf-launch</guid>\n      <category>industry</category>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 13 Nov 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How Codeium Helps Onboarding</title>\n      <link>https://windsurf.com/blog/codeium-helps-onboarding</link>\n      <description>Minimizing developer onboarding time is critical for any serious enterprise.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-helps-onboarding</guid>\n      <category>industry</category>\n      <category>product</category>\n      <category>company</category>\n      <category>enterprise</category>\n      <pubDate>Wed, 06 Nov 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: October 2024</title>\n      <link>https://windsurf.com/blog/changelist-oct24</link>\n      <description>Codeium updates from October 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-oct24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Sat, 02 Nov 2024 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium: JPMorgan Chase's Hall of Innovation</title>\n      <link>https://windsurf.com/blog/jpmc-codeium-hall-of-innovation</link>\n      <description>Codeium inducted into JPMorgan Chase Hall of Innovation for AI-powered development solutions.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/jpmc-codeium-hall-of-innovation</guid>\n      <category>industry</category>\n      <category>product</category>\n      <category>company</category>\n      <category>enterprise</category>\n      <category>partnership</category>\n      <category>case studies</category>\n      <pubDate>Thu, 31 Oct 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Art of Analytics</title>\n      <link>https://windsurf.com/blog/the-art-of-analytics</link>\n      <description>Why should we care about analytics? What could go wrong?</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/the-art-of-analytics</guid>\n      <category>company</category>\n      <category>enterprise</category>\n      <category>product</category>\n      <category>industry</category>\n      <pubDate>Wed, 23 Oct 2024 08:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Supercomplete</title>\n      <link>https://windsurf.com/blog/supercomplete-launch</link>\n      <description>Introducing Supercomplete, a new modality that predicts your next intent.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/supercomplete-launch</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Mon, 14 Oct 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: September 2024</title>\n      <link>https://windsurf.com/blog/changelist-sep24</link>\n      <description>Codeium updates from September 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-sep24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Fri, 04 Oct 2024 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What Will Harvard Business School Write?</title>\n      <link>https://windsurf.com/blog/what-will-hbs-write</link>\n      <description>History is written by the victors.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/what-will-hbs-write</guid>\n      <category>company</category>\n      <pubDate>Wed, 25 Sep 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Pro Tier</title>\n      <link>https://windsurf.com/blog/pro-tier-launch</link>\n      <description>Introducing the Pro Tier, a premium paid plan for individual developers. </description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/pro-tier-launch</guid>\n      <category>product</category>\n      <category>company</category>\n      <pubDate>Wed, 18 Sep 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: August 2024</title>\n      <link>https://windsurf.com/blog/changelist-aug24</link>\n      <description>Codeium updates from August 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-aug24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Thu, 05 Sep 2024 15:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Series C Announcement</title>\n      <link>https://windsurf.com/blog/series-c-annoucement</link>\n      <description>Today, we are excited to announce our $150m Series C round at a $1.25b valuation, led by General Catalyst and with participation from Kleiner Perkins and Greenoaks. This adds to our previous $93m raised.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/series-c-annoucement</guid>\n      <category>company</category>\n      <pubDate>Thu, 29 Aug 2024 14:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium: Gartner AI Challenger</title>\n      <link>https://windsurf.com/blog/gartner-codeium-magic-quadrant-critical-capabilities</link>\n      <description>Codeium is recognized as a Gartner Magic Quadrant™ Challenger, ranking highest in Code Modernization and Artifact Building &amp; Testing.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gartner-codeium-magic-quadrant-critical-capabilities</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Wed, 28 Aug 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our Model Strategy</title>\n      <link>https://windsurf.com/blog/our-model-strategy</link>\n      <description>Our model strategy is simple. Whatever delivers the most value.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/our-model-strategy</guid>\n      <category>company</category>\n      <category>industry</category>\n      <pubDate>Mon, 26 Aug 2024 08:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Broadcom x Codeium</title>\n      <link>https://windsurf.com/blog/vmware-codeium-announcement</link>\n      <description>Announcing Codeium on VMware Private AI by Broadcom.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/vmware-codeium-announcement</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <category>partnership</category>\n      <pubDate>Mon, 26 Aug 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Smart Paste: Effortless Code Translation</title>\n      <link>https://windsurf.com/blog/codeium-smart-paste</link>\n      <description>A new feature that allows you to translate code to any desired language automatically.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-smart-paste</guid>\n      <category>product</category>\n      <pubDate>Wed, 21 Aug 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Dream Bigger</title>\n      <link>https://windsurf.com/blog/codeium-dream-bigger</link>\n      <description>The Codeium mission, Riptide and Forge launches, and detailed vision.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-dream-bigger</guid>\n      <category>company</category>\n      <category>product</category>\n      <pubDate>Tue, 13 Aug 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: July 2024</title>\n      <link>https://windsurf.com/blog/changelist-jul24</link>\n      <description>Codeium updates from July 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jul24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Thu, 08 Aug 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Better Chat than ChatGPT</title>\n      <link>https://windsurf.com/blog/codeium-better-chat</link>\n      <description>Model, reasoning, and UX breakthroughs across the Codeium Chat stack to make it a best-in-class AI Chat developer experience.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-better-chat</guid>\n      <category>product</category>\n      <pubDate>Thu, 01 Aug 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium: Rising the Ranks on Stack Overflow</title>\n      <link>https://windsurf.com/blog/codeium-stack-overflow-developer-survey-2024</link>\n      <description>Codeium is one of the most desired and admired AI tools for developers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-stack-overflow-developer-survey-2024</guid>\n      <category>company</category>\n      <pubDate>Mon, 29 Jul 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Culture: Be Valuable, Not Right</title>\n      <link>https://windsurf.com/blog/codeium-culture-be-valuable-not-right</link>\n      <description>A little bit about our origin story and staying honest with ourselves.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-culture-be-valuable-not-right</guid>\n      <category>company</category>\n      <pubDate>Fri, 26 Jul 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Work at Little Tech</title>\n      <link>https://windsurf.com/blog/work-at-little-tech-codeium</link>\n      <description>Our billboard campaign to raise awareness for the startup world.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/work-at-little-tech-codeium</guid>\n      <category>company</category>\n      <pubDate>Mon, 22 Jul 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Command: A Case Study in Product Development</title>\n      <link>https://windsurf.com/blog/codeium-command-improvement-case-study</link>\n      <description>How we made a state-of-the-art instruction following system by training proprietary foundational models and listening to user feedback.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-command-improvement-case-study</guid>\n      <category>product</category>\n      <pubDate>Mon, 22 Jul 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Zillow on Codeium</title>\n      <link>https://windsurf.com/blog/zillow-codeium-case-study</link>\n      <description>Zillow uses Codeium to accelerate their developers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/zillow-codeium-case-study</guid>\n      <category>enterprise</category>\n      <category>case studies</category>\n      <pubDate>Wed, 17 Jul 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: June 2024</title>\n      <link>https://windsurf.com/blog/changelist-jun24</link>\n      <description>Codeium updates from June 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jun24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Mon, 08 Jul 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium: Leader According to Stack Overflow Survey</title>\n      <link>https://windsurf.com/blog/codeium-stack-overflow-pulse-survey</link>\n      <description>Codeium was ranked as the AI Code Assistant driving the most self-reported satisfication and productivity.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-stack-overflow-pulse-survey</guid>\n      <category>company</category>\n      <pubDate>Sat, 29 Jun 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Hybrid Deployment: Perfect mix of security and performance</title>\n      <link>https://windsurf.com/blog/hybrid-deployment</link>\n      <description>An analysis of the Hybrid deployment from Codeium, a first-of-its-kind offering.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/hybrid-deployment</guid>\n      <category>enterprise</category>\n      <category>product</category>\n      <pubDate>Wed, 19 Jun 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium: Truly Enterprise-Ready Code Assistant</title>\n      <link>https://windsurf.com/blog/codeium-truly-enterprise-ready</link>\n      <description>A deeper dive into recent enterprise readiness capabilities: indexing access controls, subteam analytics, and audit logging.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-truly-enterprise-ready</guid>\n      <category>enterprise</category>\n      <category>product</category>\n      <pubDate>Tue, 11 Jun 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Our Cultural Principles</title>\n      <link>https://windsurf.com/blog/codeium-cultural-principles</link>\n      <description>What makes Codeium, Codeium?</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-cultural-principles</guid>\n      <category>company</category>\n      <pubDate>Fri, 07 Jun 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: May 2024</title>\n      <link>https://windsurf.com/blog/changelist-may24</link>\n      <description>Codeium updates from May 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-may24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Wed, 05 Jun 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: April 2024</title>\n      <link>https://windsurf.com/blog/changelist-apr24</link>\n      <description>Codeium updates from April 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-apr24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Wed, 08 May 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Command in JetBrains</title>\n      <link>https://windsurf.com/blog/jetbrains-codeium-command-launch</link>\n      <description>Codeium Command is now available on JetBrains IDEs.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/jetbrains-codeium-command-launch</guid>\n      <category>product</category>\n      <pubDate>Wed, 01 May 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>World Wide Technology on Codeium</title>\n      <link>https://windsurf.com/blog/wwt-case-study</link>\n      <description>WWT uses Codeium to accelerate their developers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/wwt-case-study</guid>\n      <category>enterprise</category>\n      <category>case studies</category>\n      <pubDate>Tue, 30 Apr 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Google Gemini CodeAssist: A Review</title>\n      <link>https://windsurf.com/blog/google-gemini-codeassist-review</link>\n      <description>An analysis and test of the AI code assistant tool from Google.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/google-gemini-codeassist-review</guid>\n      <category>industry</category>\n      <pubDate>Tue, 23 Apr 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium: Forbes AI 50 Recipient</title>\n      <link>https://windsurf.com/blog/codeium-forbes-ai-50</link>\n      <description>Codeium is the only AI code assistant in the 2024 Forbes AI 50 List.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-forbes-ai-50</guid>\n      <category>company</category>\n      <pubDate>Thu, 18 Apr 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: March 2024</title>\n      <link>https://windsurf.com/blog/changelist-mar24</link>\n      <description>Codeium updates from March 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-mar24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Tue, 09 Apr 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Personalization: Context Awareness vs Customer-Specific Finetuning</title>\n      <link>https://windsurf.com/blog/personalization-context-awareness-vs-customer-specific-finetuning</link>\n      <description>We break down the value of context awareness and finetuning to personalize the Codeium system to particular enterprises.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/personalization-context-awareness-vs-customer-specific-finetuning</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <category>product</category>\n      <pubDate>Mon, 01 Apr 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What do you actually get with GitHub Copilot for Enterprises?</title>\n      <link>https://windsurf.com/blog/github-copilot-enterprise-review</link>\n      <description>A feature-by-feature analysis of the new GitHub Copilot tier.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/github-copilot-enterprise-review</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Tue, 12 Mar 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: February 2024</title>\n      <link>https://windsurf.com/blog/changelist-feb24</link>\n      <description>Codeium updates from February 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-feb24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Thu, 07 Mar 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Context Pinning</title>\n      <link>https://windsurf.com/blog/codeium-context-pinning-launch</link>\n      <description>Developers can now specify and persist known relevant context for Codeium to emphasize in results.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-context-pinning-launch</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Wed, 06 Mar 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Passes One Million Downloads</title>\n      <link>https://windsurf.com/blog/one-million-codeium-downloads</link>\n      <description>Codeium has been downloaded over one million times by developers across 40+ IDEs.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/one-million-codeium-downloads</guid>\n      <category>company</category>\n      <pubDate>Wed, 28 Feb 2024 14:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Remote Indexing and Multi-repository Context Awareness</title>\n      <link>https://windsurf.com/blog/remote-indexing-multirepo-announcement</link>\n      <description>Announcing expanded and improved context awareness capabilities in Codeium.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/remote-indexing-multirepo-announcement</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Tue, 20 Feb 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: January 2024</title>\n      <link>https://windsurf.com/blog/changelist-jan24</link>\n      <description>Codeium updates from Jaunary 2024!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jan24</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Wed, 07 Feb 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Series B Announcement</title>\n      <link>https://windsurf.com/blog/series-b-annoucement</link>\n      <description>Today, we are excited to announce our $65m Series B round at a $500m valuation, led by Kleiner Perkins and with participation from repeat investor Greenoaks as well as General Catalyst. This adds to our previous $28m raised.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/series-b-annoucement</guid>\n      <category>company</category>\n      <pubDate>Tue, 30 Jan 2024 14:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Clearwater Analytics on Codeium</title>\n      <link>https://windsurf.com/blog/clearwater-analytics-case-study</link>\n      <description>Clearwater Analytics uses Codeium to accelerate their developers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/clearwater-analytics-case-study</guid>\n      <category>enterprise</category>\n      <category>case studies</category>\n      <pubDate>Thu, 25 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Atlassian x Codeium</title>\n      <link>https://windsurf.com/blog/atlassian-codeium-announcement</link>\n      <description>Announcing our integrations and work with Atlassian.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/atlassian-codeium-announcement</guid>\n      <category>industry</category>\n      <category>product</category>\n      <category>enterprise</category>\n      <category>partnership</category>\n      <pubDate>Mon, 22 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Latency, the Ultimate Gen AI Constraint</title>\n      <link>https://windsurf.com/blog/latency-the-ultimate-constraint</link>\n      <description>How latency constraints enable us to use our infrastructure expertise to make better products.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/latency-the-ultimate-constraint</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <category>industry</category>\n      <pubDate>Thu, 18 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>MongoDB x Codeium</title>\n      <link>https://windsurf.com/blog/mongodb-codeium-partnership-announcement</link>\n      <description>Announcing our integration and partnership with MongoDB. Get started with MongoDB and Codeium in under 5 minutes using this tutorial.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/mongodb-codeium-partnership-announcement</guid>\n      <category>industry</category>\n      <category>product</category>\n      <category>enterprise</category>\n      <category>partnership</category>\n      <pubDate>Wed, 17 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Termium: Codeium in the Terminal</title>\n      <link>https://windsurf.com/blog/termium-codeium-in-terminal-launch</link>\n      <description>AI-powered autocomplete for your terminal commands.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/termium-codeium-in-terminal-launch</guid>\n      <category>product</category>\n      <category>prototype</category>\n      <pubDate>Wed, 10 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: December 2023</title>\n      <link>https://windsurf.com/blog/changelist-dec23</link>\n      <description>Codeium updates from December 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-dec23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Tue, 09 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Streamlining AI Code Chat with @ Mentions</title>\n      <link>https://windsurf.com/blog/introducing-at-mentions</link>\n      <description>@ Mentions make it easier than ever to integrate chat into your workflows.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/introducing-at-mentions</guid>\n      <category>product</category>\n      <pubDate>Thu, 04 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Golden Metrics: Characters per Opportunity and Percentage Code Written</title>\n      <link>https://windsurf.com/blog/golden-metrics-characters-per-opportunity-percentage-code-written</link>\n      <description>We introduce two metrics, Characters per Opportunity (CPO) and Percentage Code Written (PCW), which we believe should be the gold standards for benchmarking AI code assistants and assessing end value driven, respectively.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/golden-metrics-characters-per-opportunity-percentage-code-written</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <category>product</category>\n      <pubDate>Wed, 03 Jan 2024 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>The Effect of Generative AI on the Human-Tool Interface</title>\n      <link>https://windsurf.com/blog/human-tool-interface</link>\n      <description>A mental model of how we think about maximizing the value of AI tools.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/human-tool-interface</guid>\n      <category>industry</category>\n      <pubDate>Tue, 19 Dec 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What We Think of 2023 Q4 AI News</title>\n      <link>https://windsurf.com/blog/what-we-think-of-2023q4-ai-announcements</link>\n      <description>Our takes on an eventful ending to 2023.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/what-we-think-of-2023q4-ai-announcements</guid>\n      <category>industry</category>\n      <pubDate>Mon, 18 Dec 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium is SOC 2 Type 2 Compliant</title>\n      <link>https://windsurf.com/blog/codeium-is-soc2-type2-compliant</link>\n      <description>Announcing our SOC 2 Type 2 Report.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-is-soc2-type2-compliant</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Wed, 13 Dec 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Prototype Capabilities</title>\n      <link>https://windsurf.com/blog/codeium-prototype-features</link>\n      <description>Balancing product development with uncertainty.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-prototype-features</guid>\n      <category>product</category>\n      <category>prototype</category>\n      <pubDate>Tue, 12 Dec 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: November 2023</title>\n      <link>https://windsurf.com/blog/changelist-nov23</link>\n      <description>Codeium updates from November 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-nov23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Mon, 11 Dec 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Code Suggestion Attribution</title>\n      <link>https://windsurf.com/blog/attribution-announcement</link>\n      <description>We have built state-of-the-art post-generation attribution to further our compliance story.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/attribution-announcement</guid>\n      <category>enterprise</category>\n      <category>product</category>\n      <pubDate>Wed, 06 Dec 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Anduril on Windsurf</title>\n      <link>https://windsurf.com/blog/anduril-case-study</link>\n      <description>Anduril uses Windsurf to accelerate their developers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/anduril-case-study</guid>\n      <category>enterprise</category>\n      <category>case studies</category>\n      <pubDate>Tue, 28 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>CodeSandbox x Codeium</title>\n      <link>https://windsurf.com/blog/codesandbox-codeium-partnership-announcement</link>\n      <description>Announcing our first class integration and partnership with CodeSandbox.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codesandbox-codeium-partnership-announcement</guid>\n      <category>industry</category>\n      <category>product</category>\n      <category>partnership</category>\n      <pubDate>Fri, 24 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GitHub Copilot’s Security Filters Don’t Work</title>\n      <link>https://windsurf.com/blog/github-copilot-security-scanning-does-not-work</link>\n      <description>We tested the claim that LLMs can catch security vulnerabilities.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/github-copilot-security-scanning-does-not-work</guid>\n      <category>industry</category>\n      <pubDate>Wed, 22 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Codeium Live: Free, Forever Up-to-Date In-Browser Chat</title>\n      <link>https://windsurf.com/blog/codeium-live</link>\n      <description>Codeium live is free, forever in-browser chat with direct access to external repositories and libraries, updated every day to get accurate, relevant answers.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-live</guid>\n      <category>product</category>\n      <category>prototype</category>\n      <pubDate>Thu, 16 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Command</title>\n      <link>https://windsurf.com/blog/codeium-command-launch-announcement</link>\n      <description>A new modality to generate code inline via instructions.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-command-launch-announcement</guid>\n      <category>product</category>\n      <pubDate>Mon, 13 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: October 2023</title>\n      <link>https://windsurf.com/blog/changelist-oct23</link>\n      <description>Codeium updates from October 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-oct23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Thu, 09 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Chat in Visual Studio!</title>\n      <link>https://windsurf.com/blog/visual-studio-codeium-chat-announcement</link>\n      <description>General access to the Codeium Chat functionality in Visual Studio.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/visual-studio-codeium-chat-announcement</guid>\n      <category>product</category>\n      <pubDate>Tue, 07 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Brings VS Codium AI Powers</title>\n      <link>https://windsurf.com/blog/codeium-vs-codium-ai</link>\n      <description>Publishing Codeium on OpenVSX enables it for VS Codium.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-vs-codium-ai</guid>\n      <category>product</category>\n      <pubDate>Fri, 03 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Teams</title>\n      <link>https://windsurf.com/blog/codeium-teams-launch</link>\n      <description>A self-serve paid plan to supercharge teams and small enterprises with AI tooling.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-teams-launch</guid>\n      <category>product</category>\n      <pubDate>Wed, 01 Nov 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Chat in Eclipse!</title>\n      <link>https://windsurf.com/blog/eclipse-codeium-chat-announcement</link>\n      <description>General access to the Codeium Chat functionality in Eclipse.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/eclipse-codeium-chat-announcement</guid>\n      <category>product</category>\n      <pubDate>Mon, 30 Oct 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: August &amp; September 2023</title>\n      <link>https://windsurf.com/blog/changelist-aug23-sep23</link>\n      <description>Codeium updates from August &amp; September 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-aug23-sep23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Sat, 07 Oct 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why You Should Not Trust All the Numbers You See</title>\n      <link>https://windsurf.com/blog/code-llm-eval-why-you-should-not-trust-all-the-numbers-you-see</link>\n      <description>Our take on industry benchmarks and how to actually evaluate AI code LLMs and tools.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/code-llm-eval-why-you-should-not-trust-all-the-numbers-you-see</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Tue, 03 Oct 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How We Think of AI Product Development</title>\n      <link>https://windsurf.com/blog/how-we-think-of-ai-product-development</link>\n      <description>Our approach to building AI products that developers trust and love.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/how-we-think-of-ai-product-development</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Wed, 27 Sep 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium is SOC2 Compliant</title>\n      <link>https://windsurf.com/blog/codeium-is-soc2-compliant</link>\n      <description>Announcing our SOC2 Type I Report.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-is-soc2-compliant</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Thu, 24 Aug 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Chat in JetBrains!</title>\n      <link>https://windsurf.com/blog/jetbrains-codeium-chat-announcement</link>\n      <description>General access to the Codeium Chat functionality in all JetBrains IDEs.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/jetbrains-codeium-chat-announcement</guid>\n      <category>product</category>\n      <pubDate>Mon, 21 Aug 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What you Actually Get (and Don’t Get) with GitHub Copilot for Business</title>\n      <link>https://windsurf.com/blog/what-you-actually-get-and-dont-get-with-github-copilot-for-business</link>\n      <description>Clarifying the GitHub Copilot for Business offering.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/what-you-actually-get-and-dont-get-with-github-copilot-for-business</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Tue, 15 Aug 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: July 2023</title>\n      <link>https://windsurf.com/blog/changelist-jul23</link>\n      <description>Codeium updates from July 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jul23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Mon, 07 Aug 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Productionizing Context Aware Everything</title>\n      <link>https://windsurf.com/blog/productionizing-context-aware-everything</link>\n      <description>Why it is hard to create a context reasoning engine for code LLMs that consistently works.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/productionizing-context-aware-everything</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Thu, 03 Aug 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium in Visual Studio, and Eclipse</title>\n      <link>https://windsurf.com/blog/codeium-copilot-alternative-in-visual-studio-sublime-eclipse</link>\n      <description>Launching Codeium in Visual Studio, and Eclipse.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-copilot-alternative-in-visual-studio-sublime-eclipse</guid>\n      <category>product</category>\n      <pubDate>Fri, 28 Jul 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Context Aware Everything: More Advanced Realtime Context than GitHub Copilot</title>\n      <link>https://windsurf.com/blog/context-aware-everything-more-advanced-realtime-context-than-github-copilot</link>\n      <description>A deep dive into context awareness of Codeium and how it stacks up against GitHub Copilot and CopilotX.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/context-aware-everything-more-advanced-realtime-context-than-github-copilot</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Mon, 24 Jul 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What to Know About the Context Going into your Code LLM</title>\n      <link>https://windsurf.com/blog/what-to-know-about-the-context-going-into-your-llm</link>\n      <description>Why real-time context for AI code assistants is a meaningful and tricky problem.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/what-to-know-about-the-context-going-into-your-llm</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Fri, 21 Jul 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GitLab Code Suggestions: Why You Should Not Build Your Own Generative AI Product for Code</title>\n      <link>https://windsurf.com/blog/gitlab-ai-review</link>\n      <description>An analysis on the capabilities and performance of the AI code assistant from GitLab.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/gitlab-ai-review</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Fri, 14 Jul 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How to Make AI UX Your Moat</title>\n      <link>https://windsurf.com/blog/how-to-make-ai-ux-your-moat</link>\n      <description>Design great AI Products that go beyond \"just LLM Wrappers\": make AI more present, more practical, and more powerful.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/how-to-make-ai-ux-your-moat</guid>\n      <category>industry</category>\n      <pubDate>Sun, 09 Jul 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: June 2023</title>\n      <link>https://windsurf.com/blog/changelist-jun23</link>\n      <description>Codeium updates from June 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jun23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Fri, 07 Jul 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What GitHub Copilot Lacks: Fine-tuning on Your Private Code</title>\n      <link>https://windsurf.com/blog/what-github-copilot-lacks-finetuning-on-your-private-code</link>\n      <description>Proof that Codeium fine-tuned on a repository significantly outperforms GitHub Copilot.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/what-github-copilot-lacks-finetuning-on-your-private-code</guid>\n      <category>product</category>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Mon, 03 Jul 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Code Suggestions You Don’t Get from Copilot: In-line FIM</title>\n      <link>https://windsurf.com/blog/inline-fim-code-suggestions</link>\n      <description>In-line Fill-in-the-Middle suggestions, valuable suggestions produced only by Codeium.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/inline-fim-code-suggestions</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Fri, 09 Jun 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: May 2023</title>\n      <link>https://windsurf.com/blog/changelist-may23</link>\n      <description>Codeium updates from May 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-may23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Thu, 08 Jun 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: April 2023</title>\n      <link>https://windsurf.com/blog/changelist-apr23</link>\n      <description>Codeium updates from April 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-apr23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Mon, 08 May 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Should your Company ban Generative AI?</title>\n      <link>https://windsurf.com/blog/is-your-company-banning-gen-ai</link>\n      <description>Generative AI poses risks for companies that do not have strict data governance</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/is-your-company-banning-gen-ai</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Thu, 04 May 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Amazon CodeWhisperer is out of beta. We tried it. Spoiler: it isn’t good.</title>\n      <link>https://windsurf.com/blog/amazon-codewhisperer-review</link>\n      <description>An in-depth analysis on the capabilities and performance of Amazon CodeWhisperer post-general access release.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/amazon-codewhisperer-review</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Mon, 24 Apr 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>GitHub Copilot Emits GPL. Codeium Does Not.</title>\n      <link>https://windsurf.com/blog/copilot-trains-on-gpl-codeium-does-not</link>\n      <description>Demonstrating that GitHub Copilot trains on non-permissive licenses and is unable to filter out suggestions properly, while Codeium does not expose users to legal risk.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/copilot-trains-on-gpl-codeium-does-not</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Thu, 20 Apr 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: March 2023</title>\n      <link>https://windsurf.com/blog/changelist-mar23</link>\n      <description>Codeium updates from March 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-mar23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Mon, 03 Apr 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why your AI Code Completion tool needs to Fill in the Middle</title>\n      <link>https://windsurf.com/blog/why-code-completion-needs-fill-in-the-middle</link>\n      <description>Analyzing how fill-in-the-middle allows Codeium to make better suggestions.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/why-code-completion-needs-fill-in-the-middle</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Fri, 31 Mar 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>User Personalization, the Next Frontier in LLMs</title>\n      <link>https://windsurf.com/blog/user-personalization-for-llms</link>\n      <description>How tuning the model layer of LLM applications creates the highest quality experiences for enterprises.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/user-personalization-for-llms</guid>\n      <category>industry</category>\n      <category>enterprise</category>\n      <pubDate>Fri, 31 Mar 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>How is Codeium Free?</title>\n      <link>https://windsurf.com/blog/how-is-codeium-free</link>\n      <description>Diving into our monetization strategy, and why individuals can get Codeium for free.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/how-is-codeium-free</guid>\n      <category>company</category>\n      <pubDate>Fri, 24 Mar 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium for Enterprises</title>\n      <link>https://windsurf.com/blog/codeium-for-enterprises</link>\n      <description>Codeium for Enterprises is the only AI acceleration offering to provide code security, fine-tuning, and state-of-the-art quality.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-for-enterprises</guid>\n      <category>product</category>\n      <category>enterprise</category>\n      <pubDate>Fri, 17 Mar 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Using Code Syntax Parsing for Generative AI</title>\n      <link>https://windsurf.com/blog/using-code-syntax-parsing-for-generative-ai</link>\n      <description>The theory, challenges, and future of code syntax parsing.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/using-code-syntax-parsing-for-generative-ai</guid>\n      <category>industry</category>\n      <pubDate>Wed, 15 Mar 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: February 2023</title>\n      <link>https://windsurf.com/blog/changelist-feb23</link>\n      <description>Codeium updates from February 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-feb23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Thu, 02 Mar 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium in Databricks Notebooks</title>\n      <link>https://windsurf.com/blog/codeium-copilot-alternative-in-databricks-notebooks</link>\n      <description>Launching Codeium in Databricks Notebooks.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-copilot-alternative-in-databricks-notebooks</guid>\n      <category>product</category>\n      <pubDate>Wed, 01 Mar 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium in Emacs</title>\n      <link>https://windsurf.com/blog/codeium-copilot-alternative-in-emacs</link>\n      <description>Launching Codeium in Emacs.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-copilot-alternative-in-emacs</guid>\n      <category>product</category>\n      <pubDate>Fri, 17 Feb 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Best AI Product Lists</title>\n      <link>https://windsurf.com/blog/best-ai-product-lists</link>\n      <description>An aggregation of the best AI product aggregators for discovery.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/best-ai-product-lists</guid>\n      <category>industry</category>\n      <pubDate>Thu, 16 Feb 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Chrome Extension</title>\n      <link>https://windsurf.com/blog/codeium-chrome-extension-launch</link>\n      <description>Injecting the power of Codeium directly into the browser.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-chrome-extension-launch</guid>\n      <category>product</category>\n      <pubDate>Tue, 14 Feb 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>We compete with Github. Bing does not show our website.</title>\n      <link>https://windsurf.com/blog/bing-does-not-index-codeium</link>\n      <description>A genuine question on why we are not getting indexed by Bing.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/bing-does-not-index-codeium</guid>\n      <pubDate>Fri, 10 Feb 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: January 2023</title>\n      <link>https://windsurf.com/blog/changelist-jan23</link>\n      <description>Codeium updates from January 2023!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-jan23</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Wed, 01 Feb 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>AI Code Assistants: Head to Head</title>\n      <link>https://windsurf.com/blog/code-assistant-comparison-copilot-tabnine-ghostwriter-codeium</link>\n      <description>The first head to head assessment of the leading AI powered code assistants: Github Copilot, Tabnine, Replit Ghostwriter, and Codeium.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/code-assistant-comparison-copilot-tabnine-ghostwriter-codeium</guid>\n      <category>industry</category>\n      <pubDate>Fri, 27 Jan 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>User Analytics</title>\n      <link>https://windsurf.com/blog/user-analytics-launch</link>\n      <description>Introducing user-level Codeium usage analytics!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/user-analytics-launch</guid>\n      <category>product</category>\n      <pubDate>Thu, 26 Jan 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium in Vim and Neovim</title>\n      <link>https://windsurf.com/blog/codeium-copilot-alternative-in-vim</link>\n      <description>Launching Codeium in Vim and Neovim.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-copilot-alternative-in-vim</guid>\n      <category>product</category>\n      <pubDate>Thu, 19 Jan 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Why ChatGPT Highlights Copilot's Fundamental Flaw</title>\n      <link>https://windsurf.com/blog/chatgpt-and-copilots-fundamental-flaw</link>\n      <description>How a user study and the rise of ChatGPT point to the underlying product issue of Github Copilot.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/chatgpt-and-copilots-fundamental-flaw</guid>\n      <category>industry</category>\n      <pubDate>Fri, 13 Jan 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium in Jupyter Notebooks</title>\n      <link>https://windsurf.com/blog/codeium-in-jupyter-notebooks</link>\n      <description>Launching Codeium in Jupyter Notebooks.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/codeium-in-jupyter-notebooks</guid>\n      <category>product</category>\n      <pubDate>Sat, 07 Jan 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: December 2022</title>\n      <link>https://windsurf.com/blog/changelist-dec22</link>\n      <description>Codeium updates from December 2022!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-dec22</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Tue, 03 Jan 2023 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>What \"Copilot for X\" Really Takes</title>\n      <link>https://windsurf.com/blog/copilot-for-x-learnings</link>\n      <description>A \"Copilot for X\" guide from the team that built the first real Copilot competitor!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/copilot-for-x-learnings</guid>\n      <category>industry</category>\n      <pubDate>Tue, 20 Dec 2022 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Changelist: November 2022</title>\n      <link>https://windsurf.com/blog/changelist-nov22</link>\n      <description>Codeium updates from November 2022!</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/changelist-nov22</guid>\n      <category>product</category>\n      <category>changelist</category>\n      <pubDate>Mon, 05 Dec 2022 07:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Codeium Beta Launch</title>\n      <link>https://windsurf.com/blog/beta-launch-announcement</link>\n      <description>We are excited to announce the launch of the Codeium Beta.</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/blog/beta-launch-announcement</guid>\n      <category>company</category>\n      <pubDate>Fri, 28 Oct 2022 07:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_windsurf_changelog.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Windsurf Changelog</title>\n    <link>https://windsurf.com/changelog</link>\n    <description>Latest version updates from Windsurf</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_changelog.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:51:20 +0000</lastBuildDate>\n    <item>\n      <title>Windsurf 2.2.17</title>\n      <link>https://windsurf.com/changelog#2.2.17</link>\n      <description>&lt;p&gt;&lt;strong&gt;Devin Review &amp; Quick Review&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;All Windsurf IDE users now have access toDevin ReviewandQuick Reviewwith your existing subscription.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Devin Review is available for all self-serve users, with a 2 week free trial.&lt;/li&gt;&lt;li&gt;Enterprise users can only use Devin Review with a Cognition platform agreement.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Agent Command Center&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added list display option for the agent inbox&lt;/li&gt;&lt;li&gt;Improved sessions sidebar sorting and filtering&lt;/li&gt;&lt;li&gt;Performance improvements for loading and switching sessions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Windows updates&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We have fixed a bug preventing updates for some users on Windows. To upgrade to this version, you may need to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Wait for the update to download.&lt;/li&gt;&lt;li&gt;Once it is downloaded, open Windows Task Manager and close alldevin.exeprocesses&lt;/li&gt;&lt;li&gt;Proceed with installing the update and restarting Windsurf&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Bug fixes and improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed bugs with some MCP servers&lt;/li&gt;&lt;li&gt;Improved reliability of Devin Local agent&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.2.17#2.2.17</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.1.32</title>\n      <link>https://windsurf.com/changelog#2.1.32</link>\n      <description>&lt;h3&gt;Bug Fixes &amp; Improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Bug Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed a crash that could occur when switching between Cascade conversations&lt;/li&gt;&lt;li&gt;Fixed an authentication issue that could prevent Devin Cloud sessions from starting&lt;/li&gt;&lt;li&gt;Fixed an issue where responses to agent questions were not sent correctly&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.1.32#2.1.32</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.1.29</title>\n      <link>https://windsurf.com/changelog#2.1.29</link>\n      <description>&lt;h3&gt;Devin for Terminal&lt;/h3&gt;&lt;p&gt;Devin is now availablefor Terminal. All Windsurf users can use this new CLI agent with your existing subscription.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Runs on your machine— Optimized for interactive work, with full access to your codebase, tools, and environment.&lt;/li&gt;&lt;li&gt;Hand off to the cloud— Seamless hand off to Devin in the cloud, with its own VM, testing, video recordings, autofix and more. Come back to a finished PR.&lt;/li&gt;&lt;li&gt;Multi-model— All of your favorite frontier models in one place, including Opus 4.7, GPT-5.5, and SWE-1.6.&lt;/li&gt;&lt;li&gt;Fast— Written in Rust and so performant that the binary can run on an original VT100.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Devin Agent in Windsurf&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can also enable the new Devin Local agent in Windsurf. This is the same agent harness used on the terminal and sessions can be accessed from both Windsurf and the CLI.&lt;/p&gt;&lt;p&gt;In our testing, it's up to 30% more token-efficient than the existing Cascade agent.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Additional Changes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved search subtitle layout during streaming&lt;/li&gt;&lt;li&gt;Fixed file drag-and-drop in agent window Cascade tabs&lt;/li&gt;&lt;li&gt;Fixed Go to Line/Column keybinding on Windows/Linux (Ctrl+Shift+G)&lt;/li&gt;&lt;li&gt;Added support for server-driven extension deny lists&lt;/li&gt;&lt;li&gt;Stability and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.1.29#2.1.29</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.0.67</title>\n      <link>https://windsurf.com/changelog#2.0.67</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed OAuth authentication issues for some MCP servers&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.0.67#2.0.67</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.0.63</title>\n      <link>https://windsurf.com/changelog#2.0.63</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed a regression with OAuth integration for some MCP servers&lt;/li&gt;&lt;li&gt;Improved reliability of Devin Cloud connections in Windsurf&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.0.63#2.0.63</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.0.61</title>\n      <link>https://windsurf.com/changelog#2.0.61</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.0.61#2.0.61</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.0.50</title>\n      <link>https://windsurf.com/changelog#2.0.50</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements for improving Windsurf 2.0 auth experience.&lt;/li&gt;&lt;li&gt;Fixed bug with spawning Terminal sessions on Windows&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.0.50#2.0.50</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 2.0.44</title>\n      <link>https://windsurf.com/changelog#2.0.44</link>\n      <description>&lt;h3&gt;Windsurf 2.0&lt;/h3&gt;&lt;p&gt;Read the full announcementhere.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Devin in Windsurf&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Devin cloud agent available directly inside Windsurf, included with every self-serve plan&lt;/li&gt;&lt;li&gt;Delegate tasks from a local session to Devin with one click; Devin runs on its own VM&lt;/li&gt;&lt;li&gt;Review Devin changes and test results without leaving the editor&lt;/li&gt;&lt;li&gt;Billing is based on your existing quota and extra usage, with up to 50 USD in extra usage added for launching your first Devin Cloud session.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Note:Access to Devin Cloud is rolling out gradually. If you don't see it yet, try logging out of the website and IDE then logging back in.&lt;/p&gt;&lt;p&gt;Devin Cloud is disabled by default for enterprise accounts. Enterprise admins should enable Devin access in their organization settings if they have already purchased Cognition Platform.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Agent Command Center&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New Kanban-style view showing all local and cloud agent sessions, organized by status&lt;/li&gt;&lt;li&gt;Group agent sessions, PRs, files, and context into task-level Spaces&lt;/li&gt;&lt;li&gt;Switch between Spaces to switch between tasks&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Additional Changes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Refined Windsurf Browser with toolbar integration and Cascade tool for reading page contents&lt;/li&gt;&lt;li&gt;Sped up initial load times for the Cascade sidebar&lt;/li&gt;&lt;li&gt;Improved .gitignore and .codeiumignore handling across the product&lt;/li&gt;&lt;li&gt;Stability improvements for remote extensions (WSL, SSH, Dev Containers)&lt;/li&gt;&lt;li&gt;Performance improvements for typing in large active diff zones&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#2.0.44#2.0.44</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9600.41</title>\n      <link>https://windsurf.com/changelog#1.9600.41</link>\n      <description>&lt;p&gt;&lt;strong&gt;Adaptive Fix&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We fixed a bug with the adaptive model router which prevented switching models after the first request.&lt;/p&gt;&lt;p&gt;All users who encountered the bug have had quota reset and overage restored.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9600.41#1.9600.41</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9600.40</title>\n      <link>https://windsurf.com/changelog#1.9600.40</link>\n      <description>&lt;p&gt;&lt;strong&gt;Adaptive Model Visibility&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We've improved the visibility of the adaptive model in the model picker.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9600.40#1.9600.40</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9600.38</title>\n      <link>https://windsurf.com/changelog#1.9600.38</link>\n      <description>&lt;h3&gt;Introducing Adaptive&lt;/h3&gt;&lt;p&gt;We've made several model packaging changes, with more infohere.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Adaptive Model Router&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A newAdaptivemodel option is now available in the model picker. Adaptive intelligently selects the best model for each task, helping you make your quota last longer by avoiding overuse of premium models.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Availability: Now available to all self-serve users on Pro, Max, and Teams plans.&lt;/li&gt;&lt;li&gt;Dynamic model selection- Automatically chooses the right underlying model for your task while drawing down quota at a fixed per-token rate.&lt;/li&gt;&lt;li&gt;Extra usage promo- Beyond your quota, extra usage is offered at 0.50 USD per 1M input tokens, 2.00 USD per 1M output tokens, and 0.10 USD per 1M cache read tokens for the next 2 weeks.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Updated Model Picker with Pricing Context&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The model picker now shows token pricing information directly, so you can see the exact rate extra usage is billed at.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Token pricing display- Per-model input, output, and cache read token rates visible in the picker.&lt;/li&gt;&lt;li&gt;Prompt cache timer- A new prompt cache timer is integrated into the context window indicator to help you track caching status.&lt;/li&gt;&lt;li&gt;Token counts in response cards- Response cards after messages now include token counts so you can understand exactly how each message cost was calculated.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9600.38#1.9600.38</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9577.43</title>\n      <link>https://windsurf.com/changelog#1.9577.43</link>\n      <description>&lt;h3&gt;Quota Billing&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for the new quota billing system&lt;/li&gt;&lt;li&gt;Daily and Weekly quota usage is now displayed directly in the IDE&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix build for Mac x64&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9577.43#1.9577.43</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9577.42</title>\n      <link>https://windsurf.com/changelog#1.9577.42</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9577.42#1.9577.42</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9577.27</title>\n      <link>https://windsurf.com/changelog#1.9577.27</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix for Apple M5&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9577.27#1.9577.27</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9577.24</title>\n      <link>https://windsurf.com/changelog#1.9577.24</link>\n      <description>&lt;p&gt;&lt;strong&gt;Cascade&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fix dangling Diff Zones related to Jupyter Notebooks&lt;/li&gt;&lt;li&gt;Improve Jupyter Notebook performance when running on WSL&lt;/li&gt;&lt;li&gt;Improve Cascade UI rendering performance&lt;/li&gt;&lt;li&gt;Fix Cascade agent panel crashes under certain conditions&lt;/li&gt;&lt;li&gt;Improve notifications for model price changes&lt;/li&gt;&lt;li&gt;Add support for loading SKILL.md files from the.windsurf/skills/directory&lt;/li&gt;&lt;li&gt;FixAGENTS.mdbeing ignored by Cascade in specific cases&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Add support forsystem-level Skill definitionsvia MDM-managed configs for Enterprise&lt;/li&gt;&lt;li&gt;Improve context management for MCP servers&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Stability &amp; Performance&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improve autocomplete error handling and performance&lt;/li&gt;&lt;li&gt;Improve SSH &amp; Remote performance&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9577.24#1.9577.24</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9566.11</title>\n      <link>https://windsurf.com/changelog#1.9566.11</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix extension installation version selection&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9566.11#1.9566.11</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9566.9</title>\n      <link>https://windsurf.com/changelog#1.9566.9</link>\n      <description>&lt;p&gt;&lt;strong&gt;New Model Picker&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We introduced a new model picker that groups models by family and adds a hovercard with toggles for specific variants, like reasoning effort and speed. Separately, we also added the ability to pin models.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cascade Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;AddedPOST_CASCADE_RESPONSE_WITH_TRANSCRIPTcascade hook&lt;/li&gt;&lt;li&gt;Added Cascade hooks configuration visibility on team settings page&lt;/li&gt;&lt;li&gt;Reduced the priority of Git commits in @ mention search&lt;/li&gt;&lt;li&gt;Added awindsurf.cascade.readClaudeCodeConfigflag to disable reading Claude configuration&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added an MCP Refresh button&lt;/li&gt;&lt;li&gt;Auto-trigger OAuth login when adding HTTP/SSE MCP servers&lt;/li&gt;&lt;li&gt;Fix bugs with parsing on Windows and startup&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Platform Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Merged changes from VS Code 1.108&lt;/li&gt;&lt;li&gt;Improved startup reliability for Cascade&lt;/li&gt;&lt;li&gt;Fixed Windows update initialization path that could block updates&lt;/li&gt;&lt;li&gt;Released binaries for Linux ARM64&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9566.9#1.9566.9</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9552.25</title>\n      <link>https://windsurf.com/changelog#1.9552.25</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix compatibility with GitHub Pull Requests extension&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9552.25#1.9552.25</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9552.24</title>\n      <link>https://windsurf.com/changelog#1.9552.24</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix for self-updating on Windows&lt;/li&gt;&lt;li&gt;Fix for macOS UI flickering&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9552.24#1.9552.24</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9552.21</title>\n      <link>https://windsurf.com/changelog#1.9552.21</link>\n      <description>&lt;h3&gt;Cascade Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Plan Mode now supports automatic switching back to Code Mode when you start implementing a plan&lt;/li&gt;&lt;li&gt;Added support for reading skills from the.agents/skillsdirectory&lt;/li&gt;&lt;li&gt;Tracking triggered rules in thepost_cascade_responsehook via a newrules_appliedfield&lt;/li&gt;&lt;li&gt;Diff zones will now automatically close on commit&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Linux ARM64 Support&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Full Linux ARM64 client support with deb and rpm packaging&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Enterprise &amp; Team Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Cloud configuration for Cascade Hooks is now available for enterprise teams via the cloud dashboard&lt;/li&gt;&lt;li&gt;Support for Devin service key authentication&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes forpost_write_codehooks to handle all code editing tool formats&lt;/li&gt;&lt;li&gt;Fixes and improvements for MCP server resource loading&lt;/li&gt;&lt;li&gt;Fixed osascript privilege escalation being incorrectly triggered on Linux for shell command installation&lt;/li&gt;&lt;li&gt;Addressed multiple memory leaks&lt;/li&gt;&lt;li&gt;Improved RTL language rendering in todo lists&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9552.21#1.9552.21</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9544.35</title>\n      <link>https://windsurf.com/changelog#1.9544.35</link>\n      <description>&lt;h3&gt;New Models&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;GPT-5.3-Codex-Spark is now available in Arena Mode's Fast Arena and Hybrid Arena battle groups&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Claude Opus 4.6 (fast mode)&lt;/h3&gt;&lt;p&gt;Claude Opus 4.6 (fast mode) is now available in Windsurf in research preview with limited-time promotional pricing for self serve users until Feb 16:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;No thinking:10x credits&lt;/li&gt;&lt;li&gt;With thinking:12x credits&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Opus 4.6 (fast mode) has the same intelligence as Opus 4.6 but with up to 2.5x higher output speeds.&lt;/p&gt;&lt;h3&gt;Claude Opus 4.6&lt;/h3&gt;&lt;p&gt;Claude Opus 4.6 is now available in Windsurf with limited-time promotional pricing for self serve users:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;No thinking:2x credits&lt;/li&gt;&lt;li&gt;With thinking:3x credits&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Opus 4.6 is available in Arena Mode's Frontier Arena and Hybrid Arena. Try it head-to-head against other frontier models to see how it performs on your real-world tasks.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9544.35#1.9544.35</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9544.28</title>\n      <link>https://windsurf.com/changelog#1.9544.28</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix issues with Arena Mode Battle Groups&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9544.28#1.9544.28</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9544.26</title>\n      <link>https://windsurf.com/changelog#1.9544.26</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improve UI styling for announcement popups and notifications&lt;/li&gt;&lt;li&gt;Close model picker when selecting a battle group&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9544.26#1.9544.26</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9544.24</title>\n      <link>https://windsurf.com/changelog#1.9544.24</link>\n      <description>&lt;h3&gt;Wave 14: Arena Mode&lt;/h3&gt;&lt;p&gt;Arena Mode brings side-by-side model comparison directly into your IDE, plus Plan Mode for smarter task planning.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Arena Mode&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Run two Cascade agents side-by-side with hidden model identities and vote on which performs better. Arena Mode lets you discover which models actually work best foryourworkflow, codebase, and tasks—not just what benchmarks or influencers say.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Battle Groups: Choose specific models to compare or let Windsurf randomly select from curated groups like \"fast models\" vs \"smart models\"&lt;/li&gt;&lt;li&gt;Personal &amp; Global Leaderboards: Your votes contribute to both a personal leaderboard (your preferences) and a global one (across all Windsurf users)&lt;/li&gt;&lt;li&gt;Sync or Branch: Send followup prompts to both agents simultaneously, or branch and explore different paths individually&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To get started, select the newArenatab in the model picker. All battle groups are free for the first week for paid users.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Plan Mode&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Plan Mode is a new Cascade mode alongside Code and Ask. Use it to create detailed implementation plans before diving into code.&lt;/p&gt;&lt;p&gt;Pro tip: Typemegaplanin the Cascade input box to trigger an advanced form that asks clarifying questions to create a more aligned, comprehensive plan.&lt;/p&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Admins can now set a default model that applies to all team members when they first open Windsurf&lt;/li&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9544.24#1.9544.24</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.14</title>\n      <link>https://windsurf.com/changelog#1.13.14</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix bug with permanently disconnected cascades&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.14#1.13.14</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.13</title>\n      <link>https://windsurf.com/changelog#1.13.13</link>\n      <description>&lt;h3&gt;Bug Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes commit message generation and codemaps suggestions&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.13#1.13.13</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.12</title>\n      <link>https://windsurf.com/changelog#1.13.12</link>\n      <description>&lt;h3&gt;Enterprise Features&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Enterprise admins can now specify organization-wide allow and deny lists for command auto-execution.Learn more&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Bug fixes and performance improvements for diff zones&lt;/li&gt;&lt;li&gt;Improved overall stability and reliability&lt;/li&gt;&lt;li&gt;Addedpost_setup_worktreehook for initializing worktrees in Cascade&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.12#1.13.12</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.9</title>\n      <link>https://windsurf.com/changelog#1.13.9</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improvements to GPT-5.2-Codex harness&lt;/li&gt;&lt;li&gt;Admins can now manage Windsurf restrictions via Windows Group Policy&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.9#1.13.9</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.8</title>\n      <link>https://windsurf.com/changelog#1.13.8</link>\n      <description>&lt;h3&gt;GPT-5.2-Codex&lt;/h3&gt;&lt;p&gt;Adds support for GPT-5.2-Codex with four reasoning efforts (low, medium, high, and xhigh). GPT-5.2-Codex is OpenAI's latest model designed for agentic coding. It excels at working in large codebases over long sessions. For most tasks, we recommend using the medium reasoning effort.&lt;/p&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;li&gt;Improved stability and reliability&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.8#1.13.8</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.6</title>\n      <link>https://windsurf.com/changelog#1.13.6</link>\n      <description>&lt;h3&gt;New Features and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Windsurf now supportsAgent Skillsfor Cascade.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;li&gt;Improved stability and reliability&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.6#1.13.6</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.5</title>\n      <link>https://windsurf.com/changelog#1.13.5</link>\n      <description>&lt;h3&gt;Gemini 3 Flash&lt;/h3&gt;&lt;p&gt;Gemini 3 Flash is now available for all users. This model combines Gemini 3 Pro-grade reasoning with Flash-level speed and efficiency, making it ideal for agentic workflows and coding tasks.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Blazing Fast Responses: Experience near-instant feedback with 3x faster performance than previous generations, perfect for iterative development compared to Gemini 3 Pro&lt;/li&gt;&lt;li&gt;Superior Coding Intelligence: Outperforms even Pro-tier models on key coding benchmarks (78% on SWE-bench Verified), providing more accurate code generation and debugging&lt;/li&gt;&lt;li&gt;Deep Multimodal Understanding: Easily process complex video, data extraction, and visual Q&amp;A tasks with frontier-level reasoning&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;li&gt;Tab fixes and improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.5#1.13.5</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.13.3</title>\n      <link>https://windsurf.com/changelog#1.13.3</link>\n      <description>&lt;h3&gt;Wave 13: Merry Shipmas&lt;/h3&gt;&lt;p&gt;Wave 13 brings first-class support for parallel, multi-agent sessions in Windsurf, along with Git worktrees, side-by-side Cascade panes, and a dedicated terminal profile for more reliable agent execution.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SWE-1.5 Free&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Our near-frontier model, SWE-1.5, is now available for free to all users for the next 3 months. SWE-1.5 Free has the full intelligence of SWE-1.5, with the same coding performance on SWE-Bench-Pro, but delivered at standard throughput speeds. The original variant of SWE-1.5 hosted on Cerebras will continue to be available for paid users. SWE-1.5 Free will replace SWE-1 as the default model in Windsurf starting today.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Git Worktree Support&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Windsurf now supports Git worktrees, letting you spawn multiple Cascade sessions in the same repository without conflicts. Git worktrees check out different branches into separate directories while sharing the same Git history.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Multi-Cascade Panes &amp; Tabs&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can already run multiple Cascade sessions in Windsurf at the same time. Now, you can view and interact with them in separate panes and tabs within the same window. This lets you monitor progress and compare outputs of sessions side-by-side, or even turn Windsurf into a big Cascade dashboard.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cascade Dedicated Terminal (Beta)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Windsurf introduces a new approach for letting agents execute terminal commands. Instead of your default shell, Cascade will now run commands in a dedicated zsh shell specifically configured for reliability. The Cascade Dedicated Terminal can use the environment variables you set in your .zshrc configuration and is interactive, which means you can answer any prompts from shell scripts without having to break your flow. This should improve the reliability and speed of shell commands, especially for users with complicated prompts (e.g., powerlevel10k).&lt;/p&gt;&lt;p&gt;In this version, the Cascade Dedicated Te...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.13.3#1.13.3</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 24 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.47</title>\n      <link>https://windsurf.com/changelog#1.12.47</link>\n      <description>&lt;h3&gt;Features&lt;/h3&gt;&lt;p&gt;Added a new \"Promo\" label to LLM models that are newly available or have special discount pricing&lt;/p&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Agents &amp; Tool Execution&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed Command-I functionality&lt;/li&gt;&lt;li&gt;Fixed Ctrl+C during tool execution not working properly&lt;/li&gt;&lt;li&gt;Fixed Go (fallback) processes not being killed properly&lt;/li&gt;&lt;li&gt;Fixed handling of parallel tool call errors&lt;/li&gt;&lt;li&gt;Improved MCP tool call visibility (show tool name, args, etc)&lt;/li&gt;&lt;li&gt;Fixed fallback diff handling for nonexistent files in code actions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;UI &amp; Rendering&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed incorrect indentation from code blocks in terminal rendering&lt;/li&gt;&lt;li&gt;Fixed nested lists not rendering on new line in terminal markdown&lt;/li&gt;&lt;li&gt;Fixed content spacing issues&lt;/li&gt;&lt;li&gt;Fixed streaming flashes&lt;/li&gt;&lt;li&gt;Enhanced code block file path display to hide line numbers for whole files&lt;/li&gt;&lt;li&gt;Improved citation and language parsing in code blocks with a more robust regex pattern&lt;/li&gt;&lt;li&gt;Updated the UI for code block title bars to properly handle long paths with truncation&lt;/li&gt;&lt;li&gt;Improved the auto-run command menu interface and its display logic&lt;/li&gt;&lt;li&gt;Added loading indicators when thinking or during long running operations&lt;/li&gt;&lt;li&gt;Fix opening old Cascade diffs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Platform &amp; Messaging&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed rate limit error message to say \"no credits were used\" instead of \"credits have been refunded\"&lt;/li&gt;&lt;li&gt;Fixed continuously rechecking for updates on macOS&lt;/li&gt;&lt;li&gt;Added a user-facing message when API providers are exhausted&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Workspace &amp; Onboarding&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Allowed clicking items in the Windsurf onboarding pane&lt;/li&gt;&lt;li&gt;Respect gitignore patterns in the workspace directory tree&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.47#1.12.47</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.44</title>\n      <link>https://windsurf.com/changelog#1.12.44</link>\n      <description>&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Reduce occurrence of \"prompt is too long\" errors&lt;/li&gt;&lt;li&gt;Request all supported scopes if no scopes are provided in MCP OAuth config&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.44#1.12.44</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.43</title>\n      <link>https://windsurf.com/changelog#1.12.43</link>\n      <description>&lt;h3&gt;GPT-5.2&lt;/h3&gt;&lt;p&gt;GPT-5.2 is now available in Windsurf. This model will be available for 0x credits in Windsurf (to paid users) for a limited time.&lt;/p&gt;&lt;p&gt;GPT-5.2 represents the biggest leap for GPT models in agentic coding since GPT-5 and is a SOTA coding model in its price range. The version bump undersells the jump in intelligence. We`re excited to make it the default across Windsurf and several core Devin workloads. - Jeff Wang, CEO of Windsurf&lt;/p&gt;&lt;p&gt;Download thelatest version on Windsurfto try it out!&lt;/p&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;General Windsurf stability and performance improvements&lt;/li&gt;&lt;li&gt;General Tab (Supercomplete) improvements and stability&lt;/li&gt;&lt;li&gt;Fixes issues with Cascade running commands that could not be cancelled during certain long-running processes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.43#1.12.43</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 11 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.41</title>\n      <link>https://windsurf.com/changelog#1.12.41</link>\n      <description>&lt;h3&gt;Features &amp; Tools&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Cascade Hooks on User Prompts&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Users can now configure Cascade Hooks on user prompts for logging all user prompts and blocking policy-violating prompts.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MCP Servers&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for GitLab remote MCP.&lt;/li&gt;&lt;li&gt;Added OAuth support for GitHub remote MCP.&lt;/li&gt;&lt;li&gt;Fixed an issue where every MCP would reauth on opening Windsurf.&lt;/li&gt;&lt;li&gt;Added support forMCP prompts&lt;/li&gt;&lt;li&gt;Added toggles to enable/disable MCPs in the Cascade header&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Diff Zones&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes issues with diff zones not rendering correctly or jumping to the end of a file when editing&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Tab (Supercomplete)&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improves reliability of Tab autocomplete&lt;/li&gt;&lt;li&gt;Makes Tab more responsive and faster in the appropiate circumstances&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;General stability and performance improvements&lt;/li&gt;&lt;li&gt;Fixes issues with login timing out too quickly during onboarding&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.41#1.12.41</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.39</title>\n      <link>https://windsurf.com/changelog#1.12.39</link>\n      <description>&lt;h3&gt;GPT-5.1-Codex Max&lt;/h3&gt;&lt;p&gt;Introducing GPT-5.1-Codex Max in three reasoning tiers (Low, Medium, High). Low variant available at no cost to paid users for a limited time.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.39#1.12.39</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.37</title>\n      <link>https://windsurf.com/changelog#1.12.37</link>\n      <description>&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;General bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.37#1.12.37</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.36</title>\n      <link>https://windsurf.com/changelog#1.12.36</link>\n      <description>&lt;h3&gt;Claude Opus 4.5&lt;/h3&gt;&lt;p&gt;You can now use Claude Opus 4.5 in Windsurf!&lt;/p&gt;&lt;p&gt;Opus 4.5 is the most capable model in Windsurf yet and is now available at Sonnet pricing for a limited time (2x credits compared to 20x for Opus 4.1).&lt;/p&gt;&lt;p&gt;This model is available to all paid Windsurf subscribers.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.36#1.12.36</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.35</title>\n      <link>https://windsurf.com/changelog#1.12.35</link>\n      <description>&lt;h3&gt;AI Models&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Gemini 3 Pro&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Resolved an issue where Gemini 3 Pro caused internal Cascade errors for some users.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;SWE-1.5&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed notebook tool functionality for SWE-1.5.&lt;/li&gt;&lt;li&gt;Addressed an issue where SWE-1.5 would unexpectedly stop or return \"No response requested\".&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Sonnet 4.5&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for Sonnet 4.5 with a 1M token context window.&lt;/li&gt;&lt;li&gt;Reduced the frequency of unnecessary Markdown file creation by Sonnet 4.5.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;GPT-5.1 Codex and Codex Mini&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for GPT-5.1 Codex and Codex Mini with low reasoning effort configuration.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Features &amp; Tools&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Codemaps&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved reliability of saving and retrieving Codemaps.&lt;/li&gt;&lt;li&gt;Fixed Codemap sorting and increased the limit of visible open Codemaps.&lt;/li&gt;&lt;li&gt;Resolved issues with mentioning Codemaps in Cascade.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP Servers&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed scope handling and OAuth authentication flows for various MCP servers.&lt;/li&gt;&lt;li&gt;Resolved issues preventing installation of new MCP servers.&lt;/li&gt;&lt;li&gt;Added support for handling embedded resource content in tool call responses.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Tab Completion&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved latency, responsiveness, and accuracy of autocomplete.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Note: The Autocomplete setting has been removed as it was a legacy option that had no effect. Windsurf's Tab autocomplete feature is powered by Supercomplete.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Vibe and Replace&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed reliability issues with Vibe and Replace.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fast Context&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for.codeiumignoreand.gitignorefor Fast Context.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;General Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed various UI alignment issues with icons and styles.&lt;/li&gt;&lt;li&gt;General performance and stability improvements.&lt;/li&gt;&lt;li&gt;Fixed issues with the file search tool.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.35#1.12.35</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.33</title>\n      <link>https://windsurf.com/changelog#1.12.33</link>\n      <description>&lt;h3&gt;Gemini 3 Pro Preview&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;You can now use Gemini 3 Pro (Low and High) in Windsurf! This is a preview release that is available to paid Trial, Pro, and Teams subscribers and will soon be extended to Enterprise users as well.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.33#1.12.33</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.32</title>\n      <link>https://windsurf.com/changelog#1.12.32</link>\n      <description>&lt;h3&gt;GPT-5.1 Priority Mode&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added priority processing support for GPT-5.1 models, providing guaranteed low-latency responses for faster (~50 tokens/sec), more reliable AI assistance.&lt;/li&gt;&lt;li&gt;Priority processing costs 2x the standard rate, which will be reflected in the Windsurf credit system.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed tool call calling issues for GPT-5.1-Codex and GPT-5.1-Codex Mini models&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.32#1.12.32</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.31</title>\n      <link>https://windsurf.com/changelog#1.12.31</link>\n      <description>&lt;h3&gt;GPT-5.1 and GPT-5.1-Codex&lt;/h3&gt;&lt;p&gt;GPT-5.1 and GPT-5.1-Codex are now available in Windsurf. GPT-5.1 will become the default model in Windsurf for one week, and paid users get free access during this period.&lt;/p&gt;&lt;p&gt;GPT-5.1 and GPT-5.1-Codex deliver a solid upgrade from GPT-5 for agentic coding workflows. They're noticeably better at understanding what you're asking for and working with you to get it done. The new variable thinking feature dynamically adjusts reasoning depth—providing quick responses for simple tasks and more thoughtful analysis when complexity demands it.&lt;/p&gt;&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;MCP Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Loading state indicators: Show loading state per installed MCP to improve visibility during initialization.&lt;/li&gt;&lt;li&gt;Refresh only edited MCPs: Whenmcp_config.jsonis modified, only the affected MCP server instance is initialized/refreshed; no other instances are refreshed.&lt;/li&gt;&lt;li&gt;Increased initialization timeout: MCP initialization timeout increased to 60s.&lt;/li&gt;&lt;li&gt;Refresh button for error states: Show refresh button for MCPs in error state to allow manual recovery.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Hooks&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade Hooks feature: New Cascade Hooks feature available to all tiers.&lt;/li&gt;&lt;li&gt;Documentation: SeeCascade Hooks docsfor available hooks and usage examples.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;SWE 1.5 Image Support&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Image understanding: SWE 1.5 now supports image understanding, enabling visual content analysis.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Removed Features&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Knowledge Base: Removed the Knowledge Base feature.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Bug Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Vim extension typing lag: Fixed bug causing typing lag when Vim extension is enabled.&lt;/li&gt;&lt;li&gt;PowerShell + Turbo Mode: Fixed an issue where PowerShell was not running commands when Turbo Mode is enabled.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Shortcuts&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Attach current file to Cascade: New shortcutOption/Alt+Cmd+Lwhen in an editor to...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.31#1.12.31</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.28</title>\n      <link>https://windsurf.com/changelog#1.12.28</link>\n      <description>&lt;h3&gt;Features&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Expanded Codemaps&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Codemaps now include powerful new capabilities:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Chat with map- Interact directly with your codebase visualizations&lt;/li&gt;&lt;li&gt;Mermaid diagrams- Generate visual diagrams within maps for better code understanding&lt;/li&gt;&lt;li&gt;Cascade suggestions- Get AI-powered suggestions directly in your maps&lt;/li&gt;&lt;li&gt;Map option in chat/edit nudges- Easily create maps from chat and edit interactions&lt;/li&gt;&lt;li&gt;Smart mode option- Enhanced intelligent assistance when working with maps&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Summarization Fix&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Improved Cascade summarization to better handle longer conversations. Previously, summaries could be too aggressive and drop important context. Now maintains better continuity across long sessions with multiple file changes and user messages.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MCP Enhancements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Path component handling- Improved support for MCP URLs with path components (e.g., Smithery MCPs)&lt;/li&gt;&lt;li&gt;OAuth flow improvements- Better OAuth flow for streamable HTTP MCPs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Performance Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Sticky scroll lag fixes- Resolved lag spikes when using sticky scroll with Vim bindings&lt;/li&gt;&lt;li&gt;General slowness fixes- Addressed performance issues caused by VSCode OSS update&lt;/li&gt;&lt;li&gt;Terminal rendering optimization- Fixed rendering loop that caused 500ms+ delays on first terminal open&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Terminal Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;PowerShell improvements- Fixed Windows terminal integration edge cases where commands would appear stuck&lt;/li&gt;&lt;li&gt;Shell theme compatibility- Resolved edge cases with custom shell themes (zsh, fish, powerlevel10k, etc.) that could cause Windsurf to break or show stuck commands&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Editor Stability&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Terminal freeze fix- Fixed an issue where the editor would freeze when opening the terminal&lt;/li&gt;&lt;li&gt;CMD+J fix- Resolved layout thrashing issue when opening terminal...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.28#1.12.28</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.27</title>\n      <link>https://windsurf.com/changelog#1.12.27</link>\n      <description>&lt;h3&gt;Falcon Alpha&lt;/h3&gt;&lt;p&gt;You can now try a new stealth model in Windsurf: Falcon Alpha. Falcon Alpha is a powerful agentic model designed for speed. We're excited to hear what you build with it!&lt;/p&gt;&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various performance improvements and bug fixes.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.27#1.12.27</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.25</title>\n      <link>https://windsurf.com/changelog#1.12.25</link>\n      <description>&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Support and fixes for AGENTS.md&lt;/li&gt;&lt;li&gt;Improvements and bug fixes for Codemaps.&lt;/li&gt;&lt;li&gt;Improvements to Fast Context. Enterprises can opt in using the Windsurf Team Settings. Users can toggle Fast Context automatically using \"CMD/Ctrl + Enter\" on the first message in a chat.&lt;/li&gt;&lt;li&gt;New auto-linting behavior that speeds up Cascade.&lt;/li&gt;&lt;li&gt;Fix for MCP Marketplace not respecting team whitelist options.&lt;/li&gt;&lt;li&gt;Fixes for Jupyter Notebook tool.&lt;/li&gt;&lt;li&gt;Fixes for Memories, Rules, and Workflows.&lt;/li&gt;&lt;li&gt;General bug fixes and improvements.&lt;/li&gt;&lt;li&gt;Performance optimizations and stability enhancements.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Dependencies&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updated Code OSS to version 1.105.0 (Electron: 37.6.0, Chromium: 138.0.7204.251)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.25#1.12.25</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.21</title>\n      <link>https://windsurf.com/changelog#1.12.21</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Resolved issues affecting SSH remote connections with high resource usage.&lt;/li&gt;&lt;li&gt;Fix certain models seeing increased error rates on editing files.&lt;/li&gt;&lt;li&gt;Improved diagnostics for third party extensions.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.21#1.12.21</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 17 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.20</title>\n      <link>https://windsurf.com/changelog#1.12.20</link>\n      <description>&lt;h3&gt;New Features&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fast Context: Introduced Fast Context subagent powered by SWE-grep, enabling agents to find relevant code context up to 20x faster with &gt;2,800 tokens per second throughput.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Learn more on ourblog.&lt;/p&gt;&lt;h3&gt;Bug Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed issues with WSL compatibility.&lt;/li&gt;&lt;li&gt;Fixed bugs in Workflows and Rules UI.&lt;/li&gt;&lt;li&gt;Various stability improvements and minor bug fixes.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.20#1.12.20</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.18</title>\n      <link>https://windsurf.com/changelog#1.12.18</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes issue with custom MCP servers not being displayed correctly in the new MCP panel.&lt;/li&gt;&lt;li&gt;Improvements and bug fixes for the beta Codemaps feature.&lt;/li&gt;&lt;li&gt;Fixes issue where some bash commands would get stuck.&lt;/li&gt;&lt;li&gt;Fixes issue where certain models couldn't create or edit Jupyter notebooks.&lt;/li&gt;&lt;li&gt;General bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.18#1.12.18</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.16</title>\n      <link>https://windsurf.com/changelog#1.12.16</link>\n      <description>&lt;h3&gt;Codemaps&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Codemaps is a beta feature for codebase understanding and navigation. Open the codemaps pane to try it out!&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes to Cascade to reduce internal errors.&lt;/li&gt;&lt;li&gt;Fixes to Cascade not seeing terminal output.&lt;/li&gt;&lt;li&gt;Various other bug fixes and stability improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.16#1.12.16</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 10 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.12</title>\n      <link>https://windsurf.com/changelog#1.12.12</link>\n      <description>&lt;h3&gt;Claude Sonnet 4.5&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Claude Sonnet 4.5 is now available&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.12#1.12.12</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.11</title>\n      <link>https://windsurf.com/changelog#1.12.11</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix using MCP tools with certain models.&lt;/li&gt;&lt;li&gt;Fixes to terminal issues on Windows.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.11#1.12.11</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.9</title>\n      <link>https://windsurf.com/changelog#1.12.9</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix to Cascade slowness issues&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.9#1.12.9</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.8</title>\n      <link>https://windsurf.com/changelog#1.12.8</link>\n      <description>&lt;h3&gt;GPT-5-Codex is now in Windsurf!&lt;/h3&gt;&lt;p&gt;GPT-5-Codex is now available for free (0x credits) for a limited time for paid users!&lt;/p&gt;&lt;p&gt;Free users can use GPT-5-Codex as well for 0.5x credits.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.8#1.12.8</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.6</title>\n      <link>https://windsurf.com/changelog#1.12.6</link>\n      <description>&lt;h3&gt;Cascade Improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Queued messages&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Users can now add follow-up messages to Cascade while it is working, and Cascade will process them in order after the current task is complete.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Mermaid diagram support&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now renders mermaid diagrams in the conversation.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Deprecation&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Windsurf Browser is now deprecated. We plan to refactor and release a replacement feature in the coming months. Please usePreviewsinstead.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Made improvements to the sign up onboarding flow.&lt;/li&gt;&lt;li&gt;Various bug fixes and stability improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.6#1.12.6</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.5</title>\n      <link>https://windsurf.com/changelog#1.12.5</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.5#1.12.5</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.4</title>\n      <link>https://windsurf.com/changelog#1.12.4</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.4#1.12.4</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 03 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.3</title>\n      <link>https://windsurf.com/changelog#1.12.3</link>\n      <description>&lt;h3&gt;Deprecation Notice&lt;/h3&gt;&lt;p&gt;The Windsurf Browser will be deprecated on Sept 11. We plan to refactor and release a replacement feature in the coming months. Please usePreviewsinstead.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.3#1.12.3</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 03 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.3</title>\n      <link>https://windsurf.com/changelog#1.12.3</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;li&gt;Memory improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.3#1.12.3</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.2</title>\n      <link>https://windsurf.com/changelog#1.12.2</link>\n      <description>&lt;h3&gt;Grok Code Fast is now in Windsurf!&lt;/h3&gt;&lt;p&gt;Grok Code Fast 1 is now available in Windsurf for Pro and Teams users! We're excited to enable it for free (0x credits) for a limited time.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.2#1.12.2</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.2</title>\n      <link>https://windsurf.com/changelog#1.12.2</link>\n      <description>&lt;h3&gt;GPT-5 Pricing Changes&lt;/h3&gt;&lt;p&gt;Starting on Tuesday, August 26, our GPT-5 promotion will end for all users. The new pricing will be:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;GPT 5 High: 2x Credits&lt;/li&gt;&lt;li&gt;GPT 5 Med: 1x Credits&lt;/li&gt;&lt;li&gt;GPT 5 Low: 0.5x Credits&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.2#1.12.2</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.2</title>\n      <link>https://windsurf.com/changelog#1.12.2</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.2#1.12.2</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.12.1</title>\n      <link>https://windsurf.com/changelog#1.12.1</link>\n      <description>&lt;h3&gt;Devin features in Windsurf, stability improvements, and a brand new UI&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Stability &amp; Performance: Over 100 bug fixes and reliability improvements.&lt;/li&gt;&lt;li&gt;DeepWiki in Windsurf: Hover over code symbols for intelligent DeepWiki-powered documentation.&lt;/li&gt;&lt;li&gt;Vibe and Replace: AI-powered find and replace functionality. Apply intelligent transformations to multiple code matches.&lt;/li&gt;&lt;li&gt;Cascade Agent Improvements: Automatic planning mode with no manual toggles required. Revamped tools with more accurate edits. Enhanced code exploration leveraging long context models.&lt;/li&gt;&lt;li&gt;Tab Autocomplete: New system with more frequent and smarter suggestions.&lt;/li&gt;&lt;li&gt;UI Redesign: All-new Chat, Cascade, and home screen panels.&lt;/li&gt;&lt;li&gt;Dev Containers: Support for development containers via remote SSH access.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.12.1#1.12.1</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.11.5</title>\n      <link>https://windsurf.com/changelog#1.11.5</link>\n      <description>&lt;h3&gt;GPT-5 Available&lt;/h3&gt;&lt;p&gt;Windsurf now supports the GPT-5 suite of models including GPT-5 (low reasoning), GPT-5 (medium reasoning), and GPT-5 (high reasoning). They are available for free for a limited time for paying users!&lt;/p&gt;&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.11.5#1.11.5</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.11.3</title>\n      <link>https://windsurf.com/changelog#1.11.3</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.11.3#1.11.3</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.11.2</title>\n      <link>https://windsurf.com/changelog#1.11.2</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.11.2#1.11.2</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.11.1</title>\n      <link>https://windsurf.com/changelog#1.11.1</link>\n      <description>&lt;h3&gt;Kimi K2 Available&lt;/h3&gt;&lt;p&gt;Windsurf now supports Kimi K2 model which costs 0.5 credits per prompt.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.11.1#1.11.1</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.11.0</title>\n      <link>https://windsurf.com/changelog#1.11.0</link>\n      <description>&lt;h3&gt;Speak to Cascade&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Voice&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Users can now speak into the chat rather than having to type things out.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;@-mentioning conversations&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;@-mention the first conversation so Cascade has full context of it as it goes to write tests for you.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Deeper Browser integration&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Chat with Cascade about tabs that are open in the Browser using @-mentions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;JetBrains improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Planning Mode, Workflows, and file-based Rules are now available for Cascade on JetBrains&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Now you can @-mention terminal in Cascade.&lt;/li&gt;&lt;li&gt;You can turn on the Auto-Continue setting to have Cascade automatically continue its response if it hits a limit.&lt;/li&gt;&lt;li&gt;Support for more MCP servers with easier and more secure authentication by integrating the new Streamable HTTP transport (replaces SSE) and MCP authentication (replaces access tokens or API keys in the config).&lt;/li&gt;&lt;li&gt;Important for enterprise customers who use Windsurf across lots of repos. Now, you can enforce ignore rules across all repositories by placing .codeiumignore in the ~/.codeium/ folder&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.11.0#1.11.0</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.10.8</title>\n      <link>https://windsurf.com/changelog#1.10.8</link>\n      <description>&lt;h3&gt;Linux Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes to RHEL 8 Support&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.10.8#1.10.8</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.10.7</title>\n      <link>https://windsurf.com/changelog#1.10.7</link>\n      <description>&lt;h3&gt;Cascade Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improvements to Cascade reliability&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.10.7#1.10.7</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.10.6</title>\n      <link>https://windsurf.com/changelog#1.10.6</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.10.6#1.10.6</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.10.5</title>\n      <link>https://windsurf.com/changelog#1.10.5</link>\n      <description>&lt;h3&gt;Browser Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed unauthenticated missing CSRF token&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.10.5#1.10.5</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 19 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.10.4</title>\n      <link>https://windsurf.com/changelog#1.10.4</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed API Pricing labels in the model selector&lt;/li&gt;&lt;li&gt;Fixed bugs related to planning mode&lt;/li&gt;&lt;li&gt;Fixed some behavior around conversation button dropdown&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.10.4#1.10.4</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.10.3</title>\n      <link>https://windsurf.com/changelog#1.10.3</link>\n      <description>&lt;h3&gt;Windsurf Browser&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ability to share browser context with Windsurf&lt;/li&gt;&lt;li&gt;Share code blocks, selected text, web page elements, screenshots, and console logs&lt;/li&gt;&lt;li&gt;Send blocks directly to Cascade&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed writing to plan.md files for Enterprise users&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.10.3#1.10.3</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.10.1</title>\n      <link>https://windsurf.com/changelog#1.10.1</link>\n      <description>&lt;h3&gt;Planning Mode&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Send messages to Cascade in Planning Mode, a setting that will let Cascade plan before making edits&lt;/li&gt;&lt;li&gt;Cascade will create a plan.md file of the actions it plans to take before taking action&lt;/li&gt;&lt;li&gt;The plan is user-editable, and Cascade will pick up on user changes&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Terminal Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Native terminal in Cascade panel&lt;/li&gt;&lt;li&gt;Terminal now accepts user inputs in the Cascade panel&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Legacy Mode Removal&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Legacy mode has been removed, leaving Write and Chat mode&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Icons in @-mentions&lt;/li&gt;&lt;li&gt;Theme-aware codeblocks with refreshed design&lt;/li&gt;&lt;li&gt;Improvements to.codeiumignore&lt;/li&gt;&lt;li&gt;New menu to open previous conversations to quickly switch conversations&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.10.1#1.10.1</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9.4</title>\n      <link>https://windsurf.com/changelog#1.9.4</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed Cascade and terminal integration issues for Mac and Linux users&lt;/li&gt;&lt;li&gt;Merged upstream changes from VS Code 1.99.3&lt;/li&gt;&lt;li&gt;Improvements to import behavior during onboarding&lt;/li&gt;&lt;li&gt;Fixed shadow with the App Icon on Mac&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9.4#1.9.4</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 03 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9.2</title>\n      <link>https://windsurf.com/changelog#1.9.2</link>\n      <description>&lt;h3&gt;Bring your Own Anthropic Key&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;BYOK (Anthropic Key)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now bring your own API Key from Anthropic to use the Claude 4 Sonnet, Claude 4 Sonnet (Thinking), Claude 4 Opus, and Claude 4 Opus (Thinking) models in Cascade&lt;/li&gt;&lt;li&gt;To use BYOK, go toprovide API keysand input your key&lt;/li&gt;&lt;li&gt;Once entered, go back to Windsurf and reload the window. You should now be able to use the new models&lt;/li&gt;&lt;li&gt;This is only available for Free and Pro users at this time&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9.2#1.9.2</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9.1</title>\n      <link>https://windsurf.com/changelog#1.9.1</link>\n      <description>&lt;h3&gt;SWE-1 Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Adds multi-modal (image) support to SWE-1&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9.1#1.9.1</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.9.0</title>\n      <link>https://windsurf.com/changelog#1.9.0</link>\n      <description>&lt;h3&gt;New Family of SWE-1 Models&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;SWE-1&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New SWE-1 Model made by Windsurf is available in Cascade&lt;/li&gt;&lt;li&gt;SWE-1 is a new model with frontier model-level capabilities&lt;/li&gt;&lt;li&gt;Free for a limited time for Pro Users&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;SWE-1-lite&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;SWE-1-lite is a new, far more capable model replacing Cascade Base&lt;/li&gt;&lt;li&gt;Free to use for all plans and tiers&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;SWE-1-mini&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;SWE-1-Mini is our revamped model for tab completion in Windsurf&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Few memory leak bug fixes&lt;/li&gt;&lt;li&gt;Various fixes to Cascade Plugin Panel&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.9.0#1.9.0</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.8.2</title>\n      <link>https://windsurf.com/changelog#1.8.2</link>\n      <description>&lt;h3&gt;Cascade Customization&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Cascade UX Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Redesigned Model Selector&lt;/li&gt;&lt;li&gt;Continue button when reaching individual tool call limit&lt;/li&gt;&lt;li&gt;Opening conversations will now open the associated workspace&lt;/li&gt;&lt;li&gt;Hunk accept/reject widget now has a compact mode to cover less code&lt;/li&gt;&lt;li&gt;Improvements to commit message generation quality&lt;/li&gt;&lt;li&gt;Commit message generation reads from global rules as context&lt;/li&gt;&lt;li&gt;Ability to edit proposed terminal command&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Custom Workflows&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can create “workflows”, saved prompts that Cascade can follow&lt;/li&gt;&lt;li&gt;Workflows can be invoked via slash command&lt;/li&gt;&lt;li&gt;Cascade can help create and edit workflows&lt;/li&gt;&lt;li&gt;Workflow files are saved in the workspace, under .windsurf/workflows&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;File-Based Rules&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can create granular rules files that are always on, @mention-able, requested by Cascade, or attached to file globs&lt;/li&gt;&lt;li&gt;Rules files are saved in the workspace, under .windsurf/rules&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Simultaneous Cascades&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Allow Cascade to keep running when switching to another conversation&lt;/li&gt;&lt;li&gt;Add support for switching between conversations via a dropdown menu or keyboard shortcuts&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Plugins&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New panel in Cascade for managing MCP Servers&lt;/li&gt;&lt;li&gt;Easier one-click uninstall and install&lt;/li&gt;&lt;li&gt;Easier search&lt;/li&gt;&lt;li&gt;MCP now has MCP resources and multimodel responses&lt;/li&gt;&lt;li&gt;More MCP Server options coming soon&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed tool call errors for users with disabled telemetry&lt;/li&gt;&lt;li&gt;Fixed crashes around workspace conversation&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.8.2#1.8.2</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.8.0</title>\n      <link>https://windsurf.com/changelog#1.8.0</link>\n      <description>&lt;h3&gt;Teams Features&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Teams: Windsurf Reviews&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Team admins can install a Github app for code review and PR title/description edits&lt;/li&gt;&lt;li&gt;Available to Teams and Enterprise SAAS for 500 reviews/month&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Teams: Conversation Sharing&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Team users can generate a shareable URL to a Cascade conversation&lt;/li&gt;&lt;li&gt;Only fellow team members can access this URL&lt;/li&gt;&lt;li&gt;Available to Teams and Enterprise SaaS&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Teams: Knowledge&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Team admins can connect their Google account and curate relevant Google Docs&lt;/li&gt;&lt;li&gt;Team members will be able to @mention these docs, and Cascade can retrieve them&lt;/li&gt;&lt;li&gt;Available to Teams and Enterprise SaaS&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Teams Deploys&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Teams users can connect their Netlify account via Windsurf settings&lt;/li&gt;&lt;li&gt;Deploy apps through Cascade directly to your Netlify team for full control&lt;/li&gt;&lt;li&gt;Supports team-specific settings like SSO, custom domains, and more through the Netlify dashboard&lt;/li&gt;&lt;li&gt;Team admins can manage Deploy permissions and settings for their team.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Teams Analytics&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Teams users get a refreshed analytics dashboard for their team&lt;/li&gt;&lt;li&gt;Includes new Cascade analytics such as messages sent, total tool calls, model usage, and more&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Upgrade to VS Code 1.99.1&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.8.0#1.8.0</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.7.3</title>\n      <link>https://windsurf.com/changelog#1.7.3</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Reduced errors for edit tool calls for Windows&lt;/li&gt;&lt;li&gt;Fixed model selection and loading bugs on Command&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.7.3#1.7.3</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 29 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.7.2</title>\n      <link>https://windsurf.com/changelog#1.7.2</link>\n      <description>&lt;h3&gt;New App Icon &amp; Upgraded Free Tier&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;New App Icon&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Windsurf is now refreshed with a new app icon&lt;/li&gt;&lt;li&gt;Windsurf.com has been updated with the new wordmark&lt;/li&gt;&lt;li&gt;(Mac) Customizable app icons now use the new logo&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Upgraded Free Tier&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Free tier now has new, higher limits&lt;/li&gt;&lt;li&gt;Ability to use Cascade in write mode&lt;/li&gt;&lt;li&gt;Cascade prompt credits: 5 to 25 Cascade prompt credits per month&lt;/li&gt;&lt;li&gt;Unlimited Fast Tab&lt;/li&gt;&lt;li&gt;Unlimited Cascade Base&lt;/li&gt;&lt;li&gt;Access to Previews&lt;/li&gt;&lt;li&gt;1 Deploy&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Performance Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Performance and reliability improvements when deploying an app using Deploys&lt;/li&gt;&lt;li&gt;Allow users to create a new deployment even if they have an existing deployment config yaml&lt;/li&gt;&lt;li&gt;Deploy web app tool now has a check deploy status tool call&lt;/li&gt;&lt;li&gt;Stability improvements for remote extensions (WSL, SSH, Dev Containers)&lt;/li&gt;&lt;li&gt;Performance improvements when typing in a large active diff zone&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Adds GPT-4.1 to Command&lt;/li&gt;&lt;li&gt;Upgraded to VSCode base version 1.98&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.7.2#1.7.2</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.7.1</title>\n      <link>https://windsurf.com/changelog#1.7.1</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updates IDE marketplace link by mirroring Open VSX&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.7.1#1.7.1</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.7.0</title>\n      <link>https://windsurf.com/changelog#1.7.0</link>\n      <description>&lt;h3&gt;Updated &amp; Simplified Pricing&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;We're getting rid of Flow Action Credits&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We're simplifying our pricing model by removing Flow Action Credits&lt;/li&gt;&lt;li&gt;Change takes effect April 21st, 2025&lt;/li&gt;&lt;li&gt;Plans now come with prompt credits with add-on credits available for purchase&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;User Prompt Credits&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Plans now come with prompt credits, which are consumed per every message sent and not via every tool call&lt;/li&gt;&lt;li&gt;Add-on credits are available for purchase&lt;/li&gt;&lt;li&gt;Auto-top off (with max limits) can be enabled via profile&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Existing Plans&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Existing plans are migrating over to the new pricing model&lt;/li&gt;&lt;li&gt;For more information, please visit thePricing page&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.7.0#1.7.0</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.6.5</title>\n      <link>https://windsurf.com/changelog#1.6.5</link>\n      <description>&lt;h3&gt;o4-mini Available&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;New o4-mini models available and Free (Limited Time)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Windsurf now supports the o4-mini medium and o4-mini high models, which are free for all users&lt;/li&gt;&lt;li&gt;Usage in Windsurf is free for a limited time from April 16th to April 21st&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.6.5#1.6.5</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 16 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.6.4</title>\n      <link>https://windsurf.com/changelog#1.6.4</link>\n      <description>&lt;h3&gt;GPT 4.1 Available&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;New GPT 4.1 Model available and Free (Limited Time)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Windsurf now supports the new GPT 4.1 model, which is free for all users&lt;/li&gt;&lt;li&gt;Usage in Windsurf is free for a limited time from April 14th to April 21st&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.6.4#1.6.4</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.6.3</title>\n      <link>https://windsurf.com/changelog#1.6.3</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes to Commit Generation parsing on Windows&lt;/li&gt;&lt;li&gt;UI Fixes to Rules&lt;/li&gt;&lt;li&gt;Allow empty files on website deploy&lt;/li&gt;&lt;li&gt;Better Deploys error visibility&lt;/li&gt;&lt;li&gt;Ability to edit subdomain on website deploy&lt;/li&gt;&lt;li&gt;Increased stability around MCP SSE connections&lt;/li&gt;&lt;li&gt;Cascade bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.6.3#1.6.3</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.6.2</title>\n      <link>https://windsurf.com/changelog#1.6.2</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes to \"Remote - WSL\" extension&lt;/li&gt;&lt;li&gt;Minor UX fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.6.2#1.6.2</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.6.1</title>\n      <link>https://windsurf.com/changelog#1.6.1</link>\n      <description>&lt;h3&gt;Deploys&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Deploys (Beta)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Deploy your application with one prompt to Netlify under a windsurf.build domain&lt;/li&gt;&lt;li&gt;Claim your application's URL via Netlify&lt;/li&gt;&lt;li&gt;Once claimed, continue deploying to the same project as you make updates&lt;/li&gt;&lt;li&gt;To deploy a new site or change your subdomain, just ask Cascade to deploy to a new subdomain&lt;/li&gt;&lt;li&gt;Available to all users for all tiers, with more for paid plans&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Commit Message Generation (Beta)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Generate commit messages with a click in the Source Control Panel&lt;/li&gt;&lt;li&gt;Available to users on paid plans with no additional credit cost per use&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements to Memories&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New memories tab in Cascade&lt;/li&gt;&lt;li&gt;New ability to edit Cascade's generated memories, including the memory's title, content and tags&lt;/li&gt;&lt;li&gt;New ability to search Cascade's generated memories&lt;/li&gt;&lt;li&gt;User setting toggle for Auto-Generate Memories&lt;/li&gt;&lt;li&gt;When enabled, Cascade will autonomously generate memories to remember important context&lt;/li&gt;&lt;li&gt;When disabled, Cascade will only create memories when you explicitly ask in your prompt&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements to Long Conversations&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Introduced Cascade table of contents of all past user messages, which appears on conversation scroll&lt;/li&gt;&lt;li&gt;Table of contents enables the ability to revert or scroll to any past message&lt;/li&gt;&lt;li&gt;Improved performance when interacting with long conversations&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements to Windsurf Tab&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Jupyter Notebook Support for Windsurf Tab&lt;/li&gt;&lt;li&gt;Additional context signals for Windsurf Tab, including in-IDE search&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;New Mac Icons&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Two new application icons (Retro and Pixel Surf) are available for users on paid plans&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Misc&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Cascade new conversation screen now has a new toolbar for tools like MCP, Preview and Deployments.&lt;/li&gt;&lt;li&gt;Cascade now supports SSE MCP servers in the JSON ...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.6.1#1.6.1</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.5.9</title>\n      <link>https://windsurf.com/changelog#1.5.9</link>\n      <description>&lt;h3&gt;New Model&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Gemini 2.5 Pro (Beta)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Gemini 2.5 Pro is now available in beta!&lt;/li&gt;&lt;li&gt;Gemini 2.5 Pro takes 1x user prompt credits on every message and 1x flow action credits on each tool call&lt;/li&gt;&lt;li&gt;Available for users Free and Pro Plans&lt;/li&gt;&lt;li&gt;Currently experiencing high-demand and working to increase capacity&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixes to \"Remote - SSH\" extension, including custom SSH binary path setting&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.5.9#1.5.9</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.5.8</title>\n      <link>https://windsurf.com/changelog#1.5.8</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes for Cascade, which now better respects User-Defined Memories&lt;/li&gt;&lt;li&gt;Improvements for Browser Previews&lt;/li&gt;&lt;li&gt;Fixes for a few Cascade layout issues impacting icons&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.5.8#1.5.8</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 24 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.5.6</title>\n      <link>https://windsurf.com/changelog#1.5.6</link>\n      <description>&lt;h3&gt;Windsurf Tab&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;New Windsurf Tab Experience&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Rolled up Autocomplete, Supercomplete, Tab to Jump, and Tab to Import into one experience called Windsurf Tab&lt;/li&gt;&lt;li&gt;Windsurf Tab runs a larger and higher quality model, increasing contextual awareness, quality, and speed&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Context Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Completions now use more signals including recently viewed files, terminal commands and outputs, Cascade conversations&lt;/li&gt;&lt;li&gt;Optional clipboard as context for completions (default off, opt-in via Advanced Settings)&lt;/li&gt;&lt;li&gt;Expanded context length, including more signals to improve completions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Quality Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Increased precision choosing between Autocompletes (insertions) and Supercompletes (edits)&lt;/li&gt;&lt;li&gt;Higher recall and more than double the jump distances for Tab to Jump from previous versions&lt;/li&gt;&lt;li&gt;Improved indenting and spacing for next-line suggestions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Speed Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added predictive triggers, leading to consecutive completions after your previous completion or tab to jump&lt;/li&gt;&lt;li&gt;Increased server capacities and improved inference speeds&lt;/li&gt;&lt;li&gt;Improved networking, leading to reduced network latencies&lt;/li&gt;&lt;li&gt;Tab to Import shows quicker and applies more reliably&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Tab UX Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Accepted completions are highlighted green (can be disabled via Advanced Settings)&lt;/li&gt;&lt;li&gt;Tab to Jump and Tab to Import widgets have a refreshed, more visible UI&lt;/li&gt;&lt;li&gt;Tab to Jump and Tab to Import widgets are clickable&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;More reliable credit discounting for lint-fixing edits in auto-fix lint mode&lt;/li&gt;&lt;li&gt;In-IDE Terminal commands are now used as context for Cascade&lt;/li&gt;&lt;li&gt;The Tab key works to accept intellisense in the Debug Console&lt;/li&gt;&lt;li&gt;Improved Cascade diff review UX&lt;/li&gt;&lt;li&gt;Fixes to low credit warnings&lt;/li&gt;&lt;li&gt;Fixes to Autocomple...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.5.6#1.5.6</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 18 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.4.6</title>\n      <link>https://windsurf.com/changelog#1.4.6</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes crashes around MCP misconfiguration&lt;/li&gt;&lt;li&gt;Fixes around web search for Sonnet 3.7&lt;/li&gt;&lt;li&gt;Fixes for proxy settings&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.4.6#1.4.6</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 10 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.4.4</title>\n      <link>https://windsurf.com/changelog#1.4.4</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixes to Windsurf Previews where certain routes would not load.&lt;/li&gt;&lt;li&gt;Fixes to open Cascade shortcuts (cmd/ctrl+shift+L)&lt;/li&gt;&lt;li&gt;Re-added new settings configs to new settings panel (proxy settings, index size)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.4.4#1.4.4</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.4.3</title>\n      <link>https://windsurf.com/changelog#1.4.3</link>\n      <description>&lt;p&gt;&lt;strong&gt;Windsurf Previews, Auto-Linter, and new MCP servers&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Windsurf Previews (Beta)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade will now let you preview locally run websites in your IDE or in your browser.&lt;/li&gt;&lt;li&gt;You can select React and HTML element(s) within the preview to send to Cascade as context.&lt;/li&gt;&lt;li&gt;This context will be included in your Cascade conversation so you no longer need to copy-paste or send screenshots.&lt;/li&gt;&lt;li&gt;You can also send console errors to Cascade as context.&lt;/li&gt;&lt;li&gt;A Windsurf Preview can be activated by asking Cascade to start your web application or through the Website tools icon in the toolbar above conversation input.&lt;/li&gt;&lt;li&gt;A preview can be shown in the IDE or in a new browser on Chrome, Arc, and Chromium based browsers.&lt;/li&gt;&lt;li&gt;Can be turned off via Windsurf Settings.&lt;/li&gt;&lt;li&gt;Available to all plans and costs no credits.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Auto-Linter&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now auto-lints proposed code changes it has made.&lt;/li&gt;&lt;li&gt;If an output from a code edit proposes a lint error, Cascade will automatically fix it in a subsequent edit.&lt;/li&gt;&lt;li&gt;Fixes to lints are available to all plans and the Cascade edit step to fix the lints costs no credits.&lt;/li&gt;&lt;li&gt;For example, if Cascade made 4 lint errors in a step, Cascade will try to fix the 4 lint errors at no credit charge.&lt;/li&gt;&lt;li&gt;Disclaimer: The LLM decides when its purely fixing lints and when to not charge a credit.&lt;/li&gt;&lt;li&gt;Can be turned off via Windsurf Settings.&lt;/li&gt;&lt;li&gt;Available to all plans.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;New MCP Server Integration&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now setup Cascade to make tool calls to trusted MCP servers.&lt;/li&gt;&lt;li&gt;A list of common MCP servers can be found in the new Windsurf Settings Page.&lt;/li&gt;&lt;li&gt;Brand new UX to make it easier to add and configure MCP servers.&lt;/li&gt;&lt;li&gt;A user-configurable JSON is still available via the Settings page.&lt;/li&gt;&lt;li&gt;Available to Pro and Pro Ultimate plans, with support to Teams and Enterprise plans coming so...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.4.3#1.4.3</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.3.11</title>\n      <link>https://windsurf.com/changelog#1.3.11</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixes crashes due to permissions errors on Ubuntu 24.04&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.3.11#1.3.11</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.3.10</title>\n      <link>https://windsurf.com/changelog#1.3.10</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improvements for Cascade credit usage for Claude 3.7 Sonnet&lt;/li&gt;&lt;li&gt;Once updating, try running all future credits in a new conversation&lt;/li&gt;&lt;li&gt;MCP fixes for incorrectly formatted MCP tools in JSON&lt;/li&gt;&lt;li&gt;Better MCP Error Handling&lt;/li&gt;&lt;li&gt;Fixes for some App Icon issues for Mac users&lt;/li&gt;&lt;li&gt;Option for Cascade to view / edit .gitignore files&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.3.10#1.3.10</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.3.9</title>\n      <link>https://windsurf.com/changelog#1.3.9</link>\n      <description>&lt;h3&gt;Claude 3.7&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;New Cascade Models&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now has a new premium model available: Claude 3.7 SonnetTakes 1.0 user prompt credits on every message and 1.0 flow action credits on each tool callSupport for Claude 3.7 Sonnet ships with Thinking, with a 1.5x multiplier on credit cost.&lt;/li&gt;&lt;li&gt;Takes 1.0 user prompt credits on every message and 1.0 flow action credits on each tool call&lt;/li&gt;&lt;li&gt;Support for Claude 3.7 Sonnet ships with Thinking, with a 1.5x multiplier on credit cost.&lt;/li&gt;&lt;li&gt;[ROLLING] Cascade supports GPT-4.5 as a beta modelDue to costs, rate limits, and quality from early testing, we will be rolling it out to users incrementally.&lt;/li&gt;&lt;li&gt;Due to costs, rate limits, and quality from early testing, we will be rolling it out to users incrementally.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.3.9#1.3.9</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.3.4</title>\n      <link>https://windsurf.com/changelog#1.3.4</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Some fixes for Cascade write tools&lt;/li&gt;&lt;li&gt;Fixes some bugs around user message cancellation&lt;/li&gt;&lt;li&gt;Fixes around enabling Cascade Base when low on credits&lt;/li&gt;&lt;li&gt;Catches some error cases around auth entry login and surfaces error message to user&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.3.4#1.3.4</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.3.3</title>\n      <link>https://windsurf.com/changelog#1.3.3</link>\n      <description>&lt;h3&gt;Model Context Protocol, Custom App Icons, and Tab to Jump&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Model Context Protocol&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now supports Model Context Protocol (MCP)&lt;/li&gt;&lt;li&gt;You can setup your Cascade conversation to make tool calls to user-configured MCP servers&lt;/li&gt;&lt;li&gt;You can setup MCP by clicking on the hammer in the Cascade input tool bar&lt;/li&gt;&lt;li&gt;Available to all individual plans&lt;/li&gt;&lt;li&gt;Every MCP tool call costs one flow action credit, regardless of the execution result&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;New Customizable App Icons&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now change Windsurf's App Icon (Beta &amp; Mac Only)&lt;/li&gt;&lt;li&gt;Paying users can choose between Classic, Blueprint, Hand-drawn, and Valentine options&lt;/li&gt;&lt;li&gt;Updates across entire operating-system, though a restart is required for a system-wide change to take effect&lt;/li&gt;&lt;li&gt;Available to all paid user plans&lt;/li&gt;&lt;li&gt;Customization coming to Windows and Linux soon&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements to Completions&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fully releasing Tab to Jump, an enhanced editor experience that predicts the location of your next edit and navigates you there with a tab keypress&lt;/li&gt;&lt;li&gt;Background predictive completions for improved latencies&lt;/li&gt;&lt;li&gt;Performance and quality improvements for supercomplete and autocomplete&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Turbo Mode&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade has a revamped \"Turbo Mode\" that allows Cascade to auto-execute terminal commands, unless specified in deny-list&lt;/li&gt;&lt;li&gt;Available to all individual plans&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Drag and Drop Image Support&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now allows you to drag and drop images into Cascade&lt;/li&gt;&lt;li&gt;Works from system files or screenshots&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Credit Visibility&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now shows many credits an action took.&lt;/li&gt;&lt;li&gt;You can see the number of credits consumed by mouse hovering over the completed action in Cascade.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixes to some bugs in Cascade terminal commands.&lt;/li&gt;&lt;li&gt;Comm...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.3.3#1.3.3</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.2.6</title>\n      <link>https://windsurf.com/changelog#1.2.6</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed issues with partial credits when transitioning to flex credits&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.2.6#1.2.6</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.2.5</title>\n      <link>https://windsurf.com/changelog#1.2.5</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed tool calls errors, specifically around invalid tool calls by the model&lt;/li&gt;&lt;li&gt;Fixed Web Search setting unavailable message option&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;New Models&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now has a new premium model available: Gemini 2.0 FlashGemini 2.0 Flash takes 0.25 user prompt credits on every message and 0.25 flow action credits on each tool call&lt;/li&gt;&lt;li&gt;Gemini 2.0 Flash takes 0.25 user prompt credits on every message and 0.25 flow action credits on each tool call&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.2.5#1.2.5</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.2.4</title>\n      <link>https://windsurf.com/changelog#1.2.4</link>\n      <description>&lt;h3&gt;New Models: DeepSeek-R1, DeepSeek-V3 and o3-mini&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Models&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now has new premium models available: DeepSeek-R1, Deepseek-V3 and o3-miniDeepseek-V3 and Deepseek-R1 are available to users on Pro and Pro Ultimate PlansDeepseek-V3 takes 0.25 user prompt credits on every message and 0.25 flow action credits on each tool callDeepSeek-R1 takes 0.5 user prompt credits on every message and 0.5 flow action credits on each tool callo3-mini is available to all users on paid planso3-mini takes 1 user prompt credit on every message and 1 flow action credit on each tool call&lt;/li&gt;&lt;li&gt;Deepseek-V3 and Deepseek-R1 are available to users on Pro and Pro Ultimate Plans&lt;/li&gt;&lt;li&gt;Deepseek-V3 takes 0.25 user prompt credits on every message and 0.25 flow action credits on each tool call&lt;/li&gt;&lt;li&gt;DeepSeek-R1 takes 0.5 user prompt credits on every message and 0.5 flow action credits on each tool call&lt;/li&gt;&lt;li&gt;o3-mini is available to all users on paid plans&lt;/li&gt;&lt;li&gt;o3-mini takes 1 user prompt credit on every message and 1 flow action credit on each tool call&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Further fixes to input lag in long Cascade conversations&lt;/li&gt;&lt;li&gt;Fixed a bug where Cascade panel would always open on reload, even if the user disabled it in their settings&lt;/li&gt;&lt;li&gt;@docshas more options to choose from&lt;/li&gt;&lt;li&gt;Fixed Tab to Jump Quick Setting configuration&lt;/li&gt;&lt;li&gt;Added support for drag and drop images into Cascade&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.2.4#1.2.4</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.2.2</title>\n      <link>https://windsurf.com/changelog#1.2.2</link>\n      <description>&lt;h3&gt;Quick Updates&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade Web search now includes the website description and uses page rank to determine relevance&lt;/li&gt;&lt;li&gt;Improvements to Cascade Auto-Generated Memories (Beta)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed input lag in long Cascade conversations&lt;/li&gt;&lt;li&gt;Increased precision when Cascade makes code edits&lt;/li&gt;&lt;li&gt;Fixed issues around Cascade edits with .gitignore files&lt;/li&gt;&lt;li&gt;Fixed Tab to Jump Quick Setting configuration&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.2.2#1.2.2</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.2.1</title>\n      <link>https://windsurf.com/changelog#1.2.1</link>\n      <description>&lt;h3&gt;Cascade Memories, Web Search and Docs&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Web and Docs Search&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade can now search the web! There are a couple of ways to use this:Automatically: Simply ask a query that needs a live internet search and Cascade will trigger web search automatically.URL Input: Paste in a URL and Cascade will use your URL as context (works well with blog posts, docs, articles, public GitHub files, etc.).@web: If you prefer to explicitly ask Cascade to search the web, use the@webcommand.@docs: Cascade can search through some popular documentation sites, including Windsurf's own help docs!&lt;/li&gt;&lt;li&gt;Automatically: Simply ask a query that needs a live internet search and Cascade will trigger web search automatically.&lt;/li&gt;&lt;li&gt;URL Input: Paste in a URL and Cascade will use your URL as context (works well with blog posts, docs, articles, public GitHub files, etc.).&lt;/li&gt;&lt;li&gt;@web: If you prefer to explicitly ask Cascade to search the web, use the@webcommand.&lt;/li&gt;&lt;li&gt;@docs: Cascade can search through some popular documentation sites, including Windsurf's own help docs!&lt;/li&gt;&lt;li&gt;Web tools like search and URL reading can be enabled and disabled via the Windsurf Settings panel in the bottom right of your status bar.&lt;/li&gt;&lt;li&gt;A web search is 1 flow action credit and the resulting URL page reads are additional credits.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Auto-Generated Memories&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade can now automatically generate memories to retain context between conversations&lt;/li&gt;&lt;li&gt;You can prompt Cascade to create a memory at any time if you want it to remember key context&lt;/li&gt;&lt;li&gt;Memories are visible in the Memories Panel, which is accessible when Cascade makes a memory or through the command palette&lt;/li&gt;&lt;li&gt;Memories can be deleted from the Memories Panel&lt;/li&gt;&lt;li&gt;Memories do not cost any flow action credits to generate&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements to Dev Container Support (Beta)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Dev Container support for Windows is now in beta&lt;/li&gt;&lt;li&gt;UI T...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.2.1#1.2.1</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 17 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.1.3</title>\n      <link>https://windsurf.com/changelog#1.1.3</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed Cascade's Chat Mode sometimes not giving an \"Apply\" button&lt;/li&gt;&lt;li&gt;Dev Container Stability Improvements&lt;/li&gt;&lt;li&gt;Some Fixes for Cascade Flow Actions on Windows users&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.1.3#1.1.3</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 09 Jan 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.1.2</title>\n      <link>https://windsurf.com/changelog#1.1.2</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed text wrapping layout bugs in Cascade&lt;/li&gt;&lt;li&gt;Fixed a bug where \"Show Logs\" did not read the correct path&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.1.2#1.1.2</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 22 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.1.1</title>\n      <link>https://windsurf.com/changelog#1.1.1</link>\n      <description>&lt;h3&gt;Quick Updates&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Product Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added a \"Send to Cascade\" button in the Problems tab&lt;/li&gt;&lt;li&gt;Autocomplete and supercomplete show up regardless of intellisense.&lt;/li&gt;&lt;li&gt;You can now see your plan on the Status Bar, with usage information on mouse hover&lt;/li&gt;&lt;li&gt;Improvements to the onboarding flow&lt;/li&gt;&lt;li&gt;Ability to download Windsurf Logs to help with support tickets&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed a bug for Cascade unable to apply its proposed code edits in chat mode on Windows&lt;/li&gt;&lt;li&gt;Fixes autocomplete speed slowdowns affecting some users&lt;/li&gt;&lt;li&gt;Bug fixes and stability improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.1.1#1.1.1</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.1.0</title>\n      <link>https://windsurf.com/changelog#1.1.0</link>\n      <description>&lt;h3&gt;Cascade Memories&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Cascade Memories&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can configure rules for Cascade Memories to follow. For example, you can use rules to specify if you want Cascade to respond in a certain language, communicate in a specific style, or use a specific API&lt;/li&gt;&lt;li&gt;Rules can be found in the Windsurf Quick Settings panel by clicking on \"Windsurf Settings\" on the status bar&lt;/li&gt;&lt;li&gt;Global rules are rules that will be applied to Cascade in all workspaces&lt;/li&gt;&lt;li&gt;Workspace rules are rules that will be applied to Cascade in the current workspace&lt;/li&gt;&lt;li&gt;More information can be found on ourdocs.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Auto Run Commands&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade can now automatically detect to run certain terminal commands if it deems safe to do. This option is checked off by default and can be enabled in the Settings page, accessible in the top right dropdown. This only affects Cascade responses by premium models&lt;/li&gt;&lt;li&gt;Supports an allow list and deny list of commands for Cascade to run. Allow list always accept the command and deny list always requests for permission to run a command.&lt;/li&gt;&lt;li&gt;More information can be found on ourdocs.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Extensions&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;WSL support is now in beta&lt;/li&gt;&lt;li&gt;Bug fixes and improvements to devcontainer support, notably on Mac&lt;/li&gt;&lt;li&gt;Updates to Windsurf Pyright&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added Cascade undo/redo for full-file accept/reject and workspace-wide accept/reject all&lt;/li&gt;&lt;li&gt;One-time check to install Windsurf Pyright if Python found&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.1.0#1.1.0</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 11 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.0.7</title>\n      <link>https://windsurf.com/changelog#1.0.7</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;h3&gt;Misc&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes for some crashes for some users&lt;/li&gt;&lt;li&gt;Fixed bug where changing Cascade models would toggle the mode to Chat only&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.0.7#1.0.7</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 07 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.0.6</title>\n      <link>https://windsurf.com/changelog#1.0.6</link>\n      <description>&lt;h3&gt;Usage Transparency&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Usage Transparency and Pricing&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Rolling out updated usage and pricing system for Windsurf. Seepricingfor details&lt;/li&gt;&lt;li&gt;Quick settings panel now additionally shows current plan usage, with information on trial expiry, next refresh cycle, and links to upgrade&lt;/li&gt;&lt;li&gt;Introduction of new \"Legacy Chat\" mode in Cascade that activates when users run out of Flow Credits. This mode is limited compared to Cascade's normal capabilities, but does not require any Flow Credits to use&lt;/li&gt;&lt;li&gt;View Cascade usage in the settings panel. Learn more about viewing Cascade usagehere.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Image Uploads&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade image uploads are no longer limited to 1MB&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improved Language support for Python&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added feature-rich language support for Python with Windsurf Pyright. Windsurf Pyright is a Pylance alternative&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Misc&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Importing from other VS Code-based IDEs now imports snippets alongside settings&lt;/li&gt;&lt;li&gt;AI-related Keybindings can be viewed and configured in the quick settings panel&lt;/li&gt;&lt;li&gt;Added clearer error messages and debug handling for users experiencing auth issues&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.0.6#1.0.6</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 06 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.0.5</title>\n      <link>https://windsurf.com/changelog#1.0.5</link>\n      <description>&lt;h3&gt;Image Upload&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Upload Images to Cascade&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now supports uploading images on premium models&lt;/li&gt;&lt;li&gt;Ask Cascade to build or tweak UI on image upload&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;New keybindings&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Keybindings to navigate between changes in a Cascade diff (⌥/Alt + j and ⌥/Alt + k by default)&lt;/li&gt;&lt;li&gt;Keybindings to navigate between files with Cascade diffs (⌥/Alt + h and ⌥/Alt + l by default)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Misc&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Cascade panel open diff button now opens to the first change in the file&lt;/li&gt;&lt;li&gt;Added option to control whether Cascade automatically opens created / edited files (enabled by default)&lt;/li&gt;&lt;li&gt;Fixed minor autocomplete settings issues that affected some users&lt;/li&gt;&lt;li&gt;New quick settings panel UI&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.0.5#1.0.5</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 27 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.0.4</title>\n      <link>https://windsurf.com/changelog#1.0.4</link>\n      <description>&lt;h3&gt;Cascade Explain &amp; Fix Problem&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Explain &amp; fix problem&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade will attempt to fix issues in the codebase&lt;/li&gt;&lt;li&gt;Option appears on hover of the issue&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Import from Cursor&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Import settings and extensions&lt;/li&gt;&lt;li&gt;Available via Command Palette or Reset Onboarding&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;New keybindings&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Keybinding for accept all active diffs in a file (⌘/Ctrl + ⏎ by default)&lt;/li&gt;&lt;li&gt;Keybinding to reject all active diffs in a file (⌘/Ctrl + ⌫ by default)&lt;/li&gt;&lt;li&gt;⌘/ctrl + shift + L open new conversation in Cascade. It also copies selected\n  terminal / editor text to new conversation&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improved Command&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved Command experience in Jupyter notebooks&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improved diff views&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Removes diffs in deleted files by Cascade&lt;/li&gt;&lt;li&gt;Clearer cursor indication that text in a deleted text diff is selectable&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Windsurf quick settings dismisses when clicking outside the panel&lt;/li&gt;&lt;li&gt;Increased visibility of elements on onboarding for certain themes&lt;/li&gt;&lt;li&gt;Fixed minor layout issues&lt;/li&gt;&lt;li&gt;Added button to join Discord community&lt;/li&gt;&lt;li&gt;Increased stability of Cascade panel over SSH&lt;/li&gt;&lt;li&gt;Files edited / created by Cascade will automatically open in the background. If there is no active editor, then the first edited / created file will open as current active editor&lt;/li&gt;&lt;li&gt;Added a link to changelog in the title bar dropdown menu. Also added changelog nudge on title bar, which will show after user updated the version&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.0.4#1.0.4</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 21 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.0.3</title>\n      <link>https://windsurf.com/changelog#1.0.3</link>\n      <description>&lt;h3&gt;Improvements &amp; fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor fixes to Cascade&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.0.3#1.0.3</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 19 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf 1.0.2</title>\n      <link>https://windsurf.com/changelog#1.0.2</link>\n      <description>&lt;h3&gt;Windsurf Launch&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Windsurf General Release!&lt;/li&gt;&lt;li&gt;Chat with Cascade, Codeium’s full repo-aware chat with ability to make multi-file edits&lt;/li&gt;&lt;li&gt;Blazing fast Autocomplete, with fast mode&lt;/li&gt;&lt;li&gt;Supercomplete, a new modality that predicts next intent&lt;/li&gt;&lt;li&gt;Command, with a brand new UX, with an ability to do larger file diffs and modifications&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog#1.0.2#1.0.2</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 13 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_windsurf_next_changelog.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>Windsurf Next Changelog</title>\n    <link>https://windsurf.com/changelog/windsurf-next</link>\n    <description>Latest version updates from Windsurf Next</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_next_changelog.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 10:51:21 +0000</lastBuildDate>\n    <item>\n      <title>Windsurf Next 2.2.1017</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.2.1017</link>\n      <description>&lt;p&gt;&lt;strong&gt;Devin Review &amp; Quick Review&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;All Windsurf IDE users now have access toDevin ReviewandQuick Reviewwith your existing subscription.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Agent Command Center&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added list display option for the agent inbox&lt;/li&gt;&lt;li&gt;Improved sessions sidebar sorting and filtering&lt;/li&gt;&lt;li&gt;Performance improvements for loading and switching sessions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Windows updates&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We have fixed a bug preventing updates for some users on Windows. To upgrade to this version, you may need to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Wait for the update to download.&lt;/li&gt;&lt;li&gt;Once it is downloaded, open Windows Task Manager and close alldevin.exeprocesses&lt;/li&gt;&lt;li&gt;Proceed with installing the update and restarting Windsurf&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Bug fixes and improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed bugs with some MCP servers&lt;/li&gt;&lt;li&gt;Improved reliability of Devin Local agent&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.2.1017#2.2.1017</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.2.1001</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.2.1001</link>\n      <description>&lt;h3&gt;Settings Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Settings now open in a dedicated tab instead of a modal, making it easier to navigate and find what you need&lt;/li&gt;&lt;li&gt;Added a searchable sidebar to quickly locate settings across all categories&lt;/li&gt;&lt;li&gt;Consolidated the settings gear into the global activity dropdown for a cleaner titlebar&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Agent Command Center Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added button to rename agent sessions directly from the sidebar&lt;/li&gt;&lt;li&gt;Added space @-mentions — you can now reference entire spaces in Cascade conversations&lt;/li&gt;&lt;li&gt;Added automatic context sharing across sessions in a space&lt;/li&gt;&lt;li&gt;Model picker search now surfaces the best-matching variant per model family&lt;/li&gt;&lt;li&gt;Improved at-mention loading with incremental results instead of waiting for all categories&lt;/li&gt;&lt;li&gt;Tab completions now respect yourfiles.excludesettings&lt;/li&gt;&lt;li&gt;The toolbar footer now works like the Cascade footer with accept/reject buttons tied to diff zones&lt;/li&gt;&lt;li&gt;File paths and selection ranges are now included in @-mentions&lt;/li&gt;&lt;li&gt;Session PRs are now rendered in the Devin Cloud sidebar item&lt;/li&gt;&lt;li&gt;Fixed UI freeze that could occur when pasting large text into Cascade&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed scroll position not being preserved when switching between editor tabs&lt;/li&gt;&lt;li&gt;Fixed sign-in / sign-out state showing contradictory status after a failed authentication&lt;/li&gt;&lt;li&gt;Fixed titlebar items disappearing in narrow windows&lt;/li&gt;&lt;li&gt;Fixed stale session data showing in the sidebar&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.2.1001#2.2.1001</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.1.1032</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.1.1032</link>\n      <description>&lt;h3&gt;Bug Fixes &amp; Improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Bug Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed a crash that could occur when switching between Cascade conversations&lt;/li&gt;&lt;li&gt;Fixed an authentication issue that could prevent Devin Cloud sessions from starting&lt;/li&gt;&lt;li&gt;Fixed an issue where responses to agent questions were not sent correctly&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.1.1032#2.1.1032</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.1.1029</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.1.1029</link>\n      <description>&lt;h3&gt;Devin for Terminal&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updated Devin Local agent to respect existing Windsurf proxy settings&lt;/li&gt;&lt;li&gt;Added context window indicator for Devin Local agent&lt;/li&gt;&lt;li&gt;Improved revert support for Devin Local agent&lt;/li&gt;&lt;li&gt;Enabled mentioning terminal content in Devin Local sessions&lt;/li&gt;&lt;li&gt;Added new keyboard shortcuts for accepting permission requests from Devin Local agent&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for server-driven extension deny lists&lt;/li&gt;&lt;li&gt;Simplified file drag &amp; drop support in Agent Command Center&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.1.1029#2.1.1029</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.1.1026</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.1.1026</link>\n      <description>&lt;h3&gt;Devin for Terminal&lt;/h3&gt;&lt;p&gt;Devin is now availablefor Terminal. All Windsurf users can use this new CLI agent with your existing subscription.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Runs on your machine— Optimized for interactive work, with full access to your codebase, tools, and environment.&lt;/li&gt;&lt;li&gt;Hand off to the cloud— Seamless hand off to Devin in the cloud, with its own VM, testing, video recordings, autofix and more. Come back to a finished PR.&lt;/li&gt;&lt;li&gt;Multi-model— All of your favorite frontier models in one place, including Opus 4.7, GPT-5.5, and SWE-1.6.&lt;/li&gt;&lt;li&gt;Fast— Written in Rust and so performant that the binary can run on an original VT100.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Devin Agent in Windsurf&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can also enable the new Devin Local agent in Windsurf. This is the same agent harness used on the terminal and sessions can be accessed from both Windsurf and the CLI.&lt;/p&gt;&lt;p&gt;In our testing, it's up to 30% more token-efficient than the existing Cascade agent.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Additional Changes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved search subtitle layout during streaming&lt;/li&gt;&lt;li&gt;Fixed file drag-and-drop in agent window Cascade tabs&lt;/li&gt;&lt;li&gt;Fixed edit rendering issues in Devin Local on Windows&lt;/li&gt;&lt;li&gt;Fixed Go to Line/Column keybinding on Windows/Linux (Ctrl+Shift+G)&lt;/li&gt;&lt;li&gt;Stability and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.1.1026#2.1.1026</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.1.1010</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.1.1010</link>\n      <description>&lt;h3&gt;Agent Command Center&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added workspace and session filters to the spaces sidebar&lt;/li&gt;&lt;li&gt;Improved unread indicators for sessions with mark read/unread functionality&lt;/li&gt;&lt;li&gt;You can now drag sessions onto kanban cards to create Spaces&lt;/li&gt;&lt;li&gt;Added \"Put Devin to sleep\" tab context menu action&lt;/li&gt;&lt;li&gt;Improved Cmd+F find-in-chat for agent sessions&lt;/li&gt;&lt;li&gt;Hand off plans from Cascade to Devin Cloud with one click&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed Cmd+P flicker when focused on cascade in agent mode&lt;/li&gt;&lt;li&gt;Fixed Cmd+N to open untitled file when editor surface is focused in agent window&lt;/li&gt;&lt;li&gt;Fixed Ctrl+Shift+M microphone keybinding in agent window mode&lt;/li&gt;&lt;li&gt;Fixed agent sidebar highlight when focus moves to related panes&lt;/li&gt;&lt;li&gt;Skip button now skips one question at a time in Devin Cloud sessions&lt;/li&gt;&lt;li&gt;MCP registry now paginates instead of requesting limit=1000&lt;/li&gt;&lt;li&gt;Honor HTTP_PROXY for Windsurf Remote-SSH language server&lt;/li&gt;&lt;li&gt;Stop Devin for Terminal from spawning console windows on Windows&lt;/li&gt;&lt;li&gt;Prevent Cascade input re-renders causing typing lag&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.1.1010#2.1.1010</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.0.1067</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.0.1067</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed OAuth authentication issues for some MCP servers&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.0.1067#2.0.1067</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.0.1063</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.0.1063</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed a regression with OAuth integration for some MCP servers&lt;/li&gt;&lt;li&gt;Improved reliability of Devin Cloud connections in Windsurf&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.0.1063#2.0.1063</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.0.1061</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.0.1061</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.0.1061#2.0.1061</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.0.1050</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.0.1050</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements for improving Windsurf 2.0 auth experience.&lt;/li&gt;&lt;li&gt;Fixed bug with spawning Terminal sessions on Windows&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.0.1050#2.0.1050</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 2.0.1044</title>\n      <link>https://windsurf.com/changelog/windsurf-next#2.0.1044</link>\n      <description>&lt;h3&gt;Windsurf 2.0&lt;/h3&gt;&lt;p&gt;Read the full announcementhere.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Devin in Windsurf&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Devin cloud agent available directly inside Windsurf, included with every self-serve plan&lt;/li&gt;&lt;li&gt;Delegate tasks from a local session to Devin with one click; Devin runs on its own VM&lt;/li&gt;&lt;li&gt;Review Devin changes and test results without leaving the editor&lt;/li&gt;&lt;li&gt;Billing is based on your existing quota and extra usage, with up to 50 USD in extra usage added for launching your first Devin Cloud session.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Note:Access to Devin Cloud is rolling out gradually. If you don't see it yet, try logging out of the website and IDE then logging back in.&lt;/p&gt;&lt;p&gt;Devin Cloud is disabled by default for enterprise accounts. Enterprise admins should enable Devin access in their organization settings if they have already purchased Cognition Platform.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Agent Command Center&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New Kanban-style view showing all local and cloud agent sessions, organized by status&lt;/li&gt;&lt;li&gt;Group agent sessions, PRs, files, and context into task-level Spaces&lt;/li&gt;&lt;li&gt;Switch between Spaces to switch between tasks&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Additional Changes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Refined Windsurf Browser with toolbar integration and Cascade tool for reading page contents&lt;/li&gt;&lt;li&gt;Sped up initial load times for the Cascade sidebar&lt;/li&gt;&lt;li&gt;Improved .gitignore and .codeiumignore handling across the product&lt;/li&gt;&lt;li&gt;Stability improvements for remote extensions (WSL, SSH, Dev Containers)&lt;/li&gt;&lt;li&gt;Performance improvements for typing in large active diff zones&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#2.0.1044#2.0.1044</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9600.1047</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9600.1047</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed resource parameter support for OAuth connections to MCP servers&lt;/li&gt;&lt;li&gt;Enhanced MCP registry support&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9600.1047#1.9600.1047</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9600.1042</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9600.1042</link>\n      <description>&lt;p&gt;&lt;strong&gt;Adaptive Fix&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We fixed a bug with the adaptive model router which prevented switching models after the first request.&lt;/p&gt;&lt;p&gt;All users who encountered the bug have had quota reset and overage restored.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9600.1042#1.9600.1042</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9600.1040</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9600.1040</link>\n      <description>&lt;p&gt;&lt;strong&gt;Adaptive Model Visibility&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We've improved the visibility of the adaptive model in the model picker.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9600.1040#1.9600.1040</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9600.1038</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9600.1038</link>\n      <description>&lt;h3&gt;Introducing Adaptive&lt;/h3&gt;&lt;p&gt;We've made several model packaging changes, with more infohere.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Adaptive Model Router&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A newAdaptivemodel option is now available in the model picker. Adaptive intelligently selects the best model for each task, helping you make your quota last longer by avoiding overuse of premium models.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Availability: Now available to all self-serve users on Pro, Max, and Teams plans.&lt;/li&gt;&lt;li&gt;Dynamic model selection- Automatically chooses the right underlying model for your task while drawing down quota at a fixed per-token rate.&lt;/li&gt;&lt;li&gt;Extra usage promo- Beyond your quota, extra usage is offered at 0.50 USD per 1M input tokens, 2.00 USD per 1M output tokens, and 0.10 USD per 1M cache read tokens for the next 2 weeks.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9600.1038#1.9600.1038</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9600.1032</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9600.1032</link>\n      <description>&lt;h3&gt;Token Tracking in Response Card&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added token usage tracking to the response card. You can now see a breakdown of input tokens, output tokens, and cached input tokens for each response directly in the chat panel.&lt;/li&gt;&lt;li&gt;Enhanced the context window indicator to show when the prompt cache expires, giving you better visibility into cache utilization.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed keyboard input issues with the built-in terminal on Windows&lt;/li&gt;&lt;li&gt;Improved cost sorting for token-based plans in the model picker&lt;/li&gt;&lt;li&gt;Clarified which models are available only on pro plans&lt;/li&gt;&lt;li&gt;Repaired devcontainer support on RHEL 8&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9600.1032#1.9600.1032</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9600.1002</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9600.1002</link>\n      <description>&lt;h3&gt;Model &amp; Cost Visibility&lt;/h3&gt;&lt;p&gt;Replaced dollar signs with granular cost metrics for quota-based billing plans.&lt;/p&gt;&lt;h3&gt;Additional fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved performance for large repos&lt;/li&gt;&lt;li&gt;Upgraded to VSCode base version 1.110&lt;/li&gt;&lt;li&gt;Fixed issues with diff zones reappearing after acceptance&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9600.1002#1.9600.1002</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9577.1043</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9577.1043</link>\n      <description>&lt;h3&gt;Quota Billing&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for the new quota billing system&lt;/li&gt;&lt;li&gt;Daily and Weekly quota usage is now displayed directly in the IDE&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix build for Mac x64&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9577.1043#1.9577.1043</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9577.1042</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9577.1042</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9577.1042#1.9577.1042</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9577.1027</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9577.1027</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix for Apple M5&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9577.1027#1.9577.1027</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9577.1024</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9577.1024</link>\n      <description>&lt;p&gt;&lt;strong&gt;Cascade&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fix dangling Diff Zones related to Jupyter Notebooks&lt;/li&gt;&lt;li&gt;Improve Jupyter Notebook performance when running on WSL&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9577.1024#1.9577.1024</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9577.1020</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9577.1020</link>\n      <description>&lt;p&gt;&lt;strong&gt;Cascade&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improve Cascade UI rendering performance&lt;/li&gt;&lt;li&gt;Fix Cascade agent crashes under certain conditions&lt;/li&gt;&lt;li&gt;Improve notifications for model price changes&lt;/li&gt;&lt;li&gt;Add support for loading SKILL.md files from the.windsurf/skills/directory&lt;/li&gt;&lt;li&gt;FixAGENTS.mdbeing ignored by Cascade in specific cases&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Add support forsystem-level Skill definitionsvia MDM-managed configs for Enterprise&lt;/li&gt;&lt;li&gt;Improve context management for MCP servers&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Stability &amp; Performance&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improve autocomplete error handling and performance&lt;/li&gt;&lt;li&gt;Improve SSH &amp; Remote performance&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9577.1020#1.9577.1020</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9566.1015</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9566.1015</link>\n      <description>&lt;h3&gt;Phoenix Alpha&lt;/h3&gt;&lt;p&gt;Phoenix Alpha is now available in Next.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9566.1015#1.9566.1015</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9566.1011</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9566.1011</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix extension installation version selection&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9566.1011#1.9566.1011</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9566.1009</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9566.1009</link>\n      <description>&lt;p&gt;&lt;strong&gt;New Model Picker&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We introduced a new model picker that groups models by family and adds a hovercard with toggles for specific variants, like reasoning effort and speed. Separately, we also added the ability to pin models.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cascade Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;AddedPOST_CASCADE_RESPONSE_WITH_TRANSCRIPTcascade hook&lt;/li&gt;&lt;li&gt;Added Cascade hooks configuration visibility on team settings page&lt;/li&gt;&lt;li&gt;Reduced the priority of Git commits in @ mention search&lt;/li&gt;&lt;li&gt;Added awindsurf.cascade.readClaudeCodeConfigflag to disable reading Claude configuration&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added an MCP Refresh button&lt;/li&gt;&lt;li&gt;Auto-trigger OAuth login when adding HTTP/SSE MCP servers&lt;/li&gt;&lt;li&gt;Fix bugs with parsing on Windows and startup&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Platform Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Merged changes from VS Code 1.108&lt;/li&gt;&lt;li&gt;Improved startup reliability for Cascade&lt;/li&gt;&lt;li&gt;Fixed Windows update initialization path that could block updates&lt;/li&gt;&lt;li&gt;Released binaries for Linux ARM64&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9566.1009#1.9566.1009</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9552.1025</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9552.1025</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix compatibility with GitHub Pull Requests extension&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9552.1025#1.9552.1025</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9552.1024</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9552.1024</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix for self-updating on Windows&lt;/li&gt;&lt;li&gt;Fix for macOS UI flickering&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9552.1024#1.9552.1024</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9552.1021</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9552.1021</link>\n      <description>&lt;h3&gt;Cascade Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Plan Mode now supports automatic switching back to Code Mode when you start implementing a plan&lt;/li&gt;&lt;li&gt;Added support for reading skills from the.agents/skillsdirectory&lt;/li&gt;&lt;li&gt;Tracking triggered rules in thepost_cascade_responsehook via a newrules_appliedfield&lt;/li&gt;&lt;li&gt;Diff zones will now automatically close on commit&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Linux ARM64 Support&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Full Linux ARM64 client support with deb and rpm packaging&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Enterprise &amp; Team Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Cloud configuration for Cascade Hooks is now available for enterprise teams via the cloud dashboard&lt;/li&gt;&lt;li&gt;Support for Devin service key authentication&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes forpost_write_codehooks to handle all code editing tool formats&lt;/li&gt;&lt;li&gt;Fixes and improvements for MCP server resource loading&lt;/li&gt;&lt;li&gt;Fixed osascript privilege escalation being incorrectly triggered on Linux for shell command installation&lt;/li&gt;&lt;li&gt;Addressed multiple memory leaks&lt;/li&gt;&lt;li&gt;Improved RTL language rendering in todo lists&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9552.1021#1.9552.1021</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9544.1029</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9544.1029</link>\n      <description>&lt;h3&gt;Claude Opus 4.6 (fast mode)&lt;/h3&gt;&lt;p&gt;Claude Opus 4.6 (fast mode) is now available in Windsurf in research preview with limited-time promotional pricing for self serve users until Feb 16:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;No thinking:10x credits&lt;/li&gt;&lt;li&gt;With thinking:12x credits&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Opus 4.6 (fast mode) has the same intelligence as Opus 4.6 but with up to 2.5x higher output speeds.&lt;/p&gt;&lt;h3&gt;Claude Opus 4.6&lt;/h3&gt;&lt;p&gt;Claude Opus 4.6 is now available in Windsurf with limited-time promotional pricing for self serve users:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;No thinking:2x credits&lt;/li&gt;&lt;li&gt;With thinking:3x credits&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Opus 4.6 is available in Arena Mode's Frontier Arena and Hybrid Arena. Try it head-to-head against other frontier models to see how it performs on your real-world tasks.&lt;/p&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;li&gt;Released Tab v2 model selector to all users&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9544.1029#1.9544.1029</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9544.1028</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9544.1028</link>\n      <description>&lt;h3&gt;New Models&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;GPT-5.3-Codex-Spark is now available in Arena Mode's Fast Arena and Hybrid Arena battle groups&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Claude Opus 4.6 (fast mode)&lt;/h3&gt;&lt;p&gt;Claude Opus 4.6 (fast mode) is now available in Windsurf in research preview with limited-time promotional pricing for self serve users until Feb 16:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;No thinking:10x credits&lt;/li&gt;&lt;li&gt;With thinking:12x credits&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Opus 4.6 (fast mode) has the same intelligence as Opus 4.6 but with up to 2.5x higher output speeds.&lt;/p&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix issues with Arena Mode Battle Groups&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9544.1028#1.9544.1028</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9544.1026</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9544.1026</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improve UI styling for announcement popups and notifications&lt;/li&gt;&lt;li&gt;Close model picker when selecting a battle group&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9544.1026#1.9544.1026</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9544.1024</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9544.1024</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9544.1024#1.9544.1024</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9544.1018</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9544.1018</link>\n      <description>&lt;h3&gt;Wave 14: Arena Mode&lt;/h3&gt;&lt;p&gt;Arena Mode brings side-by-side model comparison directly into your IDE, plus Plan Mode for smarter task planning.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Arena Mode&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Run two Cascade agents side-by-side with hidden model identities and vote on which performs better. Arena Mode lets you discover which models actually work best foryourworkflow, codebase, and tasks—not just what benchmarks or influencers say.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Battle Groups: Choose specific models to compare or let Windsurf randomly select from curated groups like \"fast models\" vs \"smart models\"&lt;/li&gt;&lt;li&gt;Personal &amp; Global Leaderboards: Your votes contribute to both a personal leaderboard (your preferences) and a global one (across all Windsurf users)&lt;/li&gt;&lt;li&gt;Sync or Branch: Send followup prompts to both agents simultaneously, or branch and explore different paths individually&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To get started, select the newArenatab in the model picker. All battle groups are free for the first week for paid users.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Plan Mode&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Plan Mode is a new Cascade mode alongside Code and Ask. Use it to create detailed implementation plans before diving into code.&lt;/p&gt;&lt;p&gt;Pro tip: Typemegaplanin the Cascade input box to trigger an advanced form that asks clarifying questions to create a more aligned, comprehensive plan.&lt;/p&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Admins can now set a default model that applies to all team members when they first open Windsurf&lt;/li&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9544.1018#1.9544.1018</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.115</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.115</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix bug with permanently disconnected cascades&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.115#1.13.115</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.114</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.114</link>\n      <description>&lt;h3&gt;Bug Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes commit message generation and codemaps suggestions&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.114#1.13.114</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.113</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.113</link>\n      <description>&lt;h3&gt;Enterprise Features&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Enterprise admins can now specify organization-wide allow and deny lists for command auto-execution.Learn more&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Bug fixes and performance improvements for diff zones&lt;/li&gt;&lt;li&gt;Improved overall stability and reliability&lt;/li&gt;&lt;li&gt;Addedpost_setup_worktreehook for initializing worktrees in Cascade&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.113#1.13.113</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.110</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.110</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improvements to GPT-5.2-Codex harness&lt;/li&gt;&lt;li&gt;Admins can now manage Windsurf restrictions via Windows Group Policy&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.110#1.13.110</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.109</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.109</link>\n      <description>&lt;h3&gt;GPT-5.2-Codex&lt;/h3&gt;&lt;p&gt;Adds support for GPT-5.2-Codex with four reasoning efforts (low, medium, high, and xhigh). GPT-5.2-Codex is OpenAI's latest model designed for agentic coding. It excels at working in large codebases over long sessions. For most tasks, we recommend using the medium reasoning effort.&lt;/p&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;li&gt;Improved stability and reliability&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.109#1.13.109</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.108</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.108</link>\n      <description>&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;li&gt;Improved stability and reliability&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.108#1.13.108</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.107</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.107</link>\n      <description>&lt;h3&gt;New Features and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Plan Mode Update&lt;/li&gt;&lt;li&gt;Support for Skills&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.107#1.13.107</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.106</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.106</link>\n      <description>&lt;h3&gt;Gemini 3 Flash&lt;/h3&gt;&lt;p&gt;Gemini 3 Flash is now available for all users. This model combines Gemini 3 Pro-grade reasoning with Flash-level speed and efficiency, making it ideal for agentic workflows and coding tasks.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Blazing Fast Responses: Experience near-instant feedback with 3x faster performance than previous generations, perfect for iterative development compared to Gemini 3 Pro&lt;/li&gt;&lt;li&gt;Superior Coding Intelligence: Outperforms even Pro-tier models on key coding benchmarks (78% on SWE-bench Verified), providing more accurate code generation and debugging&lt;/li&gt;&lt;li&gt;Deep Multimodal Understanding: Easily process complex video, data extraction, and visual Q&amp;A tasks with frontier-level reasoning&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various bug fixes and performance improvements&lt;/li&gt;&lt;li&gt;Tab fixes and improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.106#1.13.106</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.13.104</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.13.104</link>\n      <description>&lt;h3&gt;Wave 13: Merry Shipmas&lt;/h3&gt;&lt;p&gt;Wave 13 brings first-class support for parallel, multi-agent sessions in Windsurf, along with Git worktrees, side-by-side Cascade panes, and a dedicated terminal profile for more reliable agent execution.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SWE-1.5 Free&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Our near-frontier model, SWE-1.5, is now available for free to all users for the next 3 months. SWE-1.5 Free has the full intelligence of SWE-1.5, with the same coding performance on SWE-Bench-Pro, but delivered at standard throughput speeds. The original variant of SWE-1.5 hosted on Cerebras will continue to be available for paid users. SWE-1.5 Free will replace SWE-1 as the default model in Windsurf starting today.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Git Worktree Support&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Windsurf now supports Git worktrees, letting you spawn multiple Cascade sessions in the same repository without conflicts. Git worktrees check out different branches into separate directories while sharing the same Git history.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Multi-Cascade Panes &amp; Tabs&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can already run multiple Cascade sessions in Windsurf at the same time. Now, you can view and interact with them in separate panes and tabs within the same window. This lets you monitor progress and compare outputs of sessions side-by-side, or even turn Windsurf into a big Cascade dashboard.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cascade Dedicated Terminal (Beta)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Windsurf introduces a new approach for letting agents execute terminal commands. Instead of your default shell, Cascade will now run commands in a dedicated zsh shell specifically configured for reliability. The Cascade Dedicated Terminal can use the environment variables you set in your .zshrc configuration and is interactive, which means you can answer any prompts from shell scripts without having to break your flow. This should improve the reliability and speed of shell commands, especially for users with complicated prompts (e.g., powerlevel10k).&lt;/p&gt;&lt;p&gt;In this version, the Cascade Dedicated Te...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.13.104#1.13.104</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 24 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.167</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.167</link>\n      <description>&lt;h3&gt;Bug Fixes and Performance Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix race condition in the new dedicated terminal implementation&lt;/li&gt;&lt;li&gt;MCP fixes&lt;/li&gt;&lt;li&gt;Added setting to control scroll-to-next-hunk behavior in diff zones (default off)&lt;/li&gt;&lt;li&gt;Improve markdown completion&lt;/li&gt;&lt;li&gt;Preserve terminal colors and styling in the Cascade terminal output pane&lt;/li&gt;&lt;li&gt;Diff zone fixes and improvements&lt;/li&gt;&lt;li&gt;Support turbo mode for web fetch requests made by Cascade's Web Fetch tool&lt;/li&gt;&lt;li&gt;Support force killing commands in the new dedicated terminal&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.167#1.12.167</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 23 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.166</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.166</link>\n      <description>&lt;h3&gt;New Features&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Windsurf Dedicated Terminal&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Introduces a new terminal for Cascade that improves command execution reliability (OS X only)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Multi Cascade Panels and Tabs&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Adds support for multiple Cascade panels and tabs, allowing users to work with multiple Cascade sessions simultaneously&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Hooks on Cascade Response&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Allows users to configure Cascade Hooks on model response, specifically for logging all Cascade responses for auditing purposes&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;System-level Rules + Workflows&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Allows enterprises to place rules and workflows files on users' machines with MDM policies&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix opening old Cascade diffs&lt;/li&gt;&lt;li&gt;Fix various stability issues with the new terminal implementation&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.166#1.12.166</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.165</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.165</link>\n      <description>&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix opening old Cascade diffs&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.165#1.12.165</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.164</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.164</link>\n      <description>&lt;h3&gt;Features&lt;/h3&gt;&lt;p&gt;Added a new \"Promo\" label to LLM models that are newly available or have special discount pricing&lt;/p&gt;&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Enhances code block file path display to hide line numbers for whole files&lt;/li&gt;&lt;li&gt;Improves citation and language parsing in code blocks with a more robust regex pattern&lt;/li&gt;&lt;li&gt;Updates the UI for code block title bars to properly handle long paths with truncation&lt;/li&gt;&lt;li&gt;Fixes fallback diff handling for nonexistent files in code actions&lt;/li&gt;&lt;li&gt;Improves the auto-run command menu interface and its display logic&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.164#1.12.164</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.163</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.163</link>\n      <description>&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Agents &amp; Tool Execution&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed Command-I functionality&lt;/li&gt;&lt;li&gt;Fixed Ctrl+C during tool execution not working properly&lt;/li&gt;&lt;li&gt;Fixed Go (fallback) processes not being killed properly&lt;/li&gt;&lt;li&gt;Fixed handling of parallel tool call errors&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;UI &amp; Rendering&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed incorrect indentation from code blocks in terminal rendering&lt;/li&gt;&lt;li&gt;Fixed nested lists not rendering on new line in terminal markdown&lt;/li&gt;&lt;li&gt;Fixed content spacing issues&lt;/li&gt;&lt;li&gt;Fixed streaming flashes&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Messaging &amp; Platform&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed rate limit error message to say \"no credits were used\" instead of \"credits have been refunded\"&lt;/li&gt;&lt;li&gt;Fixed continuously rechecking for updates on macOS&lt;/li&gt;&lt;li&gt;Added a user-facing message when API providers are exhausted&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Tooling &amp; Onboarding&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved MCP tool call visibility (show tool name, args, etc)&lt;/li&gt;&lt;li&gt;Added loading indicators when thinking or during long running operations&lt;/li&gt;&lt;li&gt;Allowed clicking items in the Windsurf onboarding pane&lt;/li&gt;&lt;li&gt;Respected gitignore patterns in the workspace directory tree&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.163#1.12.163</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.162</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.162</link>\n      <description>&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Reduce occurrence of \"prompt is too long\" errors&lt;/li&gt;&lt;li&gt;Request all supported scopes if no scopes are provided in MCP OAuth config&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.162#1.12.162</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.161</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.161</link>\n      <description>&lt;h3&gt;GPT-5.2&lt;/h3&gt;&lt;p&gt;GPT-5.2 is now available in Windsurf. This model will be available for 0x credits in Windsurf (to paid users) for a limited time.&lt;/p&gt;&lt;p&gt;GPT-5.2 represents the biggest leap for GPT models in agentic coding since GPT-5 and is a SOTA coding model in its price range. The version bump undersells the jump in intelligence. We`re excited to make it the default across Windsurf and several core Devin workloads. - Jeff Wang, CEO of Windsurf&lt;/p&gt;&lt;p&gt;Download thelatest version on Windsurfto try it out!&lt;/p&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;General Windsurf stability and performance improvements&lt;/li&gt;&lt;li&gt;General Tab (Supercomplete) improvements and stability&lt;/li&gt;&lt;li&gt;Fixes issues with Cascade running commands that could not be cancelled during certain long-running processes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.161#1.12.161</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 11 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.160</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.160</link>\n      <description>&lt;h3&gt;Diff Zones&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes issues with diff zones not rendering correctly or jumping to the end of a file when editing&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Lifeguard&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes various Lifeguard bugs and stability issues&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Tab (Supercomplete)&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improves reliability of Tab autocomplete&lt;/li&gt;&lt;li&gt;Makes Tab more responsive and faster in the appropiate circumstances&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;MCP Servers&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support forMCP prompts&lt;/li&gt;&lt;li&gt;Added toggles to enable/disable MCPs in the Cascade header&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;General stability and performance improvements&lt;/li&gt;&lt;li&gt;Fixes issues with login timing out too quickly during onboarding&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.160#1.12.160</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.158</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.158</link>\n      <description>&lt;h3&gt;Features &amp; Tools&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Cascade Hooks on User Prompts&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Users can now configure Cascade Hooks on user prompts for logging all user prompts and blocking policy-violating prompts.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Worktree / Arena Mode&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for Worktree and Arena Mode.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP Servers&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for GitLab remote MCP.&lt;/li&gt;&lt;li&gt;Added OAuth support for GitHub remote MCP.&lt;/li&gt;&lt;li&gt;Fixed an issue where every MCP would reauth on opening Windsurf.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;General Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;General performance and stability improvements.&lt;/li&gt;&lt;li&gt;Improvements for Tab (Supercomplete) autocomplete reliability.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.158#1.12.158</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.157</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.157</link>\n      <description>&lt;h3&gt;GPT-5.1-Codex Max&lt;/h3&gt;&lt;p&gt;Introducing GPT-5.1-Codex Max in three reasoning tiers (Low, Medium, High). Low variant available at no cost to paid users for a limited time.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.157#1.12.157</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.153</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.153</link>\n      <description>&lt;h3&gt;Claude Opus 4.5&lt;/h3&gt;&lt;p&gt;You can now use Claude Opus 4.5 in Windsurf!&lt;/p&gt;&lt;p&gt;Opus 4.5 is the most capable model in Windsurf yet and is now available at Sonnet pricing for a limited time (2x credits compared to 20x for Opus 4.1).&lt;/p&gt;&lt;p&gt;This model is available to all paid Windsurf subscribers.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.153#1.12.153</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.152</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.152</link>\n      <description>&lt;h3&gt;AI Models&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Gemini 3 Pro&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now use Gemini 3 Pro (Low and High) in Windsurf! This is a preview release that is available to paid Trial, Pro, and Teams subscribers and will soon be extended to Enterprise users as well.&lt;/li&gt;&lt;li&gt;Resolved an issue where Gemini 3 Pro caused internal Cascade errors for some users.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;SWE-1.5&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed notebook tool functionality for SWE-1.5.&lt;/li&gt;&lt;li&gt;Addressed an issue where SWE-1.5 would unexpectedly stop or return \"No response requested\".&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Sonnet 4.5&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for Sonnet 4.5 with a 1M token context window.&lt;/li&gt;&lt;li&gt;Reduced the frequency of unnecessary Markdown file creation by Sonnet 4.5.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;GPT-5.1 Codex and Codex Mini&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for GPT-5.1 Codex and Codex Mini with low reasoning effort configuration.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Features &amp; Tools&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Codemaps&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved reliability of saving and retrieving Codemaps.&lt;/li&gt;&lt;li&gt;Fixed Codemap sorting and increased the limit of visible open Codemaps.&lt;/li&gt;&lt;li&gt;Resolved issues with mentioning Codemaps in Cascade.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP Servers&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed scope handling and OAuth authentication flows for various MCP servers.&lt;/li&gt;&lt;li&gt;Resolved issues preventing installation of new MCP servers.&lt;/li&gt;&lt;li&gt;Added support for handling embedded resource content in tool call responses.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Tab Completion&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved latency, responsiveness, and accuracy of autocomplete.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Note: The Autocomplete setting has been removed as it was a legacy option that had no effect. Windsurf's Tab autocomplete feature is powered by Supercomplete.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Vibe and Replace&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed reliability issues with Vibe and Replace.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fast Context&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added support for.codeiumignoreand.gitignorefor Fast Context.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;General Improvements&lt;/h3&gt;&lt;ul&gt;&lt;l...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.152#1.12.152</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.150</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.150</link>\n      <description>&lt;h3&gt;Worktree Preview&lt;/h3&gt;&lt;p&gt;You can now use Windsurf's AI agent with worktrees to explore and modify code across multiple branches simultaneously.&lt;/p&gt;&lt;h3&gt;MCP Server Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes issues with scopes and OAuth authentication flows for multiple MCP servers&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Tab Completion&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved latency, responsiveness, and accuracy of autocomplete.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Context Window Indicator Beta&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Context window indicator now shows the current context window used by the Cascade AI agent.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.150#1.12.150</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.149</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.149</link>\n      <description>&lt;h3&gt;GPT-5.1 Priority Mode&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added priority processing support for GPT-5.1 models, providing guaranteed low-latency responses for faster (~50 tokens/sec), more reliable AI assistance.&lt;/li&gt;&lt;li&gt;Priority processing costs 2x the standard rate, which will be reflected in the Windsurf credit system.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed tool call calling issues for GPT-5.1-Codex and GPT-5.1-Codex Mini models&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.149#1.12.149</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.148</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.148</link>\n      <description>&lt;h3&gt;GPT-5.1 and GPT-5.1-Codex&lt;/h3&gt;&lt;p&gt;GPT-5.1 and GPT-5.1-Codex are now available in Windsurf. GPT-5.1 will become the default model in Windsurf for one week, and paid users get free access during this period.&lt;/p&gt;&lt;p&gt;GPT-5.1 and GPT-5.1-Codex deliver a solid upgrade from GPT-5 for agentic coding workflows. They're noticeably better at understanding what you're asking for and working with you to get it done. The new variable thinking feature dynamically adjusts reasoning depth—providing quick responses for simple tasks and more thoughtful analysis when complexity demands it.&lt;/p&gt;&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Removed Features&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Knowledge Base: Removed the Knowledge Base feature&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Bug Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;PowerShell + Turbo Mode: Fixed an issue where PowerShell was not running commands when Turbo Mode is enabled&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Shortcuts&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Attach current file to Cascade: New shortcutOption/Alt+Cmd+Lwhen in an editor to attach the current file to Cascade&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.148#1.12.148</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 13 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.144</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.144</link>\n      <description>&lt;h3&gt;Features&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;MCP Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Loading state indicators: Show loading state per installed MCP to improve visibility during initialization&lt;/li&gt;&lt;li&gt;Refresh only edited MCPs: Whenmcp_config.jsonis modified, only the affected MCP server instance is initialized/refreshed - no other instances are refreshed&lt;/li&gt;&lt;li&gt;Increased initialization timeout: MCP initialization timeout increased to 60s&lt;/li&gt;&lt;li&gt;Refresh button for error states: Show refresh button for MCPs in error state to allow manual recovery&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Hooks&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Enterprise feature: New Cascade Hooks feature available&lt;/li&gt;&lt;li&gt;Public documentation:Draft documentationwith details and descriptions of hooks available in Windsurf Docs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Bug Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Vim extension typing lag: Fixed bug causing typing lag when Vim extension is enabled&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;SWE 1.5 Image Support&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Image understanding: Images are now supported in SWE 1.5, enabling visual content analysis&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.144#1.12.144</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.143</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.143</link>\n      <description>&lt;h3&gt;Features&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Improvements to SWE-1.5 + Claude Sonnet 4.5 Mode&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Enhanced the SWE-1.5 + Claude Sonnet 4.5 mode with improved performance and reliability for better coding assistance.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.143#1.12.143</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 05 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.142</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.142</link>\n      <description>&lt;h3&gt;Features&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Expanded Codemaps&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Codemaps now include powerful new capabilities:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Chat with map- Interact directly with your codebase visualizations&lt;/li&gt;&lt;li&gt;Mermaid diagrams- Generate visual diagrams within maps for better code understanding&lt;/li&gt;&lt;li&gt;Cascade suggestions- Get AI-powered suggestions directly in your maps&lt;/li&gt;&lt;li&gt;Map option in chat/edit nudges- Easily create maps from chat and edit interactions&lt;/li&gt;&lt;li&gt;Smart mode option- Enhanced intelligent assistance when working with maps&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Summarization Fix&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Improved Cascade summarization to better handle longer conversations. Previously, summaries could be too aggressive and drop important context. Now maintains better continuity across long sessions with multiple file changes and user messages.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Sonnet 4.5 Support for SWE 1.5 Planning&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You can now enable beta Sonnet 4.5 planning when using SWE 1.5. To enable, select SWE 1.5 first, then select the Sonnet 4.5 addon.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MCP Enhancements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Path component handling- Improved support for MCP URLs with path components (e.g., Smithery MCPs)&lt;/li&gt;&lt;li&gt;OAuth flow improvements- Better OAuth flow for streamable HTTP MCPs (e.g., Canva, ServiceNow's internal MCP)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Performance Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Sticky scroll lag fixes- Resolved lag spikes when using sticky scroll with Vim bindings&lt;/li&gt;&lt;li&gt;General slowness fixes- Addressed performance issues caused by VSCode OSS update&lt;/li&gt;&lt;li&gt;Terminal rendering optimization- Fixed rendering loop that caused 500ms+ delays on first terminal open&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Terminal Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;PowerShell improvements- Fixed Windows terminal integration issues where commands would appear stuck&lt;/li&gt;&lt;li&gt;Shell theme compatibility- Resolved edge cases with custom shell themes (zsh, fish, powerlevel10k, etc.) that could cause Windsurf to break or show...</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.142#1.12.142</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.140</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.140</link>\n      <description>&lt;h3&gt;Features&lt;/h3&gt;&lt;p&gt;New beta plan mode (type /plan in the Cascade chat input to activate it).&lt;/p&gt;&lt;p&gt;Expanded Codemaps:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Chat with map&lt;/li&gt;&lt;li&gt;Mermaid diagrams in maps&lt;/li&gt;&lt;li&gt;Cascade suggestions for maps&lt;/li&gt;&lt;li&gt;Chat / edit nudge includes “map option”&lt;/li&gt;&lt;li&gt;Smart mode option&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bug fixes and improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes for lag spikes when using sticky scroll&lt;/li&gt;&lt;li&gt;Fixes for general slowness caused by VSCode OSS update&lt;/li&gt;&lt;li&gt;Powershell fixes for Windows terminal integration / commands appearing stuck.&lt;/li&gt;&lt;li&gt;Fixes for certain edge cases around shells with custom themes.&lt;/li&gt;&lt;li&gt;Fixed an issue where the editor would freeze when opening the terminal&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.140#1.12.140</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.138</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.138</link>\n      <description>&lt;h3&gt;Falcon Alpha&lt;/h3&gt;&lt;p&gt;You can now try a new stealth model in Windsurf: Falcon Alpha. Falcon Alpha is a powerful agentic model designed for speed. We're excited to hear what you build with it!&lt;/p&gt;&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various performance improvements and bug fixes.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.138#1.12.138</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.136</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.136</link>\n      <description>&lt;h3&gt;Patch Fixes and Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Support and fixes for AGENTS.md&lt;/li&gt;&lt;li&gt;Improvements and bug fixes for Codemaps.&lt;/li&gt;&lt;li&gt;Improvements to Fast Context. Enterprises can opt in using the Windsurf Team Settings. Users can toggle Fast Context automatically using \"CMD/Ctrl + Enter\" on the first message in a chat.&lt;/li&gt;&lt;li&gt;New auto-linting behavior that speeds up Cascade.&lt;/li&gt;&lt;li&gt;Fix for MCP Marketplace not respecting team whitelist options.&lt;/li&gt;&lt;li&gt;Fixes for Jupyter Notebook tool.&lt;/li&gt;&lt;li&gt;Fixes for Memories, Rules, and Workflows.&lt;/li&gt;&lt;li&gt;General bug fixes and improvements.&lt;/li&gt;&lt;li&gt;Performance optimizations and stability enhancements.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Dependencies&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updated Code OSS to version 1.105.0 (Electron: 37.6.0, Chromium: 138.0.7204.251)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.136#1.12.136</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.133</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.133</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.133#1.12.133</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.132</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.132</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.132#1.12.132</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.131</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.131</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.131#1.12.131</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.130</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.130</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Early preview of Windsurf's new Tab model.&lt;/li&gt;&lt;li&gt;Bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.130#1.12.130</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.129</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.129</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.129#1.12.129</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.127</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.127</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes issues with the experimental Cascade tool for finding context not working properly.&lt;/li&gt;&lt;li&gt;Improvements and bug fixes for the beta Codemaps feature.&lt;/li&gt;&lt;li&gt;Improvements to the Lifeguard (Beta) feature.&lt;/li&gt;&lt;li&gt;Fixes issue with custom MCP servers not being displayed correctly in the new MCP panel.&lt;/li&gt;&lt;li&gt;Fixes issue where some bash commands would get stuck.&lt;/li&gt;&lt;li&gt;Fixes issue where certain models couldn't create or edit Jupyter notebooks.&lt;/li&gt;&lt;li&gt;General bug fixes and improvements.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.127#1.12.127</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.126</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.126</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various improvements to the experimental Cascade tool which searches and finds relevant files.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.126#1.12.126</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 11 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.125</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.125</link>\n      <description>&lt;h3&gt;Experimental Cascade Tool&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Experimental Cascade tool to quickly search for files and find relevant context.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.125#1.12.125</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.124</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.124</link>\n      <description>&lt;h3&gt;Lifeguard (Beta) Updates&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Try out Lifeguard by clicking the Lifeguard icon at the top right corner of your editor.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.124#1.12.124</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.121</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.121</link>\n      <description>&lt;h3&gt;Lifeguard&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Beta preview of lifeguard, a tool to help you find and resolve bugs inside your IDE.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.121#1.12.121</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.119</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.119</link>\n      <description>&lt;h3&gt;Codemaps&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Beta preview of codemaps: open the codemaps pane to try it out!&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.119#1.12.119</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 30 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.118</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.118</link>\n      <description>&lt;h3&gt;Claude Sonnet 4.5&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Claude Sonnet 4.5 is now available&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.118#1.12.118</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.117</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.117</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix using MCP tools with certain models.&lt;/li&gt;&lt;li&gt;Fixes to terminal issues on Windows.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.117#1.12.117</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.115</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.115</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix to Cascade slowness issues&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.115#1.12.115</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.114</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.114</link>\n      <description>&lt;h3&gt;GPT-5-Codex is now in Windsurf!&lt;/h3&gt;&lt;p&gt;GPT-5-Codex is now available for free (0x credits) for a limited time for paid users!&lt;/p&gt;&lt;p&gt;Free users can use GPT-5-Codex as well for 0.5x credits.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.114#1.12.114</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.113</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.113</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.113#1.12.113</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 18 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.112</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.112</link>\n      <description>&lt;h3&gt;Cascade Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Queued messages in Cascade&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Various improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.112#1.12.112</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 13 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.110</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.110</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.110#1.12.110</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.109</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.109</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.109#1.12.109</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 02 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.108</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.108</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.108#1.12.108</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 28 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.105</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.105</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Minor improvements and bug fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.105#1.12.105</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.12.103</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.12.103</link>\n      <description>&lt;h3&gt;Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Early access to Wave 12 features.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.12.103#1.12.103</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.11.105</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.11.105</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Performance fixes, especially relating to long chats&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.11.105#1.11.105</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.11.104</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.11.104</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Miscellaneous fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.11.104#1.11.104</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.11.103</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.11.103</link>\n      <description>&lt;h3&gt;Patch fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Miscellaneous fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.11.103#1.11.103</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.11.102</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.11.102</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.11.1&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.11.102#1.11.102</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.11.101</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.11.101</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.11.0&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.11.101#1.11.101</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.11.100</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.11.100</link>\n      <description>&lt;h3&gt;Speak to Cascade&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Voice&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Users can now speak into the chat rather than having to type things out.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;@-mentioning conversations&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;@-mention the first conversation so Cascade has full context of it as it goes to write tests for you.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Deeper Browser integration&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Chat with Cascade about tabs that are open in the Browser using @-mentions&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;JetBrains improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Planning Mode, Workflows, and file-based Rules are now available for Cascade on JetBrains&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Now you can @-mention terminal in Cascade.&lt;/li&gt;&lt;li&gt;You can turn on the Auto-Continue setting to have Cascade automatically continue its response if it hits a limit.&lt;/li&gt;&lt;li&gt;Support for more MCP servers with easier and more secure authentication by integrating the new Streamable HTTP transport (replaces SSE) and MCP authentication (replaces access tokens or API keys in the config).&lt;/li&gt;&lt;li&gt;Important for enterprise customers who use Windsurf across lots of repos. Now, you can enforce ignore rules across all repositories by placing .codeiumignore in the ~/.codeium/ folder&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.11.100#1.11.100</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 16 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.113</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.113</link>\n      <description>&lt;h3&gt;Patch fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Miscellaneous fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.113#1.10.113</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.112</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.112</link>\n      <description>&lt;h3&gt;Cascade Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improvements to Cascade reliability&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.112#1.10.112</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.111</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.111</link>\n      <description>&lt;h3&gt;Patch fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Miscellaneous fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.111#1.10.111</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.109</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.109</link>\n      <description>&lt;h3&gt;Patch fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Miscellaneous fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.109#1.10.109</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 25 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.108</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.108</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes to default model selection for new users&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.108#1.10.108</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 24 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.107</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.107</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.10.5&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.107#1.10.107</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 19 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.106</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.106</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.10.4&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.106#1.10.106</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.105</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.105</link>\n      <description>&lt;h3&gt;Planning Mode&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.10.3&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.105#1.10.105</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.103</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.103</link>\n      <description>&lt;h3&gt;Planning Mode&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.10.1&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.103#1.10.103</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.101</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.101</link>\n      <description>&lt;h3&gt;Patch fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Miscellaneous fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.101#1.10.101</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 07 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.10.100</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.10.100</link>\n      <description>&lt;h3&gt;Updates&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Removal of legacy mode&lt;/li&gt;&lt;li&gt;Icons in @-mentions&lt;/li&gt;&lt;li&gt;Theme-aware codeblocks with refreshed design&lt;/li&gt;&lt;li&gt;Native terminal in Cascade panel&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.10.100#1.10.100</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9.104</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9.104</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.9.4&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9.104#1.9.104</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 03 Jun 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9.102</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9.102</link>\n      <description>&lt;h3&gt;BYOK (Anthropic Key)&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.9.2&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9.102#1.9.102</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9.101</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9.101</link>\n      <description>&lt;h3&gt;SWE-1 Improvements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Adds multi-modal (image) support to SWE-1&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9.101#1.9.101</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.9.100</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.9.100</link>\n      <description>&lt;h3&gt;New Family of SWE-1 Models&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.9.0&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.9.100#1.9.100</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.8.106</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.8.106</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes on Windows signing to prevent warnings from Windows Defender&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.8.106#1.8.106</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 09 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.8.105</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.8.105</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;Based on the latest release of the Windsurf Editor, v1.8.2&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.8.105#1.8.105</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.8.103</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.8.103</link>\n      <description>&lt;h3&gt;Teams Features&lt;/h3&gt;&lt;p&gt;Based on the latest release of the Windsurf Editor, v1.8.0&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.8.103#1.8.103</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 06 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.8.102</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.8.102</link>\n      <description>&lt;h3&gt;Improvements&lt;/h3&gt;&lt;p&gt;Some improvements to app icons, fixes to SSH server connection, and UI Polish for Cascade Plugins.&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.8.102#1.8.102</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.8.101</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.8.101</link>\n      <description>&lt;h3&gt;New Features&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Cascade Plugin Panel&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New panel in Cascade for managing MCP Servers&lt;/li&gt;&lt;li&gt;Easier one-click uninstall and install&lt;/li&gt;&lt;li&gt;Easier search&lt;/li&gt;&lt;li&gt;MCP now has MCP resources and multimodel responses&lt;/li&gt;&lt;li&gt;More MCP Server options coming soon&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Customization Panel&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Revamped Memories panel to include rules, workflows, and memories&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Revamped rules&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Support for workspace-style rules in.windsurf/rules&lt;/li&gt;&lt;li&gt;Custom triggers when to activate a rule&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Workflows&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Support for quick instructions for Cascade to take on mini-tasks&lt;/li&gt;&lt;li&gt;.windsurf/workflowshouses workflows that Cascade can do in the current workspace&lt;/li&gt;&lt;li&gt;Workflows can be found as slash commands (/) in the Cascade input&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cascade Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Conversation sharing with a teams-only accessible URL&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Redesigned Model Selector&lt;/li&gt;&lt;li&gt;Continue button when reaching individual tool call limit&lt;/li&gt;&lt;li&gt;Hunk accept/reject widget now has a compact mode to cover less code&lt;/li&gt;&lt;li&gt;Tab respects files mentioned incodeiumignore&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.8.101#1.8.101</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.7.104</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.7.104</link>\n      <description>&lt;h3&gt;Patch Fixes&lt;/h3&gt;&lt;p&gt;Based on the latest release of the Windsurf Editor, v1.7.3&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.7.104#1.7.104</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 29 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.7.103</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.7.103</link>\n      <description>&lt;h3&gt;New App Icon &amp; Upgraded Free Tier&lt;/h3&gt;&lt;p&gt;Based on the latest release of the Windsurf Editor, v1.7.2&lt;/p&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.7.103#1.7.103</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.7.102</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.7.102</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Updates IDE marketplace link by mirroring Open VSX&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.7.102#1.7.102</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.7.101</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.7.101</link>\n      <description>&lt;p&gt;&lt;strong&gt;Experimental Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Bug fixes&lt;/li&gt;&lt;li&gt;Performance optimizations&lt;/li&gt;&lt;li&gt;VS Code 1.98.0 Updates&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.7.101#1.7.101</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 22 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.7.100</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.7.100</link>\n      <description>&lt;p&gt;&lt;strong&gt;Updated and Simplified Pricing&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We're simplifying our pricing model by removing Flow Action Credits&lt;/li&gt;&lt;li&gt;Change takes effect April 21st, 2025&lt;/li&gt;&lt;li&gt;Plans now come with prompt credits with add-on credits available for purchase&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;User Prompt Credits&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Plans now come with prompt credits, which are consumed per every message sent and not via every tool call&lt;/li&gt;&lt;li&gt;Add-on credits are available for purchase&lt;/li&gt;&lt;li&gt;Auto-top off (with max limits) can be enabled via profile&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Existing Plans&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Existing plans are migrating over to the new pricing model&lt;/li&gt;&lt;li&gt;For more information, please visit thePricing page&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.7.100#1.7.100</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.121</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.121</link>\n      <description>&lt;p&gt;&lt;strong&gt;New o4-mini models available and Free (Limited Time)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Windsurf now supports the o4-mini medium and o4-mini high models, which are free for all users&lt;/li&gt;&lt;li&gt;Usage in Windsurf is free for a limited time from April 16th to April 21st&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.121#1.6.121</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 16 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.120</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.120</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Bug fixes and improvements around credit banners&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.120#1.6.120</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.119</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.119</link>\n      <description>&lt;p&gt;&lt;strong&gt;New GPT 4.1 Model available and Free (Limited Time)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Windsurf now supports the new GPT 4.1 model, which is free for all users&lt;/li&gt;&lt;li&gt;Usage in Windsurf is free for a limited time from April 14th to April 21st&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.119#1.6.119</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.118</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.118</link>\n      <description>&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade can now check the status of deploys&lt;/li&gt;&lt;li&gt;Fixes to duplicated rules&lt;/li&gt;&lt;li&gt;Commit Generation Fixes on Windows&lt;/li&gt;&lt;li&gt;Fixes for Commit Generation through the command palette&lt;/li&gt;&lt;li&gt;Cascade UI Fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.118#1.6.118</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 05 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.117</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.117</link>\n      <description>&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixes to \"Remote - WSL\" extension&lt;/li&gt;&lt;li&gt;Minor UX fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.117#1.6.117</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.116</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.116</link>\n      <description>&lt;p&gt;&lt;strong&gt;App Deploys from Windsurf Wave 6&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;App Deploys are now available in Windsurf - Next&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.116#1.6.116</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.115</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.115</link>\n      <description>&lt;p&gt;&lt;strong&gt;Bug Fixes and Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed Cascade top menu button click opening file explorer on Windows&lt;/li&gt;&lt;li&gt;Fixed occasional extra space inserted beneath Cascade input&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.115#1.6.115</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.114</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.114</link>\n      <description>&lt;p&gt;&lt;strong&gt;Bug Fixes and Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed sound on startup&lt;/li&gt;&lt;li&gt;Fixed issues around adding rules&lt;/li&gt;&lt;li&gt;Fixed generate project with Cascade entry point&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.114#1.6.114</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.113</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.113</link>\n      <description>&lt;p&gt;&lt;strong&gt;April 1st Release&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Introduced Completion Sound for Cascade (Beta)New setting to enable a sound when Cascade has finished generating (default off)&lt;/li&gt;&lt;li&gt;New setting to enable a sound when Cascade has finished generating (default off)&lt;/li&gt;&lt;li&gt;Introduced Sound for Windsurf Tab (Beta)New setting to enable a sound on tab completion (default off)&lt;/li&gt;&lt;li&gt;New setting to enable a sound on tab completion (default off)&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.113#1.6.113</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.112</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.112</link>\n      <description>&lt;p&gt;&lt;strong&gt;Updates&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;UI fixes to Cascade&lt;/li&gt;&lt;li&gt;Improvements to the no-internet state&lt;/li&gt;&lt;li&gt;Commit message generation reliability and quality&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.112#1.6.112</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.111</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.111</link>\n      <description>&lt;p&gt;&lt;strong&gt;Updates&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;UI Fixes and updates&lt;/li&gt;&lt;li&gt;Cascade icon returned in upper corner&lt;/li&gt;&lt;li&gt;Improvements to terminal output rendering in Cascade&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.111#1.6.111</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.110</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.110</link>\n      <description>&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Enabled Cascade to wait for background commands to finish when querying command status.&lt;/li&gt;&lt;li&gt;Auto-Generate Memories toggle in settings.When enabled, Cascade will autonomously generate memories to remember important context.When disabled, Cascade will only create memories when you explicitly ask.&lt;/li&gt;&lt;li&gt;When enabled, Cascade will autonomously generate memories to remember important context.&lt;/li&gt;&lt;li&gt;When disabled, Cascade will only create memories when you explicitly ask.&lt;/li&gt;&lt;li&gt;Bug fixes in SSH extension (when RemoteCommand was enabled)&lt;/li&gt;&lt;li&gt;Redesigned the terminal tool step. Inputs can be sent to the terminal via \"Open terminal\".&lt;/li&gt;&lt;li&gt;Underlined links are now clickable in Cascade and user messages.&lt;/li&gt;&lt;li&gt;New conversation screen now has a new toolbar for tools like MCP and Preview.&lt;/li&gt;&lt;li&gt;Cascade input is persisted across new conversation screen and an active conversation.&lt;/li&gt;&lt;li&gt;Cascade now has a quick table of contents of all past user messagesNew ability to revert or scroll to any past message&lt;/li&gt;&lt;li&gt;New ability to revert or scroll to any past message&lt;/li&gt;&lt;li&gt;Added support for custom SSH paths&lt;/li&gt;&lt;li&gt;Add workspace search as context to Windsurf Tab&lt;/li&gt;&lt;li&gt;Adds auto generate commit messages in Source Control Panel&lt;/li&gt;&lt;li&gt;New Rules and Memories panel in Cascade&lt;/li&gt;&lt;li&gt;Improvements to long conversation performance&lt;/li&gt;&lt;li&gt;Two new app icons (for Mac)&lt;/li&gt;&lt;li&gt;Support for SSE-based MCP&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.110#1.6.110</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 26 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.106</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.106</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Bug/stability fixes&lt;/li&gt;&lt;li&gt;Adds auto generate commit messages in Source Control Panel&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.106#1.6.106</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.105</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.105</link>\n      <description>&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Further improvements to the tab completions experience&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Patch fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Bug/stability fixes&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.105#1.6.105</guid>\n      <category>Changelog</category>\n      <pubDate>Sat, 15 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.103</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.103</link>\n      <description>&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;More improvements to the tab completions experience&lt;/li&gt;&lt;li&gt;Improvements to Cascade \"start with history\"&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.103#1.6.103</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.101</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.101</link>\n      <description>&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;More improvements to the tab completions experience&lt;/li&gt;&lt;li&gt;Completions can now use your clipboard for suggestions, must be enabled in settings&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.101#1.6.101</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 11 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.6.100</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.6.100</link>\n      <description>&lt;p&gt;&lt;strong&gt;Improvements&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improvements to the tab completions experience&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.6.100#1.6.100</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.5.108</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.5.108</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improvements from Windsurf v1.4.4&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.5.108#1.5.108</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.5.107</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.5.107</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Builds off of Windsurf v1.4.3&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.5.107#1.5.107</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.3.110</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.3.110</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixes crashes due to permissions errors on Ubuntu 24.04&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.3.110#1.3.110</guid>\n      <category>Changelog</category>\n      <pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.3.109</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.3.109</link>\n      <description>&lt;h3&gt;New operating system support&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Beta support for Windows ARM64&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.3.109#1.3.109</guid>\n      <category>Changelog</category>\n      <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.3.107</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.3.107</link>\n      <description>&lt;p&gt;&lt;strong&gt;Patch Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Builds off of Windsurf v1.3.10&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.3.107#1.3.107</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.3.104</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.3.104</link>\n      <description>&lt;p&gt;&lt;strong&gt;New Cascade Models&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now has a new premium model available: Claude 3.7 SonnetTakes 1.0 user prompt credits on every message and 1.0 flow action credits on each tool callSupport for Claude 3.7 Sonnet ships with Thinking, with a 1.5x multiplier on credit cost.&lt;/li&gt;&lt;li&gt;Takes 1.0 user prompt credits on every message and 1.0 flow action credits on each tool call&lt;/li&gt;&lt;li&gt;Support for Claude 3.7 Sonnet ships with Thinking, with a 1.5x multiplier on credit cost.&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.3.104#1.3.104</guid>\n      <category>Changelog</category>\n      <pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.3.102</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.3.102</link>\n      <description>&lt;h3&gt;Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved Cascade Base&lt;/li&gt;&lt;li&gt;New Configure MCP toolbar&lt;/li&gt;&lt;li&gt;Bug Fixes and Improvements&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.3.102#1.3.102</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.3.101</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.3.101</link>\n      <description>&lt;h3&gt;Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.3.3&lt;/li&gt;&lt;li&gt;Fixes for model selection on reload&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.3.101#1.3.101</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.2.109</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.2.109</link>\n      <description>&lt;h3&gt;Multiple Fixes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes for User-Defined Memories, Settings, MCP config&lt;/li&gt;&lt;li&gt;Input toolbar now appears on empty conversation&lt;/li&gt;&lt;li&gt;Opens the correct changelog&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.2.109#1.2.109</guid>\n      <category>Changelog</category>\n      <pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.2.107</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.2.107</link>\n      <description>&lt;h3&gt;Separation from Windsurf - Stable&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Windsurf - Next will no longer share conversations, settings, or memories with Windsurf (Stable)&lt;/li&gt;&lt;li&gt;This allows us to ship experimental features to Next without breaking Windsurf (Stable)&lt;/li&gt;&lt;li&gt;A one time import is not available yet, but to be shipped in future releases&lt;/li&gt;&lt;li&gt;You can copy the data manually by copying data from the.codeium/windsurffolder to the.codeium/windsurf-nextfolder&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Fixes&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixes for Chat Model Gemini 2.0 Flash mistakingly being marked as Free&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.2.107#1.2.107</guid>\n      <category>Changelog</category>\n      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Windsurf Next 1.2.106</title>\n      <link>https://windsurf.com/changelog/windsurf-next#1.2.106</link>\n      <description>&lt;h3&gt;Windsurf - Next Launch&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Based on the latest release of the Windsurf Editor, v1.2.5&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP Support&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cascade now supports the new MCP protocol, allowing you to connect new tools&lt;/li&gt;&lt;li&gt;Load your MCP servers through a user-configurable JSON file&lt;/li&gt;&lt;li&gt;Every MCP tool call costs one flow action credit, regardless of the execution result&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;New Cascade Toolbar&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New Cascade toolbar that shows files with changes, active terminals, and MCP connection status&lt;/li&gt;&lt;/ul&gt;</description>\n      <guid isPermaLink=\"false\">https://windsurf.com/changelog/windsurf-next#1.2.106#1.2.106</guid>\n      <category>Changelog</category>\n      <pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds/feed_xainews.xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" version=\"2.0\">\n  <channel>\n    <title>xAI News</title>\n    <link>https://x.ai/news</link>\n    <description>Latest updates from xAI</description>\n    <atom:link href=\"https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_xainews.xml\" rel=\"self\"/>\n    <docs>http://www.rssboard.org/rss-specification</docs>\n    <generator>python-feedgen</generator>\n    <language>en</language>\n    <lastBuildDate>Wed, 13 May 2026 11:22:43 +0000</lastBuildDate>\n    <item>\n      <title>Grok Imagine Quality Mode API</title>\n      <link>https://x.ai/news/grok-imagine-quality-mode</link>\n      <description>Higher realism. Stronger text rendering. Better creative control.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-imagine-quality-mode</guid>\n      <category>May 06, 2026</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Connectors in web, iOS, and Android</title>\n      <link>https://x.ai/news/grok-connectors</link>\n      <description>Deep integrations that bring the apps you use every day directly into Grok.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-connectors</guid>\n      <category>May 06, 2026</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>New Compute Partnership with Anthropic</title>\n      <link>https://x.ai/news/anthropic-compute-partnership</link>\n      <description>SpaceXAI has signed an agreement with Anthropic to provide access to Colossus 1.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/anthropic-compute-partnership</guid>\n      <category>Company</category>\n      <pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Custom Voices and Voice Library</title>\n      <link>https://x.ai/news/grok-custom-voices</link>\n      <description>Your voice. Your brand. Clone a voice from a short recording and manage your entire voice catalog from the xAI console.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-custom-voices</guid>\n      <category>April 30, 2026</category>\n      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Voice Think Fast 1.0</title>\n      <link>https://x.ai/news/grok-voice-think-fast-1</link>\n      <description>Our most capable voice agent is now available via API.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-voice-think-fast-1</guid>\n      <category>April 23, 2026</category>\n      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Speech to Text and Text to Speech APIs</title>\n      <link>https://x.ai/news/grok-stt-and-tts-apis</link>\n      <description>Fast and accurate. Natural, expressive voices. Simple pricing. Multilingual support.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-stt-and-tts-apis</guid>\n      <category>April 17, 2026</category>\n      <pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>xAI joins SpaceX</title>\n      <link>https://x.ai/news/xai-joins-spacex</link>\n      <description>SpaceX announced today that it has acquired xAI.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/xai-joins-spacex</guid>\n      <category>February 02, 2026</category>\n      <pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Imagine API</title>\n      <link>https://x.ai/news/grok-imagine-api</link>\n      <description>State-of-the-art video generation across quality, cost, and latency.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-imagine-api</guid>\n      <category>January 28, 2026</category>\n      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>xAI Raises $20B Series E</title>\n      <link>https://x.ai/news/series-e</link>\n      <description>xAI is rapidly accelerating its progress in building advanced AI.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/series-e</guid>\n      <category>January 06, 2026</category>\n      <pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Introducing Grok Business and Grok Enterprise</title>\n      <link>https://x.ai/news/grok-business</link>\n      <description>The best assistant in the world is now Enterprise ready.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-business</guid>\n      <category>December 30, 2025</category>\n      <pubDate>Tue, 30 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Supporting the DOW's mission with AI</title>\n      <link>https://x.ai/news/us-gov-dept-of-war</link>\n      <description>xAI is proud to be selected by the US Department of War to deliver Frontier AI</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/us-gov-dept-of-war</guid>\n      <category>December 22, 2025</category>\n      <pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Collections API</title>\n      <link>https://x.ai/news/grok-collections-api</link>\n      <description>State-of-the-art RAG system built directly into our API.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-collections-api</guid>\n      <category>December 22, 2025</category>\n      <pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Voice Agent API</title>\n      <link>https://x.ai/news/grok-voice-agent-api</link>\n      <description>Bringing the power of Grok Voice to all developers.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-voice-agent-api</guid>\n      <category>December 17, 2025</category>\n      <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>xAI and El Salvador Pioneer the World's First Nationwide AI Education Program</title>\n      <link>https://x.ai/news/el-salvador-partnership</link>\n      <description>Announcing Our Transformative Partnership with the Government of El Salvador.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/el-salvador-partnership</guid>\n      <category>December 11, 2025</category>\n      <pubDate>Thu, 11 Dec 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok goes Global with KSA</title>\n      <link>https://x.ai/news/grok-goes-global</link>\n      <description>Announcing Our Landmark Partnership with Saudi Arabia and HUMAIN</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-goes-global</guid>\n      <category>November 19, 2025</category>\n      <pubDate>Wed, 19 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok 4.1 Fast and Agent Tools API</title>\n      <link>https://x.ai/news/grok-4-1-fast</link>\n      <description>Bringing the next generation of tool-calling agents to the xAI API</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-4-1-fast</guid>\n      <category>November 19, 2025</category>\n      <pubDate>Wed, 19 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok 4.1</title>\n      <link>https://x.ai/news/grok-4-1</link>\n      <description>Grok 4.1 is now available to all users on grok.com, 𝕏, and the iOS and Android apps. It is rolling out immediately in Auto mode and can be selected explicitly as “Grok 4.1” in the model picker.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-4-1</guid>\n      <category>November 17, 2025</category>\n      <pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Expanding xAI for Government with GSA OneGov</title>\n      <link>https://x.ai/news/onegov</link>\n      <description>Expanding ‘xAI For Government’ with more accessible AI tools for the Federal Government</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/onegov</guid>\n      <category>September 25, 2025</category>\n      <pubDate>Thu, 25 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok 4 Fast</title>\n      <link>https://x.ai/news/grok-4-fast</link>\n      <description>Pushing the Frontier of Cost-Efficient Intelligence</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-4-fast</guid>\n      <category>September 19, 2025</category>\n      <pubDate>Fri, 19 Sep 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Code Fast 1</title>\n      <link>https://x.ai/news/grok-code-fast-1</link>\n      <description>We're thrilled to introduce grok-code-fast-1, a speedy and economical reasoning model that excels at agentic coding.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-code-fast-1</guid>\n      <category>August 28, 2025</category>\n      <pubDate>Thu, 28 Aug 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing xAI for Government</title>\n      <link>https://x.ai/news/government</link>\n      <description>We are excited to announce xAI For Government – a suite of frontier AI products available first to United States Government customers.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/government</guid>\n      <category>July 14, 2025</category>\n      <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok 4</title>\n      <link>https://x.ai/news/grok-4</link>\n      <description>Grok 4 is the most intelligent model in the world. It includes native tool use and real-time search integration, and is available now to SuperGrok and Premium+ subscribers, as well as through the xAI API. We are also introducing a new SuperGrok Heavy tier with access to Grok 4 Heavy - the most powerful version of Grok 4.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-4</guid>\n      <category>July 09, 2025</category>\n      <pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok 3 Beta — The Age of Reasoning Agents</title>\n      <link>https://x.ai/news/grok-3</link>\n      <description>We are thrilled to unveil an early preview of Grok 3, our most advanced model yet, blending superior reasoning with extensive pretraining knowledge.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-3</guid>\n      <category>February 19, 2025</category>\n      <pubDate>Wed, 19 Feb 2025 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>xAI raises $6B Series C</title>\n      <link>https://x.ai/news/series-c</link>\n      <description>We are partnering with A16Z, Blackrock, Fidelity Management &amp; Research Company, Kingdom Holdings, Lightspeed, MGX, Morgan Stanley, OIA, QIA, Sequoia Capital, Valor Equity Partners and Vy Capital, amongst others.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/series-c</guid>\n      <category>December 23, 2024</category>\n      <pubDate>Mon, 23 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Bringing Grok to Everyone</title>\n      <link>https://x.ai/news/grok-1212</link>\n      <description>Grok is now faster, sharper, and has improved multilingual support. It is available to everyone on the 𝕏 platform.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-1212</guid>\n      <category>December 12, 2024</category>\n      <pubDate>Thu, 12 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok Image Generation Release</title>\n      <link>https://x.ai/news/grok-image-generation-release</link>\n      <description>We are updating Grok's capabilities with a new autoregressive image generation model, code-named Aurora, available on the 𝕏 platform.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-image-generation-release</guid>\n      <category>December 09, 2024</category>\n      <pubDate>Mon, 09 Dec 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>API Public Beta</title>\n      <link>https://x.ai/news/api</link>\n      <description>Starting today, developers can build on our Grok foundation models using our newly released API. We will run a public beta program until the end of 2024 during which everyone will get $25 of free API credits per month.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/api</guid>\n      <category>November 04, 2024</category>\n      <pubDate>Mon, 04 Nov 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok-2 Beta Release</title>\n      <link>https://x.ai/news/grok-2</link>\n      <description>We announce our new Grok-2 and Grok-2 mini models.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-2</guid>\n      <category>August 13, 2024</category>\n      <pubDate>Tue, 13 Aug 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Series B funding round</title>\n      <link>https://x.ai/news/series-b</link>\n      <description>xAI is pleased to announce our series B funding round of $6 billion.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/series-b</guid>\n      <category>May 26, 2024</category>\n      <pubDate>Sun, 26 May 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Grok-1.5 Vision Preview</title>\n      <link>https://x.ai/news/grok-1.5v</link>\n      <description>Connecting the digital and physical worlds with our first multimodal model.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-1.5v</guid>\n      <category>April 12, 2024</category>\n      <pubDate>Fri, 12 Apr 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Grok-1.5</title>\n      <link>https://x.ai/news/grok-1.5</link>\n      <description>Grok-1.5 comes with improved reasoning capabilities and a context length of 128,000 tokens. Available on 𝕏 soon.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-1.5</guid>\n      <category>March 28, 2024</category>\n      <pubDate>Thu, 28 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Open Release of Grok-1</title>\n      <link>https://x.ai/news/grok-os</link>\n      <description>We are releasing the weights and architecture of our 314 billion parameter Mixture-of-Experts model Grok-1.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok-os</guid>\n      <category>March 17, 2024</category>\n      <pubDate>Sun, 17 Mar 2024 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing PromptIDE</title>\n      <link>https://x.ai/news/prompt-ide</link>\n      <description>Integrated development environment for prompt engineering and interpretability research.</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/prompt-ide</guid>\n      <category>November 06, 2023</category>\n      <pubDate>Mon, 06 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n    <item>\n      <title>Announcing Grok</title>\n      <link>https://x.ai/news/grok</link>\n      <description>Grok is an AI modeled after the Hitchhiker’s Guide to the Galaxy. It is intended to answer almost anything and, far harder, even suggest what questions to ask!</description>\n      <guid isPermaLink=\"false\">https://x.ai/news/grok</guid>\n      <category>November 03, 2023</category>\n      <pubDate>Fri, 03 Nov 2023 00:00:00 +0000</pubDate>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "feeds.yaml",
    "content": "# Feed Registry -- single source of truth for all feed generators.\n# run_all_feeds.py reads this file instead of scanning *.py files.\n#\n# To add a new feed:\n#   1. Create feed_generators/<name>.py\n#   2. Add an entry here\n#   3. Add a Make target in makefiles/feeds.mk\n#   4. Update README.md\n#\n# To disable a feed temporarily:\n#   some_feed:\n#     script: some_blog.py\n#     type: requests\n#     blog_url: https://example.com\n#     enabled: false\n\nfeeds:\n  ai_first_podcast:\n    script: ai_first_podcast.py\n    type: requests\n    blog_url: https://ai-first.ai/podcast\n\n  anthropic_eng:\n    script: anthropic_eng_blog.py\n    type: requests\n    blog_url: https://www.anthropic.com/engineering\n\n  anthropic_news:\n    script: anthropic_news_blog.py\n    type: selenium\n    blog_url: https://www.anthropic.com/news\n\n  anthropic_red:\n    script: anthropic_red_blog.py\n    type: requests\n    blog_url: https://red.anthropic.com/\n\n  anthropic_research:\n    script: anthropic_research_blog.py\n    type: selenium\n    blog_url: https://www.anthropic.com/research\n\n  blogsurgeai:\n    script: blogsurgeai_feed_generator.py\n    type: requests\n    blog_url: https://www.surgehq.ai/blog\n\n  chanderramesh:\n    script: chanderramesh_blog.py\n    type: requests\n    blog_url: https://chanderramesh.com/writing\n\n  claude:\n    script: claude_blog.py\n    type: requests\n    blog_url: https://claude.com/blog\n\n  cohere:\n    script: cohere_blog.py\n    type: requests\n    blog_url: https://cohere.com/blog\n\n  cursor:\n    script: cursor_blog.py\n    type: requests\n    blog_url: https://cursor.com/blog\n\n  dagster:\n    script: dagster_blog.py\n    type: requests\n    blog_url: https://dagster.io/blog\n\n  google_ai:\n    script: google_ai_blog.py\n    type: requests\n    blog_url: https://developers.googleblog.com/search/?technology_categories=AI\n\n  groq:\n    script: groq_blog.py\n    type: requests\n    blog_url: https://groq.com/blog/\n\n  meta_ai:\n    script: meta_ai_blog.py\n    type: selenium\n    blog_url: https://ai.meta.com/blog/\n\n  mistral:\n    script: mistral_blog.py\n    type: selenium\n    blog_url: https://mistral.ai/news\n\n  ollama:\n    script: ollama_blog.py\n    type: requests\n    blog_url: https://ollama.com/blog\n\n  paulgraham:\n    script: paulgraham_blog.py\n    type: requests\n    blog_url: https://paulgraham.com/articles.html\n\n  perplexity_hub:\n    script: perplexity_hub.py\n    type: selenium\n    blog_url: https://www.perplexity.ai/hub\n\n  pinecone:\n    script: pinecone_blog.py\n    type: selenium\n    blog_url: https://www.pinecone.io/blog/\n\n  the_batch:\n    script: deeplearningai_the_batch.py\n    type: requests\n    blog_url: https://www.deeplearning.ai/the-batch/\n\n  thinkingmachines:\n    script: thinkingmachines_blog.py\n    type: requests\n    blog_url: https://thinkingmachines.ai/blog/\n\n  weaviate:\n    script: weaviate_blog.py\n    type: requests\n    blog_url: https://weaviate.io/blog\n\n  windsurf_blog:\n    script: windsurf_blog.py\n    type: requests\n    blog_url: https://windsurf.com/blog\n\n  windsurf_changelog:\n    script: windsurf_changelog.py\n    type: requests\n    blog_url: https://windsurf.com/changelog\n\n  windsurf_next_changelog:\n    script: windsurf_next_changelog.py\n    type: requests\n    blog_url: https://windsurf.com/changelog/windsurf-next\n\n  xainews:\n    script: xainews_blog.py\n    type: selenium\n    blog_url: https://x.ai/news\n"
  },
  {
    "path": "makefiles/ci.mk",
    "content": "##########################\n### CI/CD Workflows    ###\n##########################\n\n.PHONY: ci_test_workflow_local\nci_test_workflow_local: ## Run the test_feed.yml workflow locally using act\n\t$(call check_command,act)\n\t$(call print_info_section,Running test_feed workflow locally)\n\t$(Q)act --container-architecture linux/amd64 -W .github/workflows/test_feed.yml\n\t$(call print_success,Workflow completed)\n\n.PHONY: ci_run_feeds_workflow_local\nci_run_feeds_workflow_local: ## Run the run_feeds.yml workflow locally using act\n\t$(call check_command,act)\n\t$(call print_info_section,Running run_feeds workflow locally)\n\t$(Q)act --container-architecture linux/amd64 -W .github/workflows/run_feeds.yml\n\t$(call print_success,Workflow completed)\n\n.PHONY: ci_trigger_feeds_workflow\nci_trigger_feeds_workflow: ## Trigger the run_feeds.yml workflow on GitHub using gh\n\t$(call check_command,gh)\n\t$(call print_info,Triggering run_feeds workflow on GitHub)\n\t$(Q)gh workflow run run_feeds.yml\n\t$(call print_success,Workflow triggered)\n\n.PHONY: ci_trigger_selenium_feeds_workflow\nci_trigger_selenium_feeds_workflow: ## Trigger the run_selenium_feeds.yml workflow on GitHub using gh\n\t$(call check_command,gh)\n\t$(call print_info,Triggering selenium feeds workflow on GitHub)\n\t$(Q)gh workflow run run_selenium_feeds.yml\n\t$(call print_success,Workflow triggered)\n\n.PHONY: ci_trigger_validate_feeds_workflow\nci_trigger_validate_feeds_workflow: ## Trigger the validate_feeds.yml workflow on GitHub using gh\n\t$(call check_command,gh)\n\t$(call print_info,Triggering validate feeds workflow on GitHub)\n\t$(Q)gh workflow run validate_feeds.yml\n\t$(call print_success,Workflow triggered)\n\n.PHONY: ci_trigger_test_feed_workflow\nci_trigger_test_feed_workflow: ## Trigger the test_feed.yml workflow on GitHub using gh\n\t$(call check_command,gh)\n\t$(call print_info,Triggering test feed workflow on GitHub)\n\t$(Q)gh workflow run test_feed.yml\n\t$(call print_success,Workflow triggered)\n\n.PHONY: ci_run_selenium_feeds_workflow_local\nci_run_selenium_feeds_workflow_local: ## Run the run_selenium_feeds.yml workflow locally using act\n\t$(call check_command,act)\n\t$(call print_info_section,Running selenium feeds workflow locally)\n\t$(Q)act --container-architecture linux/amd64 -W .github/workflows/run_selenium_feeds.yml\n\t$(call print_success,Workflow completed)\n"
  },
  {
    "path": "makefiles/colors.mk",
    "content": "# Basic ANSI colors & print helpers\n\nGREEN := \\033[0;32m\nYELLOW := \\033[1;33m\nBLUE := \\033[0;34m\nCYAN := \\033[0;36m\nRED := \\033[0;31m\nMAGENTA := \\033[0;35m\nBOLD := \\033[1m\nDIM := \\033[2m\nRESET := \\033[0m\n\nCHECK := ✓\nCROSS := ✗\nWARN := ⚠️\nINFO := ℹ️\nARROW := →\n\ndefine print_success\n\t@printf \"$(GREEN)$(BOLD) $(CHECK) %s$(RESET)\\n\" \"$(1)\"\nendef\n\ndefine print_error\n\t@printf \"$(RED)$(BOLD) $(CROSS) %s$(RESET)\\n\" \"$(1)\"\nendef\n\ndefine print_warning\n\t@printf \"$(YELLOW)$(WARN) %s$(RESET)\\n\" \"$(1)\"\nendef\n\ndefine print_info\n\t@printf \"$(CYAN)$(INFO) %s$(RESET)\\n\" \"$(1)\"\nendef\n\ndefine print_info_section\n\t@printf \"\\n$(CYAN)$(BOLD)%s$(RESET)\\n\" \"$(1)\"\nendef\n"
  },
  {
    "path": "makefiles/common.mk",
    "content": "# Strict shell + sane make defaults\n\nSHELL := /bin/bash\n.SHELLFLAGS := -eu -o pipefail -c\nMAKEFLAGS += --warn-undefined-variables\nMAKEFLAGS += --no-builtin-rules\n\n# VERBOSE=1 to show commands\n\nifdef VERBOSE\n\tQ :=\nelse\n\tQ := @\nendif\n\n# Timestamp & common dirs\n\nTIMESTAMP := $(shell date '+%Y-%m-%d %H:%M:%S')\nROOT_DIR := $(shell pwd)\nBUILD_DIR := $(ROOT_DIR)/build\nDIST_DIR := $(ROOT_DIR)/dist\nDOCS_DIR := $(ROOT_DIR)/docs\nTMP_DIR := $(ROOT_DIR)/tmp\nFEEDS_DIR := $(ROOT_DIR)/feeds\nGENERATORS_DIR := $(ROOT_DIR)/feed_generators\n\n$(BUILD_DIR) $(DIST_DIR) $(TMP_DIR):\n\t$(Q)mkdir -p $@\n\n# Guards & checks\n\ndefine check_command\n\t@command -v $(1) >/dev/null 2>&1 || { \\\n\t\tprintf \"$(RED)Missing tool: $(1)$(RESET)\\n\"; \\\n\t\texit 1; \\\n\t}\nendef\n\ndefine check_venv\n\t@if [ -z \"$$VIRTUAL_ENV\" ]; then \\\n\t\tprintf \"$(RED)$(BOLD) $(CROSS) Virtual environment not activated$(RESET)\\n\"; \\\n\t\tprintf \"$(YELLOW)$(ARROW) Run: source .venv/bin/activate$(RESET)\\n\"; \\\n\t\texit 1; \\\n\tfi\nendef\n\n.PHONY: prompt_confirm\nprompt_confirm: ## Prompt before continuing\n\t@printf \"$(YELLOW)Continue? [y/N] $(RESET)\"; read ans; [ $${ans:-N} = y ]\n\n.PHONY: debug_vars\ndebug_vars: ## Print key variables\n\t$(call print_info_section,Debug variables)\n\t$(Q)printf \"ROOT_DIR=%s\\nFEEDS_DIR=%s\\nGENERATORS_DIR=%s\\n\" \"$(ROOT_DIR)\" \"$(FEEDS_DIR)\" \"$(GENERATORS_DIR)\"\n"
  },
  {
    "path": "makefiles/dev.mk",
    "content": "##########################\n### Development Tools  ###\n##########################\n\n.PHONY: dev_setup\ndev_setup: ## Install dev dependencies and pre-commit hooks\n\t$(call print_info_section,Setting up development environment)\n\t$(Q)uv sync --group dev\n\t$(Q)uv run pre-commit install\n\t$(call print_success,Dev environment ready)\n\n.PHONY: dev_lint\ndev_lint: ## Check code with ruff (lint + format check)\n\t$(call print_info_section,Checking code style)\n\t$(Q)uv run ruff check .\n\t$(Q)uv run ruff format --check .\n\t$(call print_success,Code style OK)\n\n.PHONY: dev_lint_fix\ndev_lint_fix: ## Auto-fix lint issues and format code\n\t$(call print_info_section,Fixing code style)\n\t$(Q)uv run ruff check --fix .\n\t$(Q)uv run ruff format .\n\t$(call print_success,Code formatted)\n\n.PHONY: dev_format\ndev_format: dev_lint_fix ## Alias for dev_lint_fix (backwards compatible)\n\n.PHONY: dev_test_feed\ndev_test_feed: ## Run a test feed generator (ollama)\n\t$(call print_info,Running ollama_blog.py as test feed)\n\t$(Q)uv run feed_generators/ollama_blog.py\n\t$(call print_success,Test feed completed)\n\n.PHONY: dev_test_all\ndev_test_all: ## Validate feeds, regenerate non-selenium feeds, then re-validate\n\t$(call print_info_section,Running full test suite)\n\t$(call print_info,Validating existing feeds)\n\t$(Q)uv run feed_generators/validate_feeds.py\n\t$(call print_info,Regenerating non-selenium feeds)\n\t$(Q)uv run feed_generators/run_all_feeds.py --skip-selenium\n\t$(call print_info,Re-validating feeds)\n\t$(Q)uv run feed_generators/validate_feeds.py\n\t$(call print_success,All tests passed)\n"
  },
  {
    "path": "makefiles/env.mk",
    "content": "##########################\n### Environment Setup  ###\n##########################\n\n.PHONY: env_setup\nenv_setup: ## Create virtual environment and install dependencies\n\t$(call print_info_section,Setting up environment)\n\t$(Q)uv sync\n\t$(call print_success,Environment ready)\n\n.PHONY: env_source\nenv_source: ## Source the env; must be executed like: $$(make env_source)\n\t@echo 'source .venv/bin/activate'\n\n.PHONY: clean_env\nclean_env: ## Clean virtual environment\n\t$(call print_warning,Removing virtual environment)\n\t$(Q)rm -rf venv .venv\n\t$(call print_success,Virtual environment removed)\n"
  },
  {
    "path": "makefiles/feeds.mk",
    "content": "##########################\n### RSS Feed Generation ##\n##########################\n\n.PHONY: feeds_generate_all\nfeeds_generate_all: ## Generate all RSS feeds\n\t$(call check_venv)\n\t$(call print_info_section,Generating all RSS feeds)\n\t$(Q)uv run feed_generators/run_all_feeds.py\n\t$(call print_success,All feeds generated)\n\n.PHONY: feeds_ai_first_podcast\nfeeds_ai_first_podcast: ## Generate RSS feed for AI FIRST Podcast (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating AI FIRST Podcast feed)\n\t$(Q)uv run feed_generators/ai_first_podcast.py\n\t$(call print_success,AI FIRST Podcast feed generated)\n\n.PHONY: feeds_ai_first_podcast_full\nfeeds_ai_first_podcast_full: ## Generate RSS feed for AI FIRST Podcast (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating AI FIRST Podcast feed - FULL RESET)\n\t$(Q)uv run feed_generators/ai_first_podcast.py --full\n\t$(call print_success,AI FIRST Podcast feed generated - full reset)\n\n.PHONY: feeds_anthropic_news\nfeeds_anthropic_news: ## Generate RSS feed for Anthropic News (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Anthropic News feed)\n\t$(Q)uv run feed_generators/anthropic_news_blog.py\n\t$(call print_success,Anthropic News feed generated)\n\n.PHONY: feeds_anthropic_news_full\nfeeds_anthropic_news_full: ## Generate RSS feed for Anthropic News (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Anthropic News feed - FULL RESET)\n\t$(Q)uv run feed_generators/anthropic_news_blog.py --full\n\t$(call print_success,Anthropic News feed generated - full reset)\n\n.PHONY: feeds_anthropic_engineering\nfeeds_anthropic_engineering: ## Generate RSS feed for Anthropic Engineering\n\t$(call check_venv)\n\t$(call print_info,Generating Anthropic Engineering feed)\n\t$(Q)uv run feed_generators/anthropic_eng_blog.py\n\t$(call print_success,Anthropic Engineering feed generated)\n\n.PHONY: feeds_anthropic_research\nfeeds_anthropic_research: ## Generate RSS feed for Anthropic Research\n\t$(call check_venv)\n\t$(call print_info,Generating Anthropic Research feed)\n\t$(Q)uv run feed_generators/anthropic_research_blog.py\n\t$(call print_success,Anthropic Research feed generated)\n\n.PHONY: feeds_anthropic_red\nfeeds_anthropic_red: ## Generate RSS feed for Anthropic Frontier Red Team\n\t$(call check_venv)\n\t$(call print_info,Generating Anthropic Red Team feed)\n\t$(Q)uv run feed_generators/anthropic_red_blog.py\n\t$(call print_success,Anthropic Red Team feed generated)\n\n.PHONY: feeds_google_ai\nfeeds_google_ai: ## Generate RSS feed for Google AI Blog\n\t$(call check_venv)\n\t$(call print_info,Generating Google AI feed)\n\t$(Q)uv run feed_generators/google_ai_blog.py\n\t$(call print_success,Google AI feed generated)\n\n.PHONY: feeds_ollama\nfeeds_ollama: ## Generate RSS feed for Ollama Blog\n\t$(call check_venv)\n\t$(call print_info,Generating Ollama Blog feed)\n\t$(Q)uv run feed_generators/ollama_blog.py\n\t$(call print_success,Ollama Blog feed generated)\n\n.PHONY: feeds_paulgraham\nfeeds_paulgraham: ## Generate RSS feed for Paul Graham's articles\n\t$(call check_venv)\n\t$(call print_info,Generating Paul Graham feed)\n\t$(Q)uv run feed_generators/paulgraham_blog.py\n\t$(call print_success,Paul Graham feed generated)\n\n.PHONY: feeds_blogsurgeai\nfeeds_blogsurgeai: ## Generate RSS feed for Surge AI Blog\n\t$(call check_venv)\n\t$(call print_info,Generating Surge AI Blog feed)\n\t$(Q)uv run feed_generators/blogsurgeai_feed_generator.py\n\t$(call print_success,Surge AI Blog feed generated)\n\n.PHONY: feeds_xainews\nfeeds_xainews: ## Generate RSS feed for xAI News\n\t$(call check_venv)\n\t$(call print_info,Generating xAI News feed)\n\t$(Q)uv run feed_generators/xainews_blog.py\n\t$(call print_success,xAI News feed generated)\n\n.PHONY: feeds_chanderramesh\nfeeds_chanderramesh: ## Generate RSS feed for Chander Ramesh's writing\n\t$(call check_venv)\n\t$(call print_info,Generating Chander Ramesh feed)\n\t$(Q)uv run feed_generators/chanderramesh_blog.py\n\t$(call print_success,Chander Ramesh feed generated)\n\n.PHONY: feeds_claude\nfeeds_claude: ## Generate RSS feed for Claude Blog (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Claude Blog feed)\n\t$(Q)uv run feed_generators/claude_blog.py\n\t$(call print_success,Claude Blog feed generated)\n\n.PHONY: feeds_claude_full\nfeeds_claude_full: ## Generate RSS feed for Claude Blog (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Claude Blog feed - FULL RESET)\n\t$(Q)uv run feed_generators/claude_blog.py --full\n\t$(call print_success,Claude Blog feed generated - full reset)\n\n.PHONY: feeds_thinkingmachines\nfeeds_thinkingmachines: ## Generate RSS feed for Thinking Machines Lab blog\n\t$(call check_venv)\n\t$(call print_info,Generating Thinking Machines Lab feed)\n\t$(Q)uv run feed_generators/thinkingmachines_blog.py\n\t$(call print_success,Thinking Machines Lab feed generated)\n\n.PHONY: feeds_cursor\nfeeds_cursor: ## Generate RSS feed for Cursor Blog (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Cursor Blog feed)\n\t$(Q)uv run feed_generators/cursor_blog.py\n\t$(call print_success,Cursor Blog feed generated)\n\n.PHONY: feeds_cursor_full\nfeeds_cursor_full: ## Generate RSS feed for Cursor Blog (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Cursor Blog feed - FULL RESET)\n\t$(Q)uv run feed_generators/cursor_blog.py --full\n\t$(call print_success,Cursor Blog feed generated - full reset)\n\n.PHONY: feeds_windsurf_blog\nfeeds_windsurf_blog: ## Generate RSS feed for Windsurf Blog\n\t$(call check_venv)\n\t$(call print_info,Generating Windsurf Blog feed)\n\t$(Q)uv run feed_generators/windsurf_blog.py\n\t$(call print_success,Windsurf Blog feed generated)\n\n.PHONY: feeds_windsurf_changelog\nfeeds_windsurf_changelog: ## Generate RSS feed for Windsurf Changelog\n\t$(call check_venv)\n\t$(call print_info,Generating Windsurf Changelog feed)\n\t$(Q)uv run feed_generators/windsurf_changelog.py\n\t$(call print_success,Windsurf Changelog feed generated)\n\n.PHONY: feeds_windsurf_next_changelog\nfeeds_windsurf_next_changelog: ## Generate RSS feed for Windsurf Next Changelog\n\t$(call check_venv)\n\t$(call print_info,Generating Windsurf Next Changelog feed)\n\t$(Q)uv run feed_generators/windsurf_next_changelog.py\n\t$(call print_success,Windsurf Next Changelog feed generated)\n\n.PHONY: feeds_the_batch\nfeeds_the_batch: ## Generate RSS feed for The Batch by DeepLearning.AI\n\t$(call check_venv)\n\t$(call print_info,Generating The Batch feed)\n\t$(Q)uv run feed_generators/deeplearningai_the_batch.py\n\t$(call print_success,The Batch feed generated)\n\n.PHONY: feeds_dagster\nfeeds_dagster: ## Generate RSS feed for Dagster Blog\n\t$(call check_venv)\n\t$(call print_info,Generating Dagster Blog feed)\n\t$(Q)uv run feed_generators/dagster_blog.py\n\t$(call print_success,Dagster Blog feed generated)\n\n.PHONY: feeds_cohere\nfeeds_cohere: ## Generate RSS feed for Cohere Blog\n\t$(call check_venv)\n\t$(call print_info,Generating Cohere Blog feed)\n\t$(Q)uv run feed_generators/cohere_blog.py\n\t$(call print_success,Cohere Blog feed generated)\n\n.PHONY: feeds_groq\nfeeds_groq: ## Generate RSS feed for Groq Blog\n\t$(call check_venv)\n\t$(call print_info,Generating Groq Blog feed)\n\t$(Q)uv run feed_generators/groq_blog.py\n\t$(call print_success,Groq Blog feed generated)\n\n.PHONY: feeds_meta_ai\nfeeds_meta_ai: ## Generate RSS feed for AI at Meta Blog (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Meta AI Blog feed)\n\t$(Q)uv run feed_generators/meta_ai_blog.py\n\t$(call print_success,Meta AI Blog feed generated)\n\n.PHONY: feeds_meta_ai_full\nfeeds_meta_ai_full: ## Generate RSS feed for AI at Meta Blog (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Meta AI Blog feed - FULL RESET)\n\t$(Q)uv run feed_generators/meta_ai_blog.py --full\n\t$(call print_success,Meta AI Blog feed generated - full reset)\n\n.PHONY: feeds_mistral\nfeeds_mistral: ## Generate RSS feed for Mistral AI News (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Mistral AI News feed)\n\t$(Q)uv run feed_generators/mistral_blog.py\n\t$(call print_success,Mistral AI News feed generated)\n\n.PHONY: feeds_mistral_full\nfeeds_mistral_full: ## Generate RSS feed for Mistral AI News (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Mistral AI News feed - FULL RESET)\n\t$(Q)uv run feed_generators/mistral_blog.py --full\n\t$(call print_success,Mistral AI News feed generated - full reset)\n\n.PHONY: feeds_perplexity_hub\nfeeds_perplexity_hub: ## Generate RSS feed for Perplexity Hub (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Perplexity Hub feed)\n\t$(Q)uv run feed_generators/perplexity_hub.py\n\t$(call print_success,Perplexity Hub feed generated)\n\n.PHONY: feeds_perplexity_hub_full\nfeeds_perplexity_hub_full: ## Generate RSS feed for Perplexity Hub (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Perplexity Hub feed - FULL RESET)\n\t$(Q)uv run feed_generators/perplexity_hub.py --full\n\t$(call print_success,Perplexity Hub feed generated - full reset)\n\n.PHONY: feeds_pinecone\nfeeds_pinecone: ## Generate RSS feed for Pinecone Blog (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Pinecone Blog feed)\n\t$(Q)uv run feed_generators/pinecone_blog.py\n\t$(call print_success,Pinecone Blog feed generated)\n\n.PHONY: feeds_pinecone_full\nfeeds_pinecone_full: ## Generate RSS feed for Pinecone Blog (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Pinecone Blog feed - FULL RESET)\n\t$(Q)uv run feed_generators/pinecone_blog.py --full\n\t$(call print_success,Pinecone Blog feed generated - full reset)\n\n.PHONY: feeds_weaviate\nfeeds_weaviate: ## Generate RSS feed for Weaviate Blog (incremental)\n\t$(call check_venv)\n\t$(call print_info,Generating Weaviate Blog feed)\n\t$(Q)uv run feed_generators/weaviate_blog.py\n\t$(call print_success,Weaviate Blog feed generated)\n\n.PHONY: feeds_weaviate_full\nfeeds_weaviate_full: ## Generate RSS feed for Weaviate Blog (full reset)\n\t$(call check_venv)\n\t$(call print_info,Generating Weaviate Blog feed - FULL RESET)\n\t$(Q)uv run feed_generators/weaviate_blog.py --full\n\t$(call print_success,Weaviate Blog feed generated - full reset)\n\n.PHONY: clean_feeds\nclean_feeds: ## Clean generated RSS feed files\n\t$(call print_warning,Removing generated RSS feeds)\n\t$(Q)rm -rf feeds/*.xml\n\t$(call print_success,RSS feeds removed)\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[project]\nname = \"rss-feeds\"\nversion = \"0.1.0\"\ndescription = \"RSS feed generator for blogs that don't have one\"\nreadme = \"README.md\"\nlicense = \"MIT\"\nrequires-python = \">=3.11\"\nauthors = [\n    { name = \"Daniel Olshansky\", email = \"olshansky.daniel@gmail.com\" },\n    { name = \"Oliver Borchers\", email = \"26734737+oborchers@users.noreply.github.com\" },\n]\n\ndependencies = [\n    \"beautifulsoup4>=4.12\",\n    \"feedgen>=1.0\",\n    \"lxml>=5.0\",\n    \"python-dateutil>=2.8\",\n    \"pytz>=2024.1\",\n    \"requests>=2.31\",\n    \"selenium>=4.25\",\n    \"undetected-chromedriver>=3.5\",\n    \"pydantic>=2.5\",\n    \"pydantic-settings>=2.1\",\n    \"pyyaml>=6.0\",\n]\n\n[project.urls]\nRepository = \"https://github.com/Olshansk/rss-feeds\"\n\n[dependency-groups]\ndev = [\"ruff>=0.15\", \"pre-commit>=4.0\"]\n\n[tool.ruff]\ntarget-version = \"py311\"\nline-length = 120\nsrc = [\"feed_generators\"]\n\n[tool.ruff.lint]\nselect = [\"F\", \"E\", \"W\", \"I\", \"N\", \"UP\", \"B\", \"SIM\", \"C4\", \"RUF\", \"PERF\"]\nignore = [\"E501\", \"N812\", \"SIM108\"]\n\n[tool.ruff.lint.isort]\nknown-first-party = [\"utils\", \"models\"]\n\n[tool.ruff.format]\ndocstring-code-format = true\n"
  }
]