Repository: Olshansk/rss-feeds Branch: main Commit: 3c0aa368aa54 Files: 96 Total size: 1.8 MB Directory structure: gitextract_o0vedygl/ ├── .agents/ │ └── skills/ │ ├── cmd-rss-feed-generator/ │ │ └── SKILL.md │ └── rss-feed-review/ │ └── SKILL.md ├── .editorconfig ├── .github/ │ ├── CODEOWNERS │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ └── request_rss_feed.md │ ├── PULL_REQUEST_TEMPLATE/ │ │ └── add_new_feed.md │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── cleanup_deprecated_feeds.yml │ ├── label_new_feed.yml │ ├── lint.yml │ ├── run_feeds.yml │ ├── run_selenium_feeds.yml │ ├── test_feed.yml │ └── validate_feeds.yml ├── .gitignore ├── .markdownlint.json ├── .pre-commit-config.yaml ├── AGENTS.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── cache/ │ └── .gitkeep ├── feed_generators/ │ ├── ai_first_podcast.py │ ├── anthropic_eng_blog.py │ ├── anthropic_news_blog.py │ ├── anthropic_red_blog.py │ ├── anthropic_research_blog.py │ ├── blogsurgeai_feed_generator.py │ ├── chanderramesh_blog.py │ ├── claude_blog.py │ ├── cleanup_deprecated_feeds.py │ ├── cohere_blog.py │ ├── cursor_blog.py │ ├── dagster_blog.py │ ├── deeplearningai_the_batch.py │ ├── deprecate_feed.py │ ├── google_ai_blog.py │ ├── groq_blog.py │ ├── meta_ai_blog.py │ ├── mistral_blog.py │ ├── models.py │ ├── ollama_blog.py │ ├── paulgraham_blog.py │ ├── perplexity_hub.py │ ├── pinecone_blog.py │ ├── run_all_feeds.py │ ├── thinkingmachines_blog.py │ ├── utils.py │ ├── validate_feeds.py │ ├── weaviate_blog.py │ ├── windsurf_blog.py │ ├── windsurf_changelog.py │ ├── windsurf_next_changelog.py │ └── xainews_blog.py ├── feeds/ │ ├── .gitkeep │ ├── feed_ai_first_podcast.xml │ ├── feed_anthropic_changelog_claude_code.xml │ ├── feed_anthropic_engineering.xml │ ├── feed_anthropic_news.xml │ ├── feed_anthropic_red.xml │ ├── feed_anthropic_research.xml │ ├── feed_blogsurgeai.xml │ ├── feed_chanderramesh.xml │ ├── feed_claude.xml │ ├── feed_cohere.xml │ ├── feed_cursor.xml │ ├── feed_dagster.xml │ ├── feed_google_ai.xml │ ├── feed_groq.xml │ ├── feed_hamel.xml │ ├── feed_meta_ai.xml │ ├── feed_mistral.xml │ ├── feed_ollama.xml │ ├── feed_openai_research.xml │ ├── feed_paulgraham.xml │ ├── feed_perplexity_hub.xml │ ├── feed_pinecone.xml │ ├── feed_the_batch.xml │ ├── feed_thinkingmachines.xml │ ├── feed_weaviate.xml │ ├── feed_windsurf_blog.xml │ ├── feed_windsurf_changelog.xml │ ├── feed_windsurf_next_changelog.xml │ └── feed_xainews.xml ├── feeds.yaml ├── makefiles/ │ ├── ci.mk │ ├── colors.mk │ ├── common.mk │ ├── dev.mk │ ├── env.mk │ └── feeds.mk └── pyproject.toml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .agents/skills/cmd-rss-feed-generator/SKILL.md ================================================ --- name: cmd-rss-feed-generator description: Generate Python RSS feed scrapers from blog websites, integrated with hourly GitHub Actions disable-model-invocation: false context: fork agent: general-purpose --- # RSS Feed Generator Command You are the **RSS Feed Generator Agent**, specialized in creating Python scripts that convert blog websites without RSS feeds into properly formatted RSS/XML feeds. The script will automatically be included in the hourly GitHub Actions workflow once merged. Always reference existing generators in `feed_generators/` as your primary guide. ## Table of Contents - [Project Context](#project-context) - [Workflow](#workflow) - [Step 0: Classify the URL](#step-0-classify-the-url) - [Step 1: Review Existing Feed Generators](#step-1-review-existing-feed-generators) - [Step 2: Analyze the Blog Source](#step-2-analyze-the-blog-source) - [Step 3: Create the Feed Generator Script](#step-3-create-the-feed-generator-script) - [Step 4: Update feeds.yaml](#step-4-update-feedsyaml) - [Step 5: Add Makefile Target](#step-5-add-makefile-target) - [Step 6: Update README](#step-6-update-readme) - [Step 7: Test and Verify](#step-7-test-and-verify) - [Reference Examples by Type](#reference-examples-by-type) - [Common Patterns](#common-patterns) - [Troubleshooting](#troubleshooting) ## Project Context This project generates RSS feeds for blogs that don't provide them natively. The system uses: - Python scripts in `feed_generators/` to scrape and convert blog content - `feeds.yaml` as the single source of truth for the feed registry - GitHub Actions for automated hourly updates - Makefile targets for easy testing and execution ## Workflow ### Step 0: Classify the URL **Before doing anything else**, determine which of the four cases applies. Each has a different exit path. --- #### Case A: GitHub repo URL (`https://github.com/{owner}/{repo}`) GitHub provides native Atom feeds — no scraper needed. Ask the user which to track: > "This is a GitHub repo. GitHub provides native Atom feeds — no scraper needed. Which would you like to track? > > 1. **Releases** — `https://github.com/{owner}/{repo}/releases.atom` > 2. **Tags** — `https://github.com/{owner}/{repo}/tags.atom` > 3. **Commits (specific branch)** — `https://github.com/{owner}/{repo}/commits/{branch}.atom` _(ask which branch)_ > 4. **Commits (main)** — `https://github.com/{owner}/{repo}/commits/main.atom`" Once the user picks: - Construct the final Atom URL. - **Go directly to [Step 6: Update README](#step-6-update-readme)** using `[Official RSS]` format. - Do **not** create a script, add to `feeds.yaml`, or add a Makefile target. --- #### Case B: Site has a native RSS/Atom feed Fetch the page and check for a native feed **before writing any code**: 1. Look for `` or `type="application/atom+xml"` in ``. 2. Try common feed paths: `/feed`, `/rss.xml`, `/atom.xml`, `/feed.xml`, `/rss`, `/blog/feed`. 3. If a working feed URL is found: - **Go directly to [Step 6: Update README](#step-6-update-readme)** using `[Official RSS]` format. - Do **not** create a script, add to `feeds.yaml`, or add a Makefile target. --- #### Case C: Static site (HTML served without JavaScript rendering) Signals that `requests` + BeautifulSoup will work: - Page HTML contains article content when fetched with `curl` or `requests` - No heavy JS framework signals in the HTML (no `
`, no `
` with empty body) - Articles are visible in `view-source:` **Reference generator:** `feed_generators/ollama_blog.py` (simplest), `feed_generators/blogsurgeai_feed_generator.py` (more complete), `feed_generators/paulgraham_blog.py` Use `type: requests` in `feeds.yaml`. Proceed to Step 1. --- #### Case D: Dynamic site (JavaScript-rendered content) Signals that Selenium is required: - `curl`/`requests` returns a near-empty body or a loading spinner - HTML contains `
`, `
`, or similar SPA shell - Content only appears after JS execution **Reference generators:** `feed_generators/xainews_blog.py` (Selenium + cache), `feed_generators/anthropic_news_blog.py` (Selenium + cache + incremental), `feed_generators/mistral_blog.py` Use `type: selenium` in `feeds.yaml`. Proceed to Step 1. --- ### Step 1: Review Existing Feed Generators **Always read the reference generator(s) for your case before writing any code:** ```bash # For static sites cat feed_generators/ollama_blog.py cat feed_generators/blogsurgeai_feed_generator.py # For dynamic/Selenium sites cat feed_generators/xainews_blog.py cat feed_generators/anthropic_news_blog.py ``` Study these to understand: - Import structure and shared `utils` helpers - `FEED_NAME` and `BLOG_URL` constants - Date parsing patterns and fallback chains - Article extraction logic and CSS selectors - Cache + incremental update pattern (Selenium generators) - Error handling approaches ### Step 2: Analyze the Blog Source 1. **Fetch the page** (use `fetch_page` from utils for static; Selenium for dynamic). 2. **Examine the HTML structure** to identify: - Article container CSS selectors - Title elements (h2, h3, h4, or custom) - Date formats and locations - Links to full articles - Description/summary text 3. **Handle access issues**: - If the site blocks automated requests (403/429), work with a local HTML file first - The user can provide HTML via browser's "Save Page As" - Support both local file and web fetching modes in the final script ### Step 3: Create the Feed Generator Script Create `feed_generators/_blog.py` following the reference for your case. **Naming conventions:** - Script: `feed_generators/{site_name}_blog.py` (e.g. `acme_blog.py`) - Feed output: `feeds/feed_{site_name}.xml` (e.g. `feed_acme.xml`) - `FEED_NAME` constant: `"{site_name}"` (e.g. `"acme"`) **Required for all generators:** - `FEED_NAME` and `BLOG_URL` constants at module level - `setup_logging()` from utils - Robust date parsing with multiple format fallback (see `xainews_blog.py`) - Article deduplication (track seen links with a set) - Per-article error handling: log warning and continue, never crash the full run - Articles sorted newest-first before feed generation **Additional requirements for Selenium generators:** - Use `setup_selenium_driver()` from utils - Use `load_cache()` / `save_cache()` / `merge_entries()` from utils for incremental updates - Support `--full` flag via `argparse` for full-reset runs (see `anthropic_news_blog.py`) - Use `sort_posts_for_feed()` from utils See [Reference Examples by Type](#reference-examples-by-type) for full structural details. ### Step 4: Update feeds.yaml Add an entry to `feeds.yaml` in alphabetical order by key: **For static (requests) sites:** ```yaml site_name: script: site_name_blog.py type: requests blog_url: https://example.com/blog ``` **For dynamic (Selenium) sites:** ```yaml site_name: script: site_name_blog.py type: selenium blog_url: https://example.com/blog ``` ### Step 5: Add Makefile Target Add targets to `makefiles/feeds.mk` in alphabetical order. **For static (requests) sites:** ```makefile .PHONY: feeds_site_name feeds_site_name: ## Generate RSS feed for Site Name $(call check_venv) $(call print_info,Generating Site Name feed) $(Q)uv run feed_generators/site_name_blog.py $(call print_success,Site Name feed generated) ``` **For dynamic (Selenium) sites — always include both incremental and full-reset targets:** ```makefile .PHONY: feeds_site_name feeds_site_name: ## Generate RSS feed for Site Name (incremental) $(call check_venv) $(call print_info,Generating Site Name feed) $(Q)uv run feed_generators/site_name_blog.py $(call print_success,Site Name feed generated) .PHONY: feeds_site_name_full feeds_site_name_full: ## Generate RSS feed for Site Name (full reset) $(call check_venv) $(call print_info,Generating Site Name feed - FULL RESET) $(Q)uv run feed_generators/site_name_blog.py --full $(call print_success,Site Name feed generated - full reset) ``` ### Step 6: Update README Add a row to the table in `README.md` in **alphabetical order** by blog name. **For scraped feeds** (Cases C and D): ```markdown | [Site Name](https://example.com/blog) | [feed_site_name.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_site_name.xml) | ``` **For native/official feeds** (Cases A and B): ```markdown | [Site Name](https://example.com) | [Official RSS](https://example.com/feed.xml) | ``` The raw GitHub URL format must be exactly: `https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_{name}.xml` ### Step 7: Test and Verify **Run the generator:** ```bash # Static sites uv run feed_generators/site_name_blog.py # Dynamic sites (incremental) uv run feed_generators/site_name_blog.py # Dynamic sites (full reset) uv run feed_generators/site_name_blog.py --full ``` **Verify output:** ```bash ls -la feeds/feed_site_name.xml head -50 feeds/feed_site_name.xml ``` **Validate the feed:** ```bash uv run feed_generators/validate_feeds.py ``` **Run via Makefile:** ```bash make feeds_site_name ``` **Integration checklist before declaring done:** - [ ] Script follows naming pattern: `feed_generators/{name}_blog.py` - [ ] Output file follows pattern: `feeds/feed_{name}.xml` - [ ] Entry added to `feeds.yaml` with correct `type` - [ ] Makefile target(s) added to `makefiles/feeds.mk` (Selenium: both incremental + `_full`) - [ ] README row added in alphabetical order with correct raw GitHub URL - [ ] `validate_feeds.py` passes with no errors - [ ] Articles are sorted newest-first - [ ] Duplicate articles are filtered out - [ ] Individual article failures are caught and logged (don't crash the run) ## Reference Examples by Type ### Type 1: Static (requests + BeautifulSoup) **Simplest:** `feed_generators/ollama_blog.py` - Minimal imports, straightforward `fetch_page` + BeautifulSoup - Good starting point when the HTML structure is clean **More complete:** `feed_generators/blogsurgeai_feed_generator.py` - `fetch_page` + BeautifulSoup + `dateutil.parser` - Better date handling, good error patterns **Complex static with local-file fallback:** `feed_generators/paulgraham_blog.py` ### Type 2: Dynamic (Selenium + cache) **Selenium + cache, no local-file fallback:** `feed_generators/mistral_blog.py` - Minimal Selenium setup - Good for simple JS-rendered pages **Selenium + cache + incremental + argparse:** `feed_generators/xainews_blog.py` - Full incremental update pattern with `--full` reset flag - Use this as the base template for most Selenium generators **Selenium + cache + incremental + multiple entry points:** `feed_generators/anthropic_news_blog.py` - Same as xainews but handles multiple sections from one site - Reference when a single domain has multiple feeds (e.g. `/news`, `/research`, `/engineering`) ### Type 3: Multiple feeds from one site **Reference:** `feed_generators/anthropic_eng_blog.py`, `feed_generators/anthropic_research_blog.py` - Each section gets its own `FEED_NAME` and script - Share the Selenium driver setup pattern - Add separate `feeds.yaml` entries and Makefile targets per feed ## Common Patterns ### Official RSS Detection (Case B — run before writing any code) ```python import requests from bs4 import BeautifulSoup def check_native_feed(url): resp = requests.get(url, timeout=10) soup = BeautifulSoup(resp.text, "html.parser") link = soup.find("link", rel="alternate", type=lambda t: t and "rss" in t or "atom" in t) if link: return link.get("href") # Try common paths for path in ["/feed", "/rss.xml", "/atom.xml", "/feed.xml", "/rss"]: probe = requests.head(url.rstrip("/") + path, timeout=5) if probe.status_code == 200: return url.rstrip("/") + path return None ``` ### Incremental Updates (Selenium generators) See `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. ### Robust Date Parsing ```python DATE_FORMATS = [ "%B %d, %Y", # January 15, 2024 "%b %d, %Y", # Jan 15, 2024 "%Y-%m-%d", # 2024-01-15 "%d %B %Y", # 15 January 2024 "%B %Y", # January 2024 ] def parse_date(date_text): for fmt in DATE_FORMATS: with contextlib.suppress(ValueError): return datetime.strptime(date_text.strip(), fmt).replace(tzinfo=pytz.UTC) return stable_fallback_date() # from utils ``` ### Local File Fallback (for blocked sites) ```python import argparse, sys def main(): parser = argparse.ArgumentParser() parser.add_argument("html_file", nargs="?", help="Local HTML file (optional)") args = parser.parse_args() if args.html_file: with open(args.html_file) as f: html = f.read() else: html = fetch_page(BLOG_URL) ... ``` ## Troubleshooting ### No articles found - Verify CSS selectors match actual HTML structure - Check if content is dynamically loaded → switch to Selenium (Case D) - Add debug logging to show what selectors find ### Date parsing failures - Add the specific format to `DATE_FORMATS` list - Use `stable_fallback_date()` from utils as the final fallback ### Blocked requests (403/429 errors) - Save page locally with browser "Save Page As" - Use local file mode for development - Try different `User-Agent` headers in `fetch_page` - If consistently blocked, switch to Selenium (Case D) ================================================ FILE: .agents/skills/rss-feed-review/SKILL.md ================================================ --- name: cmd-rss-feed-review description: 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. disable-model-invocation: true --- # RSS Feed Review Review RSS feed generators and their output XML for correctness, robustness, and adherence to project conventions. ## Instructions 1. **Determine scope** — review all feed generators by default, or a specific one if the user specifies. 2. **Read the target generator(s)** and their corresponding `feeds/feed_*.xml` output files. 3. **Read `feed_generators/utils.py`** to understand shared helpers. 4. **Evaluate against the checklists below.** For every finding, cite `file_path:line_number`. 5. **If everything looks good**, say so briefly. ## Generator Code Review ### Selectors & Parsing - Are CSS selectors specific enough to survive minor site redesigns? - Are selectors targeting semantic elements (article, h2) over generated class names? - Is there fallback logic if a selector returns no results? ### Error Handling - Does `fetch_*` use `timeout=` on requests? - Are HTTP errors handled (`response.raise_for_status()` or status check)? - Are Selenium waits using explicit waits (`WebDriverWait`) rather than `time.sleep()`? - Is the Selenium driver properly closed in a `finally` block? ### Feed Link Setup **Critical convention** (from AGENTS.md): ```python from utils import setup_feed_links setup_feed_links(fg, blog_url="https://...", feed_name="...") ``` - The main `` must point to the original blog URL, NOT the feed URL - `rel="self"` must be set **first**, `rel="alternate"` must be set **last** - Generators should use the `setup_feed_links()` helper from `utils.py` - Flag any generator that sets links manually instead of using the helper ### Cache Logic (Pagination & Selenium patterns only) - Is cache loaded before fetching new articles? - Are articles deduped by URL before saving? - Is the cache sorted by date descending? - Does the `--full` flag correctly bypass incremental logic? ### Pattern Compliance - **Simple Static**: No cache needed, fetches all posts each run - **Pagination + Caching**: URL-based pagination with JSON cache in `cache/` - **Selenium + Click**: Uses `undetected-chromedriver`, clicks load-more buttons, caches results - Is the generator using the right pattern for how the target site loads content? ## Feed XML Output Review ### Structure - Does the feed have a ``, `<link>`, and `<description>` in `<channel>`? - Does every `<item>` have at least `<title>`, `<link>`, and `<pubDate>`? - Is there an `<atom:link rel="self">` pointing to the feed URL? - Does the main `<link>` point to the blog (not the feed file)? ### Content Quality - Are there 0 items? (EMPTY — likely broken scraper) - Is the newest item older than 60 days? (STALE — selectors may have broken) - Are there duplicate `<link>` values across items? - Are dates parseable as RFC 2822 (`pubDate` format)? - Are titles non-empty and non-duplicated? ### Encoding - Is the XML declaration present with `encoding="utf-8"`? - Are special characters properly escaped in titles and descriptions? ## Output Format For each finding: ``` [SEVERITY] file_path:line_number — description ``` Severities: `ERROR` (broken/will fail), `WARN` (fragile/convention violation), `INFO` (suggestion) End with a summary table: | Feed | Generator | XML Output | Issues | |------|-----------|------------|--------| | name | OK/WARN/ERROR | OK/WARN/ERROR | brief note | ================================================ FILE: .editorconfig ================================================ root = true [*] charset = utf-8 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.py] indent_style = space indent_size = 4 [*.{yml,yaml}] indent_style = space indent_size = 2 [Makefile] indent_style = tab [*.mk] indent_style = tab [*.md] trim_trailing_whitespace = false ================================================ FILE: .github/CODEOWNERS ================================================ * @Olshansk @oborchers ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: olshansk github: oborchers patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry polar: # Replace with a single Polar username buy_me_a_coffee: olshansky thanks_dev: # Replace with a single thanks.dev username custom: grove.city/olshansky ================================================ FILE: .github/ISSUE_TEMPLATE/request_rss_feed.md ================================================ --- name: Request a new RSS feed about: Request an RSS feed for a new blog title: "[RSS Feed Request] Blog Name" labels: enhancement assignees: '' --- ## Blog Information **Blog Name:** <!-- Please provide the name of the blog --> **Blog URL:** <!-- Please provide the URL of the blog --> ## Additional Information **Description:** <!-- Any additional information or description about the blog --> **Note:** Please ensure that you provide the link to the actual blog. ================================================ FILE: .github/PULL_REQUEST_TEMPLATE/add_new_feed.md ================================================ --- name: Add a new RSS feed about: Contribute a new RSS feed to the repository title: "[New RSS Feed] <Feed Name>" labels: new-feed assignees: '' --- ## Checklist - [ ] Add the `new-feed` label - [ ] Update the `Makefile` with a new target for generating the feed - [ ] Ensure the title of the pull request is `[New RSS Feed] <Feed Name>` - [ ] Do anything else you deem proper or idiomatic for a good developer experience ## Description Please provide a brief description of the new RSS feed and any additional information that might be relevant. ================================================ FILE: .github/dependabot.yml ================================================ version: 2 updates: - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" groups: actions: patterns: ["*"] - package-ecosystem: "uv" directory: "/" schedule: interval: "weekly" groups: minor-patch: update-types: ["minor", "patch"] ================================================ FILE: .github/pull_request_template.md ================================================ ## Summary <!-- What does this PR do and why? --> ## Changes <!-- Key changes, bullet points preferred --> - ## Test plan - [ ] Ran affected feed generators locally - [ ] Validated feed XML output (`uv run feed_generators/validate_feeds.py`) - [ ] No existing feeds broken ================================================ FILE: .github/workflows/cleanup_deprecated_feeds.yml ================================================ name: Cleanup Deprecated Feeds # Stage 2 of the feed retirement lifecycle (Stage 1 is human-driven in # deprecate_feed.py + scraper removal). This workflow deletes feed XMLs whose # tombstone notice is older than 90 days, then pushes the deletion directly to # main. Requires main to accept bot pushes from github-actions[bot]; if branch # protection is changed to require PR review, convert this step to open a PR # (peter-evans/create-pull-request) instead. on: schedule: # First of every month, noon UTC. - cron: "0 12 1 * *" workflow_dispatch: concurrency: group: cleanup-deprecated-feeds cancel-in-progress: false permissions: contents: write jobs: cleanup: runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v6 - name: Install uv and Python uses: astral-sh/setup-uv@v8.0.0 with: enable-cache: true python-version: "3.11" - name: Delete expired deprecated feeds run: | set -e uv sync uv run feed_generators/cleanup_deprecated_feeds.py --apply - name: Commit and push deletions if: github.ref == 'refs/heads/main' run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' git add -A feeds/ if git diff --staged --quiet; then echo "No deprecated feeds expired; nothing to commit" else git commit -m 'Auto-cleanup: remove expired deprecated feeds' git push || { git pull --rebase && git push; } fi ================================================ FILE: .github/workflows/label_new_feed.yml ================================================ name: Label New Feed PRs on: pull_request_target: types: [opened, edited, reopened] jobs: add-label: runs-on: ubuntu-latest steps: - name: Check PR title id: check_title run: | if echo '${{ github.event.pull_request.title }}' | grep -q '\[New RSS Feed\]'; then echo "has_tag=true" >> $GITHUB_OUTPUT else echo "has_tag=false" >> $GITHUB_OUTPUT fi - name: Add label if: steps.check_title.outputs.has_tag == 'true' uses: actions/github-script@v7 with: script: | await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, labels: ['new-feed'] }) ================================================ FILE: .github/workflows/lint.yml ================================================ name: Lint on: pull_request: paths: - "**.py" - "pyproject.toml" push: branches: [main] paths: - "**.py" - "pyproject.toml" jobs: lint: runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Checkout repository uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.11" - name: Install uv uses: astral-sh/setup-uv@v8.0.0 with: enable-cache: true - name: Lint and format check run: | uv sync --group dev uv run ruff check . uv run ruff format --check . ================================================ FILE: .github/workflows/run_feeds.yml ================================================ name: Run Feeds on: schedule: - cron: "0 * * * *" workflow_dispatch: concurrency: group: request-feeds cancel-in-progress: true jobs: run-feeds: runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout repository uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.11" - name: Install uv uses: astral-sh/setup-uv@v8.0.0 with: enable-cache: true - name: Install dependencies and run feeds timeout-minutes: 20 run: | set -e uv sync uv run feed_generators/run_all_feeds.py --skip-selenium - name: Commit and push feeds if: github.ref == 'refs/heads/main' run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' git add feeds/*.xml git stash git pull --rebase || { echo "Rebase failed, aborting and retrying with merge"; git rebase --abort 2>/dev/null; git pull; } git stash pop || true git add feeds/*.xml if git diff --staged --quiet; then echo "No changes to commit" else git commit -m 'Update RSS feeds' git push || { git pull --rebase && git push; } fi ================================================ FILE: .github/workflows/run_selenium_feeds.yml ================================================ name: Run Selenium Feeds on: schedule: - cron: "30 * * * *" workflow_dispatch: concurrency: group: selenium-feeds cancel-in-progress: true jobs: run-selenium-feeds: runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Checkout repository uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.11" - name: Install uv uses: astral-sh/setup-uv@v8.0.0 with: enable-cache: true - name: Install Chrome for Selenium uses: browser-actions/setup-chrome@v2 with: chrome-version: stable install-chromedriver: true - name: Install dependencies and run Selenium feeds timeout-minutes: 45 run: | set -e uv sync uv run feed_generators/run_all_feeds.py --selenium-only - name: Commit and push feeds if: github.ref == 'refs/heads/main' run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' git add feeds/*.xml git stash git pull --rebase || { echo "Rebase failed, aborting and retrying with merge"; git rebase --abort 2>/dev/null; git pull; } git stash pop || true git add feeds/*.xml if git diff --staged --quiet; then echo "No changes to commit" else git commit -m 'Update RSS feeds (Selenium)' git push || { git pull --rebase && git push; } fi ================================================ FILE: .github/workflows/test_feed.yml ================================================ name: Test Feed Generation on: workflow_dispatch: jobs: test-feed: runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.11" - name: Install uv uses: astral-sh/setup-uv@v8.0.0 with: enable-cache: true - name: Install dependencies and run test feed run: | set -e uv sync uv run feed_generators/ollama_blog.py - name: Upload test feed artifact uses: actions/upload-artifact@v7 with: name: feed_test path: feeds/feed_ollama.xml ================================================ FILE: .github/workflows/validate_feeds.yml ================================================ name: Validate Feeds on: workflow_run: workflows: ["Run Feeds", "Run Selenium Feeds"] types: [completed] workflow_dispatch: jobs: validate: if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v6 with: ref: main - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.11" - name: Install uv uses: astral-sh/setup-uv@v8.0.0 with: enable-cache: true - name: Install dependencies and validate all feeds run: | uv sync uv run feed_generators/validate_feeds.py ================================================ FILE: .gitignore ================================================ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ cover/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder .pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # UV # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. #uv.lock # poetry # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control #poetry.lock # pdm # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. #pdm.lock # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it # in version control. # https://pdm.fming.dev/latest/usage/project/#working-with-version-control .pdm.toml .pdm-python .pdm-build/ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # Cython debug symbols cython_debug/ # PyCharm # JetBrains specific template is maintained in a separate JetBrains.gitignore that can # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ # PyPI configuration file .pypirc # Claude Sync .claudesync # Visual Studio .vscode # HTML *.html # Cache (keep .gitkeep but ignore JSON cache files) cache/*.json # Agent tool configs (ignore contents, whitelist skill symlinks) .claude/* !.claude/skills/ .claude/skills/* !.claude/skills/cmd-rss-feed-generator !.claude/skills/rss-feed-review .codex/* !.codex/skills/ .codex/skills/* !.codex/skills/cmd-rss-feed-generator !.codex/skills/rss-feed-review .codex-home/* !.codex-home/skills/ .codex-home/skills/* !.codex-home/skills/cmd-rss-feed-generator !.codex-home/skills/rss-feed-review # Agent skills evals (never commit) .agents/skills/*/evals/ PR_DESCRIPTION.md ================================================ FILE: .markdownlint.json ================================================ { "MD033": { "allowed_elements": [ "Tabs", "TabItem", "ReactPlayer", "details", "summary", "div", "br", "img", "a", "h1", "h2", "h3", "h4", "h5", "h6" ] }, "MD013": false, "MD046": false, "MD036": false } ================================================ FILE: .pre-commit-config.yaml ================================================ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-toml - id: check-merge-conflict - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.15.10 hooks: - id: ruff args: [--fix] - id: ruff-format ================================================ FILE: AGENTS.md ================================================ # AGENTS.md <!-- omit in toc --> Instructions for Claude Code and contributors working on this repository. ## Table of Contents <!-- omit in toc --> - [Project Overview](#project-overview) - [Commands](#commands) - [Architecture](#architecture) - [Feed Generator Patterns](#feed-generator-patterns) - [When to Use Each Pattern](#when-to-use-each-pattern) - [Feed Link Setup (Important)](#feed-link-setup-important) - [Adding a New Feed](#adding-a-new-feed) - [Step 1: Analyze the Target Blog](#step-1-analyze-the-target-blog) - [Step 2: Download HTML Sample](#step-2-download-html-sample) - [Step 3: Generate the Feed Script](#step-3-generate-the-feed-script) - [Step 4: Test Locally](#step-4-test-locally) - [Step 5: Register the Feed](#step-5-register-the-feed) - [Step 6: PR Checklist](#step-6-pr-checklist) - [Deprecating a Feed](#deprecating-a-feed) - [Troubleshooting](#troubleshooting) - [GitHub Actions](#github-actions) ## Project Overview RSS 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. ## Commands ```bash # Environment setup make env_setup # Install dependencies (uses uv sync) make dev_setup # Install dev dependencies + pre-commit hooks # Generate feeds make feeds_generate_all # Run all feed generators make feeds_<name> # Run specific feed (e.g., feeds_ollama, feeds_anthropic_news) # Development make dev_lint # Check code with ruff make dev_lint_fix # Auto-fix and format with ruff make dev_format # Alias for dev_lint_fix make dev_test_feed # Run test feed generator # Run single generator directly uv run feed_generators/ollama_blog.py # CI/CD make ci_trigger_feeds_workflow # Trigger GitHub Action manually make ci_run_feeds_workflow_local # Test workflow locally with act ``` ## Architecture ``` feed_generators/ # Python scripts that scrape blogs and generate RSS run_all_feeds.py # Orchestrator that runs all generators utils.py # Shared utilities (setup_feed_links, get_project_root, etc.) <source>_blog.py # Individual feed generators feeds/ # Output directory for feed_*.xml files cache/ # JSON cache for paginated/dynamic feeds makefiles/ # Modular Makefile includes (feeds.mk, env.mk, dev.mk, ci.mk) ``` ### Feed Generator Patterns Three patterns exist based on how the target site loads content: #### 1. Simple Static (Default) <!-- omit in toc --> For blogs where all content loads on first request. **Examples**: `ollama_blog.py`, `paulgraham_blog.py`, `hamel_blog.py` **Key functions**: - `fetch_blog_content(url)` - HTTP request with User-Agent header - `parse_blog_html(html)` - BeautifulSoup parsing for posts - `generate_rss_feed(posts)` - Create feed using `feedgen` - `save_rss_feed(fg, name)` - Write to `feeds/feed_{name}.xml` **Cache**: Not needed (all posts fetched each run) #### 2. Pagination + Caching <!-- omit in toc --> For blogs with "Load More" or pagination that uses URL query params (`?page=2`). **Examples**: `cursor_blog.py`, `dagster_blog.py` **Key functions**: - `load_cache()` / `save_cache(posts)` - JSON persistence in `cache/<source>_posts.json` - `merge_posts(new, cached)` - Dedupe by URL, merge, sort by date - `fetch_all_pages()` - Follow pagination until no next link **Cache behavior**: - **First run / `--full` flag**: Fetch all pages, populate cache - **Incremental (default)**: Fetch page 1 only, merge with cache - **Dedupe**: By URL, sorted by date descending #### 3. Selenium + Click "Load More" <!-- omit in toc --> For JS-heavy sites where content loads dynamically via JavaScript button clicks. **Examples**: `anthropic_news_blog.py` (reference implementation), `anthropic_research_blog.py`, `openai_research_blog.py`, `xainews_blog.py` **Key functions**: - `setup_selenium_driver()` - Headless Chrome with `undetected-chromedriver` - `fetch_news_content(max_clicks)` - Load page, click buttons, return final HTML - `load_cache()` / `save_cache(articles)` - JSON persistence in `cache/<source>_posts.json` - `merge_articles(new, cached)` - Dedupe by link, merge, sort by date **Selenium specifics**: - Uses `undetected-chromedriver` to avoid bot detection - Clicks "See more"/"Load more" button repeatedly - Waits for content to load between clicks - `max_clicks` parameter controls depth (20 for full, 2-3 for incremental) **Cache behavior** (see `anthropic_news_blog.py` for reference): - **First run / `--full` flag**: Click up to 20 times, fetch all articles, populate cache - **Incremental (default)**: Click 2-3 times (recent articles), merge with cache - **Dedupe**: By URL, sorted by date descending ### When to Use Each Pattern | Site Behavior | Pattern | Example | Cache? | |--------------|---------|---------|--------| | All posts on single page | Simple Static | `ollama_blog.py` | No | | URL-based pagination (`?page=2`) | Pagination + Caching | `dagster_blog.py` | Yes | | JS button loads more content | Selenium + Click | `anthropic_news_blog.py` | Yes | | JS-rendered page (curl returns empty shell) | Selenium + Wait | `xainews_blog.py` | Yes | **Key libraries**: `requests`, `beautifulsoup4`, `feedgen`, `selenium`, `undetected-chromedriver` ### Feed Link Setup (Important) The main `<link>` element must point to the original blog, not the feed URL. Use the helper: ```python from utils import setup_feed_links fg = FeedGenerator() # ... set title, description, etc. setup_feed_links(fg, blog_url="https://example.com/blog", feed_name="example") ``` **Why this matters**: In `feedgen`, link order determines which URL becomes the main `<link>`: - `rel="self"` must be set **first** → becomes `<atom:link rel="self">` - `rel="alternate"` must be set **last** → becomes the main `<link>` Wrong order produces `<link>https://.../feed_example.xml</link>` instead of the blog URL. ## Adding a New Feed ### Step 1: Analyze the Target Blog Before writing code, determine which pattern to use: 1. **Open the blog** in your browser 2. **Check for pagination**: - URL changes to `?page=2` or `/page/2` → **Pattern 2 (Pagination)** - No URL change but "Load More" button exists → **Pattern 3 (Selenium)** - All posts visible on single page → **Pattern 1 (Simple Static)** 3. **Check for JavaScript loading**: - Open DevTools → Network tab → Reload - If posts appear after JS execution (XHR requests) → **Pattern 3 (Selenium)** - If posts are in initial HTML → **Pattern 1 or 2** ### Step 2: Download HTML Sample ```bash # For static sites (Pattern 1 or 2) curl -o sample.html "https://example.com/blog" # For JS-heavy sites (Pattern 3) # Use browser: View Page Source won't work # Instead: DevTools → Elements → Copy outer HTML after page loads ``` ### Step 3: Generate the Feed Script Use Claude Code with the generator prompt: ```bash Use /cmd-rss-feed-generator to convert @sample.html to a RSS feed for https://example.com/blog ``` Claude will: - Analyze the HTML structure - Choose the appropriate pattern - Generate `feed_generators/<source>_blog.py` ### Step 4: Test Locally ```bash # Install dependencies make env_setup # Run the generator uv run feed_generators/<source>_blog.py # Verify output cat feeds/feed_<source>.xml | head -50 # For paginated feeds, test full fetch uv run feed_generators/<source>_blog.py --full ``` **Verify**: - [ ] Feed XML is valid (no parsing errors) - [ ] `<link>` points to blog URL, not feed URL - [ ] Posts have titles, dates, and links - [ ] Dates are in correct order (newest first) ### Step 5: Register the Feed 1. **Add to `feeds.yaml`** (the feed registry): ```yaml <source>: script: <source>_blog.py type: requests # or "selenium" for JS-heavy sites blog_url: https://example.com/blog ``` 2. **Add Make target** in `makefiles/feeds.mk`: ```makefile .PHONY: feeds_<source> feeds_<source>: ## Generate RSS feed for <Source Name> $(call check_venv) $(call print_info,Generating <Source Name> feed) $(Q)uv run feed_generators/<source>_blog.py $(call print_success,<Source Name> feed generated) ``` 3. **Update README.md table** (alphabetical order): ```markdown | [Source Name](https://example.com/blog) | [feed_<source>.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_<source>.xml) | ``` ### Step 6: PR Checklist Before submitting your PR, verify: - [ ] `make dev_format` passes (code formatting) - [ ] `uv run feed_generators/<source>_blog.py` runs without errors - [ ] `feeds/feed_<source>.xml` is generated and valid - [ ] Feed registered in `feeds.yaml` - [ ] Make target added to `makefiles/feeds.mk` - [ ] README.md table updated - [ ] For paginated/dynamic feeds: cache file created in `cache/` on first run - [ ] Feed `<link>` points to original blog (not the XML feed URL) ## Deprecating a Feed When 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. ### Stage 1: Inject the notice and tear down the code (manual, one PR) 1. **Inject a sunset notice into the feed XML**: ```bash uv run feed_generators/deprecate_feed.py \ --feed=<name> \ --message="Site X now publishes an official RSS feed." \ --alternative="https://example.com/feed.xml" ``` 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. 2. **Remove everything except the XML**, in the same PR: - Delete `feed_generators/<name>_blog.py`. - Remove the `<name>:` entry from `feeds.yaml`. - Remove the `feeds_<name>` target (and any `_full` variant) from `makefiles/feeds.mk`. - Remove the `<name>` row from the README table (or update it to point at the official feed only). - `cache/<name>_posts.json` is gitignored; nothing to do there. 3. **Leave `feeds/feed_<name>.xml`** in place. It now carries the notice as its newest `<item>` plus the historical posts. Subscribers can read both. ### Stage 2: Automatic deletion (workflow, ~90 days later) `.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. To preview what would be removed without touching anything: ```bash uv run feed_generators/cleanup_deprecated_feeds.py ``` To force-test deletion locally (reversible with `git checkout`): ```bash uv run feed_generators/cleanup_deprecated_feeds.py --apply --threshold-days=0 ``` ## Troubleshooting **"No posts found" or empty feed** - HTML structure may have changed; re-download sample and update selectors - For Selenium: increase wait times or check if site blocks headless browsers **Feed `<link>` shows XML URL instead of blog URL** - Use `setup_feed_links()` helper from `utils.py` - Ensure `rel="self"` is set before `rel="alternate"` **Selenium bot detection** - `undetected-chromedriver` should handle most cases - Try increasing wait times between clicks - Some sites may require additional headers or cookies **Cache not updating** - Delete `cache/<source>_posts.json` and run with `--full` - Check `merge_posts()` deduplication logic **Date parsing errors** - Add the date format to the `date_formats` list - Use `stable_fallback_date()` for entries without parseable dates **Empty feed after Selenium run (0 items)** - The site is JS-rendered but `curl` returns a minimal HTML shell — confirm with `curl -sL <url> | wc -c` (< 10KB = JS-rendered) - Capture Selenium page source to a file and inspect actual selectors: element classes on JS-rendered pages often differ from View Source - Always call `deserialize_entries()` on cached data before passing to `merge_entries()` — ISO strings don't sort correctly as datetimes ## GitHub Actions - `run_feeds.yml` - Runs hourly, executes `run_all_feeds.py`, commits updated XML files - `test_feed.yml` - Tests feed generation on PRs (runs `ollama_blog.py`) ================================================ FILE: CLAUDE.md ================================================ # CLAUDE.md ⚠️ This file is intentionally minimal. **Authoritative project instructions live in `AGENTS.md`.** You must: 1. Open and follow `AGENTS.md` before doing any work. 2. Treat `AGENTS.md` as the single source of truth for all operations. 3. Update `AGENTS.md` (not this file) when guidelines/architecture/standards change. ➡️ Read now: [AGENTS.md](./AGENTS.md) ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing ## Dev Setup ```bash uv sync --group dev pre-commit install ``` Run `make help` to see all available targets with descriptions. ## Running Feeds **Run all request-based feeds:** ```bash uv run feed_generators/run_all_feeds.py --skip-selenium ``` **Run a single feed by name** (from `feeds.yaml` registry): ```bash uv run feed_generators/run_all_feeds.py --feed=ollama uv run feed_generators/run_all_feeds.py --feed=dagster --full # full reset ``` **Or run the script directly:** ```bash uv run feed_generators/ollama_blog.py uv run feed_generators/dagster_blog.py --full ``` ## Code Style This 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). **Check only:** ```bash make dev_lint ``` **Auto-fix + format:** ```bash make dev_lint_fix ``` ## Adding a New Feed See [AGENTS.md](./AGENTS.md) for the complete guide on creating feed generators. **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. **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. ### Agent Skills This repo includes two [Claude Code skills](.agents/skills/) to streamline feed development: - **`/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. - **`/rss-feed-review`** — Review feed generators and their XML output for broken selectors, missing error handling, stale feeds, and convention violations. ## Pull Requests 1. Branch from `main` 2. Follow the existing generator patterns in `feed_generators/` 3. Test your feed locally before submitting 4. Reference any related issues in the PR description ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2025 Daniel Olshansky Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: Makefile ================================================ ######################### ### Makefile (root) ### ######################### .DEFAULT_GOAL := help # Patterns for classified help categories HELP_PATTERNS := \ '^help:' \ '^env_.*:' \ '^feeds_.*:' \ '^dev_.*:' \ '^ci_.*:' \ '^clean_.*:' \ '^debug_vars:' .PHONY: help help: ## Show all available targets with descriptions @printf "\n" @printf "$(BOLD)$(CYAN)📋 RSS Feed Generator - Makefile Targets$(RESET)\n" @printf "\n" @printf "$(BOLD)=== 📋 Information & Discovery ===$(RESET)\n" @grep -h -E '^(help|help-unclassified):.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "$(CYAN)%-40s$(RESET) %s\n", $$1, $$2}' @printf "\n" @printf "$(BOLD)=== 🐍 Environment Setup ===$(RESET)\n" @grep -h -E '^env_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = ":.*?## "}; {printf "$(CYAN)%-40s$(RESET) %s\n", $$1, $$2}' | sort -u @printf "\n" @printf "$(BOLD)=== 🛠️ Development ===$(RESET)\n" @grep -h -E '^dev_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = ":.*?## "}; {printf "$(CYAN)%-40s$(RESET) %s\n", $$1, $$2}' | sort -u @printf "\n" @printf "$(BOLD)=== 🚀 CI/CD ===$(RESET)\n" @grep -h -E '^ci_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = ":.*?## "}; {printf "$(CYAN)%-40s$(RESET) %s\n", $$1, $$2}' | sort -u @printf "\n" @printf "$(BOLD)=== 🧹 Cleaning ===$(RESET)\n" @grep -h -E '^clean_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = ":.*?## "}; {printf "$(CYAN)%-40s$(RESET) %s\n", $$1, $$2}' | sort -u @printf "\n" @printf "$(BOLD)=== 📡 RSS Feed Generation ===$(RESET)\n" @grep -h -E '^feeds_.*:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = ":.*?## "}; {printf "$(CYAN)%-40s$(RESET) %s\n", $$1, $$2}' | sort -u @printf "\n" @printf "$(YELLOW)Usage:$(RESET) make <target>\n" @printf "\n" .PHONY: help-unclassified help-unclassified: ## Show all unclassified targets @printf "\n" @printf "$(BOLD)$(CYAN)📦 Unclassified Targets$(RESET)\n" @printf "\n" @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | sed 's/:.*//g' | sort -u > /tmp/all_targets.txt @( \ for pattern in $(HELP_PATTERNS); do \ grep -h -E "$pattern.*?## .*\$$" $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null || true; \ done \ ) | sed 's/:.*//g' | sort -u > /tmp/classified_targets.txt @comm -23 /tmp/all_targets.txt /tmp/classified_targets.txt | while read target; do \ grep -h -E "^$$target:.*?## .*\$$" $(MAKEFILE_LIST) ./makefiles/*.mk 2>/dev/null | awk 'BEGIN {FS = ":.*?## "}; {printf "$(CYAN)%-40s$(RESET) %s\n", $$1, $$2}'; \ done @rm -f /tmp/all_targets.txt /tmp/classified_targets.txt @printf "\n" ################ ### Imports ### ################ include ./makefiles/colors.mk include ./makefiles/common.mk include ./makefiles/env.mk include ./makefiles/feeds.mk include ./makefiles/dev.mk include ./makefiles/ci.mk ############################ ### Legacy Target Aliases ## ############################ # Maintain backwards compatibility with existing targets .PHONY: check-env check-env: ## (Legacy) Check if virtual environment is activated $(call check_venv) .PHONY: env_create env_create: env_setup ## (Legacy) Create virtual environment .PHONY: uvx_install uvx_install: env_setup ## (Legacy) Install dependencies .PHONY: clean clean: clean_env clean_feeds ## (Legacy) Clean all generated files .PHONY: py_format py_format: dev_format ## (Legacy) Format Python code .PHONY: generate_all_feeds generate_all_feeds: feeds_generate_all ## (Legacy) Generate all RSS feeds .PHONY: generate_anthropic_news_feed generate_anthropic_news_feed: feeds_anthropic_news ## (Legacy) Generate Anthropic News feed .PHONY: generate_anthropic_engineering_feed generate_anthropic_engineering_feed: feeds_anthropic_engineering ## (Legacy) Generate Anthropic Engineering feed .PHONY: generate_anthropic_research_feed generate_anthropic_research_feed: feeds_anthropic_research ## (Legacy) Generate Anthropic Research feed .PHONY: generate_anthropic_changelog_claude_code_feed generate_anthropic_changelog_claude_code_feed: feeds_anthropic_changelog_claude_code ## (Legacy) Generate Claude Code changelog feed .PHONY: generate_google_ai_feed generate_google_ai_feed: feeds_google_ai ## (Legacy) Generate Google AI feed .PHONY: generate_openai_research_feed generate_openai_research_feed: feeds_openai_research ## (Legacy) Generate OpenAI Research feed .PHONY: generate_ollama_feed generate_ollama_feed: feeds_ollama ## (Legacy) Generate Ollama feed .PHONY: generate_paulgraham_feed generate_paulgraham_feed: feeds_paulgraham ## (Legacy) Generate Paul Graham feed .PHONY: generate_blogsurgeai_feed generate_blogsurgeai_feed: feeds_blogsurgeai ## (Legacy) Generate Surge AI Blog feed .PHONY: generate_xainews_feed generate_xainews_feed: feeds_xainews ## (Legacy) Generate xAI News feed .PHONY: generate_thinkingmachines_feed generate_thinkingmachines_feed: feeds_thinkingmachines ## (Legacy) Generate Thinking Machines Lab feed .PHONY: test_feed_workflow test_feed_workflow: ci_test_workflow_local ## (Legacy) Test feed workflow locally .PHONY: test_feed_generate test_feed_generate: dev_test_feed ## (Legacy) Run test feed generator .PHONY: act_run_feeds_workflow act_run_feeds_workflow: ci_run_feeds_workflow_local ## (Legacy) Run feeds workflow locally .PHONY: gh_run_feeds_workflow gh_run_feeds_workflow: ci_trigger_feeds_workflow ## (Legacy) Trigger feeds workflow on GitHub .PHONY: generate_the_batch_feed generate_the_batch_feed: feeds_the_batch ## (Legacy) Generate The Batch feed ================================================ FILE: README.md ================================================ # RSS Feed Generator <!-- omit in toc --> > [!TIP] > 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! > [!NOTE] > 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) ## tl;dr Available RSS Feeds <!-- omit in toc --> Scraped feeds are generated hourly. "Official RSS" rows point to native feeds the blog now publishes directly. | Blog | Feed | | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | [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) | | [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) | | [Anthropic Engineering](https://www.anthropic.com/engineering) | [feed_anthropic_engineering.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_engineering.xml) | | [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) | | [Anthropic News](https://www.anthropic.com/news) | [feed_anthropic_news.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_news.xml) | | [Anthropic Research](https://www.anthropic.com/research) | [feed_anthropic_research.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_anthropic_research.xml) | | [Chander Ramesh's Writing](https://chanderramesh.com/writing) | [feed_chanderramesh.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_chanderramesh.xml) | | [Claude Blog](https://claude.com/blog) | [feed_claude.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_claude.xml) | | [Claude Code Changelog](https://code.claude.com/docs/en/changelog) | [Official RSS](https://code.claude.com/docs/en/changelog/rss.xml) | | [Cloudflare skills (commits/main)](https://github.com/cloudflare/skills) | [Official RSS](https://github.com/cloudflare/skills/commits/main.atom) | | [Cohere Blog](https://cohere.com/blog) | [feed_cohere.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_cohere.xml) | | [Cursor Blog](https://cursor.com/blog) | [feed_cursor.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_cursor.xml) | | [Dagster Blog](https://dagster.io/blog) | [feed_dagster.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_dagster.xml) | | [Google DeepMind Blog](https://deepmind.google/blog/) | [Official RSS](https://deepmind.google/blog/rss.xml) | | [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) | | [Groq Blog](https://groq.com/blog/) | [feed_groq.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_groq.xml) | | [Hamel Husain's Blog](https://hamel.dev/) | [Official RSS](https://hamel.dev/index.xml) | | [Interconnected (Matt Webb)](https://interconnected.org/home) | [Official RSS](https://interconnected.org/home/feed) | | [Mistral AI News](https://mistral.ai/news) | [feed_mistral.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_mistral.xml) | | [Ollama Blog](https://ollama.com/blog) | [feed_ollama.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_ollama.xml) | | [OpenAI Engineering](https://openai.com/news/engineering/) | [Official RSS](https://openai.com/news/engineering/rss.xml) | | [OpenAI Research](https://openai.com/news/research/) | [Official RSS](https://openai.com/blog/rss.xml) | | [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) | | [Perplexity Hub](https://www.perplexity.ai/hub) | [feed_perplexity_hub.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_perplexity_hub.xml) | | [Pinecone Blog](https://www.pinecone.io/blog/) | [feed_pinecone.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_pinecone.xml) | | [Simon Willison's Blog (Tools)](https://simonwillison.net/) | [Official RSS](https://simonwillison.net/atom/beats/tool/) | | [Supabase Blog](https://supabase.com/blog) | [Official RSS](https://supabase.com/rss.xml) | | [Surge AI Blog](https://www.surgehq.ai/blog) | [feed_blogsurgeai.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_blogsurgeai.xml) | | [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) | | [Thinking Machines Lab](https://thinkingmachines.ai/blog/) | [feed_thinkingmachines.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_thinkingmachines.xml) | | [Weaviate Blog](https://weaviate.io/blog) | [feed_weaviate.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_weaviate.xml) | | [Windsurf Blog](https://windsurf.com/blog) | [feed_windsurf_blog.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_blog.xml) | | [Windsurf Changelog](https://windsurf.com/changelog) | [feed_windsurf_changelog.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_windsurf_changelog.xml) | | [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) | | [xAI News](https://x.ai/news) | [feed_xainews.xml](https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_xainews.xml) | ### Planned <!-- omit in toc --> | Blog | Status | | -------------------------------------------------------------- | --------- | | [David Crawshaw](https://crawshaw.io/) | _planned_ | | [Engineering.fyi](https://engineering.fyi/) | _planned_ | | [Patrick Collison's Blog](https://patrickcollison.com/culture) | _planned_ | ### What is this? You know that blog you like that doesn't have an RSS feed and might never will? 🙌 **You can use this repo to create a RSS feed for it!** 🙌 ## Table of Contents <!-- omit in toc --> - [Quick Start](#quick-start) - [Subscribe to a Feed](#subscribe-to-a-feed) - [Request a new Feed](#request-a-new-feed) - [Create a new a Feed](#create-a-new-a-feed) - [Star History](#star-history) - [Ideas](#ideas) - [How It Works](#how-it-works) - [For Developers 👀 only](#for-developers--only) ## Quick Start ### Subscribe to a Feed - Go to the [feeds directory](./feeds). - Find the feed you want to subscribe to. - Use the **raw** link for your RSS reader. Example: ```text https://raw.githubusercontent.com/Olshansk/rss-feeds/main/feeds/feed_ollama.xml ``` - Use your RSS reader of choice to subscribe to the feed (e.g., [Blogtrottr](https://blogtrottr.com/)). ### Request a new Feed Want me to create a feed for you? [Open a GitHub issue](https://github.com/Olshansk/rss-feeds/issues/new?template=request_rss_feed.md) and include the blog URL. If I do, consider supporting my 🌟🧋 addiction by [buying me a coffee](https://buymeacoffee.com/olshansky). ## Create a new a Feed 1. Download the HTML of the blog you want to create a feed for. 2. Open Claude Code CLI 3. Tell claude to: ```bash Use /cmd-rss-feed-generator to convert @<html_file>.html to a RSS feed for <blog_url>. ``` ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=Olshansk/rss-feeds&type=Date)](https://star-history.com/#Olshansk/rss-feeds&Date) ## Ideas - **X RSS Feed**: Going to `x.com/{USER}/index.xml` should give an RSS feed of the user's tweets. ## How It Works ```mermaid flowchart TB subgraph GitHub["GitHub Repository"] action[[GitHub Action<br/>Hourly Cron Job]] runner{{"run_all_feeds.py"}} feeds["Feed Generators<br/>(*.py files)"] xml["Generated RSS Feeds<br/>(feed_*.xml)"] end subgraph External["External Services"] blogtrottr["Blogtrottr"] rssreaders["Other RSS Readers"] end action -->|"Triggers"| runner runner -->|"Executes"| feeds feeds -->|"Scrapes"| websites[("Blog Websites<br/>(HTML Content)")] websites -->|"Content"| feeds feeds -->|"Generates"| xml xml -->|"Updates"| repo["GitHub Repository<br/>Main Branch"] repo -->|"Pulls Feed"| blogtrottr repo -->|"Pulls Feed"| rssreaders style GitHub fill:#e6f3ff,stroke:#0066cc style External fill:#f9f9f9,stroke:#666666 style action fill:#ddf4dd,stroke:#28a745,color:#000000 style runner fill:#fff3cd,stroke:#ffc107,color:#000000 style feeds fill:#f8d7da,stroke:#dc3545,color:#000000 style xml fill:#d1ecf1,stroke:#17a2b8,color:#000000 style websites fill:#e2e3e5,stroke:#383d41,color:#000000 ``` ### For Developers 👀 only - Open source and community-driven 🙌 - Simple Python + GitHub Actions 🐍 - AI tooling for easy contributions 🤖 - Learn and contribute together 🧑‍🎓 - Streamlines the use of Claude, Claude Projects, and Claude Sync ================================================ FILE: cache/.gitkeep ================================================ ================================================ FILE: feed_generators/ai_first_podcast.py ================================================ """Generate RSS feed for the AI FIRST Podcast (https://ai-first.ai/podcast). Two-stage scraper: the listing page gives link + title, each episode page then provides the date and description via a JSON-LD PodcastEpisode schema. German-language podcast. """ import argparse import json import time from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import ( DEFAULT_HEADERS, deserialize_entries, fetch_page, load_cache, save_cache, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "ai_first_podcast" BLOG_URL = "https://ai-first.ai/podcast" BASE_URL = "https://ai-first.ai" DETAIL_FETCH_DELAY_SECONDS = 0.5 def parse_listing_page(html_content: str) -> list[dict]: """Extract (link, title) pairs from the podcast listing page.""" soup = BeautifulSoup(html_content, "html.parser") episodes: list[dict] = [] seen_hrefs: set[str] = set() for link in soup.select('a[href^="/podcast/"]'): href = link.get("href", "") if href.rstrip("/") == "/podcast" or href in seen_hrefs: continue seen_hrefs.add(href) # Prefer a heading inside the anchor (just the episode title). Fall back # to aria-label, then to separator-joined text -- the anchor contains # multiple sibling text nodes (episode number, guest, role) that must # not be concatenated without whitespace. title = None heading = link.select_one("h1, h2, h3, h4, h5, h6") if heading: title = heading.get_text(separator=" ", strip=True) if not title: aria = link.get("aria-label", "").strip() if aria: title = aria.removeprefix("Podcast: ").strip() if not title: text = link.get_text(separator=" ", strip=True) if text and len(text) > 5: title = text[:200] if len(text) > 200: logger.debug(f"Fallback title for {href} truncated from {len(text)} chars") if not title: continue episodes.append({"link": f"{BASE_URL}{href}", "title": title}) logger.info(f"Found {len(episodes)} episode links on listing page") return episodes def fetch_episode_details(url: str) -> tuple[datetime | None, str]: """Return (date, description) for a single episode page.""" try: html = fetch_page(url, timeout=15, headers=DEFAULT_HEADERS) except Exception as e: logger.warning(f"Failed to fetch episode page {url}: {e}") return None, "" soup = BeautifulSoup(html, "html.parser") # Primary: JSON-LD PodcastEpisode schema for script in soup.select('script[type="application/ld+json"]'): try: data = json.loads(script.string or "") except (json.JSONDecodeError, TypeError): continue if data.get("@type") != "PodcastEpisode": continue date = None date_str = data.get("datePublished") if date_str: try: date = datetime.fromisoformat(date_str) if date.tzinfo is None: date = date.replace(tzinfo=pytz.UTC) except ValueError: pass return date, data.get("description", "") # Fallback: <time datetime="..."> element time_elem = soup.select_one("time[datetime]") if time_elem and time_elem.get("datetime"): try: date = datetime.fromisoformat(time_elem["datetime"].replace("Z", "+00:00")) if date.tzinfo is None: date = date.replace(tzinfo=pytz.UTC) return date, "" except ValueError: pass return None, "" def enrich_episodes(stub_episodes: list[dict]) -> list[dict]: """Fetch detail page for each stub and return full episode dicts.""" enriched = [] for i, stub in enumerate(stub_episodes): date, description = fetch_episode_details(stub["link"]) if not date: date = stable_fallback_date(stub["link"]) enriched.append( { "title": stub["title"], "link": stub["link"], "date": date, "description": description or stub["title"], } ) if i < len(stub_episodes) - 1: time.sleep(DETAIL_FETCH_DELAY_SECONDS) if (i + 1) % 10 == 0: logger.info(f"Fetched {i + 1}/{len(stub_episodes)} episode details") return enriched def generate_rss_feed(episodes: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("AI FIRST Podcast") fg.description( "Der AI FIRST Podcast: Erfahre jeden Freitag aus erster Hand, wie Unternehmer und Führungskräfte AI einsetzen." ) fg.language("de") fg.author({"name": "AI FIRST"}) fg.logo("https://ai-first.ai/images/og/og-default.png") fg.subtitle("KI-Transformation, Produktivität und die Zukunft der Arbeit") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for ep in sort_posts_for_feed(episodes, date_field="date"): fe = fg.add_entry() fe.title(ep["title"]) fe.description(ep["description"]) fe.link(href=ep["link"]) fe.id(ep["link"]) if ep.get("date"): fe.published(ep["date"]) logger.info(f"Generated RSS feed with {len(episodes)} entries") return fg def main(full_reset: bool = False) -> bool: cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) cached_links = {ep["link"] for ep in cached_entries} html = fetch_page(BLOG_URL, timeout=15, headers=DEFAULT_HEADERS) listing = parse_listing_page(html) if not listing: logger.warning("No episodes found on listing page.") return False if full_reset: stubs_to_fetch = listing logger.info(f"Full reset: fetching details for all {len(stubs_to_fetch)} episodes") all_episodes = enrich_episodes(stubs_to_fetch) else: stubs_to_fetch = [ep for ep in listing if ep["link"] not in cached_links] logger.info(f"Incremental: {len(stubs_to_fetch)} new episode(s) to fetch") new_episodes = enrich_episodes(stubs_to_fetch) all_episodes = list(cached_entries) + new_episodes all_episodes = sort_posts_for_feed(all_episodes, date_field="date") save_cache(FEED_NAME, all_episodes) feed = generate_rss_feed(all_episodes) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate AI FIRST Podcast RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (re-fetch every episode)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/anthropic_eng_blog.py ================================================ import re from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed logger = setup_logging() FEED_NAME = "anthropic_engineering" BLOG_URL = "https://www.anthropic.com/engineering" def fetch_engineering_content(url=BLOG_URL): """Fetch engineering page content from Anthropic's website.""" try: return fetch_page(url) except Exception as e: logger.error(f"Error fetching engineering content: {e!s}") raise def validate_article(article): """Validate article has required fields.""" if not article.get("title") or len(article["title"]) < 5: return False if not article.get("link") or not article["link"].startswith("http"): return False return bool(article.get("date")) def parse_engineering_html(html_content): """Parse the engineering HTML content and extract article information from embedded JSON.""" try: soup = BeautifulSoup(html_content, "html.parser") articles = [] # Find the Next.js script tag containing article data script_tag = None for script in soup.find_all("script"): if script.string and "publishedOn" in script.string and "engineeringArticle" in script.string: script_tag = script break if not script_tag: logger.error("Could not find Next.js data script containing article information") return [] script_content = script_tag.string # Extract article data from the escaped JSON in the Next.js script # Pattern matches: publishedOn, slug, title, and summary fields pattern = r'\\"publishedOn\\":\\"([^"]+?)\\",\\"slug\\":\{[^}]*?\\"current\\":\\"([^"]+?)\\"' matches = re.findall(pattern, script_content) logger.info(f"Found {len(matches)} articles from JSON data") for published_date, slug in matches: try: # Construct the full URL from the slug link = f"https://www.anthropic.com/engineering/{slug}" # Find the article object containing this slug to get title and summary # Search for the section containing this slug slug_pos = script_content.find(f'\\"current\\":\\"{slug}\\"') if slug_pos == -1: continue # Search forward from slug position to find the title and summary # The structure is: ...publishedOn, slug, ...other fields..., summary, title} search_section = script_content[slug_pos : slug_pos + 2000] # Extract title and summary (they appear AFTER the slug in the data) # Use negative lookbehind to handle escaped quotes correctly title_match = re.search(r'\\"title\\":\\"(.*?)(?<!\\)\\"', search_section) title = title_match.group(1) if title_match else slug.replace("-", " ").title() # Unescape the title using re.sub to handle all escaped characters title = re.sub(r"\\(.)", r"\1", title) if title else title # Extract summary/description summary_match = re.search(r'\\"summary\\":\\"(.*?)(?<!\\)\\"', search_section) description = summary_match.group(1) if summary_match else title # Unescape the description description = re.sub(r"\\(.)", r"\1", description) if description else description # Parse the date date = datetime.strptime(published_date, "%Y-%m-%d") date = date.replace(hour=0, minute=0, second=0, tzinfo=pytz.UTC) article = { "title": title, "link": link, "description": description if description else title, "date": date, "category": "Engineering", } if validate_article(article): articles.append(article) logger.info(f"Found article: {title} ({published_date})") except Exception as e: logger.warning(f"Error parsing article {slug}: {e!s}") continue logger.info(f"Successfully parsed {len(articles)} articles from JSON data") return articles except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(articles, feed_name=FEED_NAME): """Generate RSS feed from engineering articles.""" try: fg = FeedGenerator() fg.title("Anthropic Engineering Blog") fg.description("Latest engineering articles and insights from Anthropic's engineering team") setup_feed_links(fg, BLOG_URL, feed_name) fg.language("en") # Set feed metadata fg.author({"name": "Anthropic Engineering Team"}) fg.logo("https://www.anthropic.com/images/icons/apple-touch-icon.png") fg.subtitle("Inside the team building reliable AI systems") # Sort articles for correct feed order (newest first in output) articles_sorted = sort_posts_for_feed(articles, date_field="date") # Add entries for article in articles_sorted: fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.published(article["date"]) fe.category(term=article["category"]) fe.id(article["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(feed_name=FEED_NAME): """Main function to generate RSS feed from Anthropic's engineering page.""" try: # Fetch engineering content html_content = fetch_engineering_content() # Parse articles from HTML articles = parse_engineering_html(html_content) if not articles: logger.warning("No articles found on the engineering page") return False # Generate RSS feed feed = generate_rss_feed(articles, feed_name) # Save feed to file save_rss_feed(feed, feed_name) logger.info(f"Successfully generated RSS feed with {len(articles)} articles") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/anthropic_news_blog.py ================================================ import argparse import contextlib import xml.etree.ElementTree as ET from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, setup_selenium_driver, sort_posts_for_feed, stable_fallback_date, ) FEED_NAME = "anthropic_news" BLOG_URL = "https://www.anthropic.com/news" logger = setup_logging() def fetch_news_content(url=BLOG_URL, max_clicks=20): """Fetch the fully loaded HTML content of the news page using Selenium. Args: url: The URL to fetch max_clicks: Maximum number of "See more" button clicks. Use 20 for full fetch, 2-3 for incremental updates. """ driver = None try: logger.info(f"Fetching content from URL: {url} (max_clicks={max_clicks})") driver = setup_selenium_driver() driver.get(url) # Wait for news articles to be present try: WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a[href*='/news/']"))) logger.info("News articles loaded successfully") except Exception: logger.warning("Could not confirm articles loaded, proceeding anyway...") # Click "See more" button repeatedly until it's no longer available clicks = 0 while clicks < max_clicks: try: # Look for the "See more" button using multiple selectors see_more_button = None selectors = [ "[class*='seeMore']", "[class*='see-more']", "button[class*='More']", ] for selector in selectors: try: see_more_button = driver.find_element(By.CSS_SELECTOR, selector) if see_more_button and see_more_button.is_displayed(): break see_more_button = None except Exception: continue # Also try finding by text content using XPath if not see_more_button: with contextlib.suppress(Exception): see_more_button = driver.find_element( By.XPATH, "//*[contains(text(), 'See more') or contains(text(), 'Load more')]", ) if see_more_button and see_more_button.is_displayed(): count_before = len(driver.find_elements(By.CSS_SELECTOR, "a[href*='/news/']")) logger.info(f"Clicking 'See more' button (click {clicks + 1})...") driver.execute_script("arguments[0].click();", see_more_button) clicks += 1 # Wait for new articles to appear after click with contextlib.suppress(Exception): WebDriverWait(driver, 5).until( lambda d, n=count_before: len(d.find_elements(By.CSS_SELECTOR, "a[href*='/news/']")) > n ) else: logger.info(f"No more 'See more' button found after {clicks} clicks") break except Exception as e: # No more "See more" button found logger.info(f"No more 'See more' button found after {clicks} clicks: {e}") break html_content = driver.page_source logger.info("Successfully fetched HTML content") return html_content except Exception as e: logger.error(f"Error fetching content: {e}") raise finally: if driver: driver.quit() def extract_title(card): """Extract title using multiple fallback selectors.""" selectors = [ # New FeaturedGrid layout "h2[class*='featuredTitle']", "h4[class*='title']", # New PublicationList layout "span[class*='title']", # Legacy selectors "h3.PostCard_post-heading__Ob1pu", "h3.Card_headline__reaoT", "h3[class*='headline']", "h3[class*='heading']", "h2[class*='headline']", "h2[class*='heading']", "h3", "h2", ] for selector in selectors: elem = card.select_one(selector) if elem and elem.text.strip(): return elem.text.strip() return None def extract_date(card): """Extract date using multiple fallback selectors and formats.""" selectors = [ # New layout selectors - time element is most reliable "time[class*='date']", "time", # Legacy selectors "p.detail-m", "div.PostList_post-date__djrOA", "p[class*='date']", "div[class*='date']", ] date_formats = [ "%b %d, %Y", "%B %d, %Y", "%b %d %Y", "%B %d %Y", "%Y-%m-%d", "%m/%d/%Y", ] for selector in selectors: # Use select() to get all matching elements, not just the first one elems = card.select(selector) for elem in elems: date_text = elem.text.strip() # Try to parse it as a date for date_format in date_formats: try: date = datetime.strptime(date_text, date_format) return date.replace(tzinfo=pytz.UTC) except ValueError: continue return None def extract_category(card, date_elem_text=None): """Extract category using multiple fallback selectors.""" selectors = [ # New layout selectors "span[class*='subject']", # PublicationList layout "span.caption.bold", # FeaturedGrid layout (category before date) # Legacy selectors "span.text-label", "p.detail-m", "span[class*='category']", "div[class*='category']", ] for selector in selectors: elem = card.select_one(selector) if elem: text = elem.text.strip() # Skip if this is the date element if date_elem_text and text == date_elem_text: continue # Skip if it looks like a date if any( month in text for month in [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ] ): continue return text return "News" def validate_article(article): """Validate that article has all required fields with reasonable values.""" if not article.get("title") or len(article["title"]) < 5: logger.warning(f"Invalid title for article: {article.get('link', 'unknown')}") return False if not article.get("link") or not article["link"].startswith("http"): logger.warning(f"Invalid link for article: {article.get('title', 'unknown')}") return False if not article.get("date"): logger.warning(f"Missing date for article: {article.get('title', 'unknown')}") return False return True def parse_news_html(html_content): """Parse the news HTML content and extract article information.""" try: soup = BeautifulSoup(html_content, "html.parser") articles = [] seen_links = set() unknown_structures = 0 # Find all links that point to news articles # Use flexible selectors to catch current and future card types # Handle both relative (/news/...) and absolute (https://www.anthropic.com/news/...) URLs all_news_links = soup.select('a[href*="/news/"], a[href*="anthropic.com/news/"]') logger.info(f"Found {len(all_news_links)} potential news article links") for card in all_news_links: href = card.get("href", "") if not href: continue # Build full URL link = "https://www.anthropic.com" + href if href.startswith("/") else href # Skip duplicates if link in seen_links: continue # Skip the main news page link and anchor links if link.endswith("/news") or link.endswith("/news/") or "/news#" in link: continue seen_links.add(link) # Extract title using fallback chain title = extract_title(card) if not title: logger.debug(f"Could not extract title for link: {link}") logger.debug(f"Card HTML preview: {str(card)[:200]}") unknown_structures += 1 continue # Extract date using fallback chain date = extract_date(card) if not date: logger.warning(f"Could not extract date for article: {title}") date = stable_fallback_date(link) # Extract category category = extract_category(card) # Create article object article = { "title": title, "link": link, "date": date, "category": category, "description": title, # Using title as description fallback } # Validate article before adding if validate_article(article): articles.append(article) else: unknown_structures += 1 if unknown_structures > 0: logger.warning(f"Encountered {unknown_structures} links with unknown or invalid structures") logger.info(f"Successfully parsed {len(articles)} valid articles") return articles except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(articles): """Generate RSS feed from news articles.""" try: fg = FeedGenerator() fg.title("Anthropic News") fg.description("Latest news and updates from Anthropic") fg.language("en") # Set feed metadata fg.author({"name": "Anthropic News"}) fg.logo("https://www.anthropic.com/images/icons/apple-touch-icon.png") fg.subtitle("Latest updates from Anthropic's newsroom") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) # Sort articles for correct feed order (newest first in output) articles_sorted = sort_posts_for_feed(articles, date_field="date") # Add entries for article in articles_sorted: fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.published(article["date"]) fe.category(term=article["category"]) fe.id(article["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def get_existing_links_from_feed(feed_path): """Parse the existing RSS feed and return a set of all article links.""" existing_links = set() try: if not feed_path.exists(): return existing_links tree = ET.parse(feed_path) root = tree.getroot() # RSS 2.0: items under channel/item for item in root.findall("./channel/item"): link_elem = item.find("link") if link_elem is not None and link_elem.text: existing_links.add(link_elem.text.strip()) except Exception as e: logger.warning(f"Failed to parse existing feed for deduplication: {e!s}") return existing_links def main(full_reset=False): """Main function to generate RSS feed from Anthropic's news page. Args: full_reset: If True, fetch all articles (click "See more" up to 20 times). If False, do incremental update (click 2-3 times, merge with cache). """ try: cache = load_cache(FEED_NAME) cached_articles = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_articles: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") html_content = fetch_news_content(max_clicks=20) articles = parse_news_html(html_content) else: logger.info("Running incremental update (2 clicks only)") html_content = fetch_news_content(max_clicks=2) new_articles = parse_news_html(html_content) logger.info(f"Found {len(new_articles)} articles from recent pages") articles = merge_entries(new_articles, cached_articles) if not articles: logger.warning("No articles found. Please check the HTML structure.") return False # Save to cache save_cache(FEED_NAME, articles) # Generate RSS feed with all articles feed = generate_rss_feed(articles) # Save feed to file save_rss_feed(feed, FEED_NAME) logger.info(f"Successfully generated RSS feed with {len(articles)} articles") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Anthropic News RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all articles)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/anthropic_red_blog.py ================================================ from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date logger = setup_logging() FEED_NAME = "anthropic_red" BLOG_URL = "https://red.anthropic.com/" def fetch_red_content(url=BLOG_URL): """Fetch content from Anthropic's red team blog.""" try: return fetch_page(url) except Exception as e: logger.error(f"Error fetching red team blog content: {e!s}") raise def parse_date(date_text): """Parse date text from article pages (e.g., 'November 12, 2025', 'September 29, 2025').""" date_formats = [ "%B %d, %Y", # November 12, 2025 "%b %d, %Y", # Nov 12, 2025 "%B %Y", # November 2025 (fallback) "%b %Y", # Nov 2025 (fallback) ] for date_format in date_formats: try: date = datetime.strptime(date_text, date_format) return date.replace(tzinfo=pytz.UTC) except ValueError: continue logger.warning(f"Could not parse date: {date_text}") return None def fetch_article_date(article_url): """Fetch the publication date from an individual article page.""" try: html = fetch_page(article_url) soup = BeautifulSoup(html, "html.parser") # Look for date in d-article section article_section = soup.select_one("d-article") if article_section: # The date is typically in the first <p> tag first_p = article_section.select_one("p") if first_p: date_text = first_p.text.strip() date = parse_date(date_text) if date: logger.debug(f"Found date '{date_text}' for {article_url}") return date logger.warning(f"Could not find date in article: {article_url}") return None except Exception as e: logger.warning(f"Error fetching article date from {article_url}: {e!s}") return None def parse_red_html(html_content): """Parse the red team blog HTML content and extract article information.""" try: soup = BeautifulSoup(html_content, "html.parser") articles = [] seen_links = set() # Find all article links across the entire page (TOC + body sections) all_notes = soup.select("a.note") logger.info(f"Found {len(all_notes)} potential article links") # Build a map of date dividers for context date_sections = {} for date_div in soup.select("div.date"): date_text = date_div.text.strip() parsed = parse_date(date_text) if parsed: date_sections[date_text] = parsed for article_link in all_notes: # Extract article information href = article_link.get("href", "") if not href: continue # Build full URL if href.startswith("http"): link = href elif href.startswith("/"): link = f"https://red.anthropic.com{href}" else: link = f"https://red.anthropic.com/{href}" # Skip duplicates if link in seen_links: continue seen_links.add(link) # Extract title title_elem = article_link.select_one("h3") if not title_elem: logger.warning(f"Could not extract title for link: {link}") continue title = title_elem.text.strip() # Extract description description_elem = article_link.select_one("div.description") description = description_elem.text.strip() if description_elem else title # Fetch actual publication date from the article page article_date = fetch_article_date(link) # Fallback to stable date if fetching fails if not article_date: article_date = stable_fallback_date(link) logger.warning(f"Using fallback date for article: {title}") # Create article object article = { "title": title, "link": link, "date": article_date, "description": description, } articles.append(article) logger.debug(f"Found article: {title} (date: {article_date})") logger.info(f"Successfully parsed {len(articles)} articles") return articles except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(articles, feed_name=FEED_NAME): """Generate RSS feed from red team blog articles.""" try: fg = FeedGenerator() fg.title("Anthropic Frontier Red Team Blog") fg.description( "Research from Anthropic's Frontier Red Team on what frontier AI models mean for national security" ) setup_feed_links(fg, BLOG_URL, feed_name) fg.language("en") # Set feed metadata fg.author({"name": "Anthropic Frontier Red Team"}) fg.logo("https://www.anthropic.com/images/icons/apple-touch-icon.png") fg.subtitle( "Evidence-based analysis about AI's implications for cybersecurity, biosecurity, and autonomous systems" ) # Sort articles for correct feed order (newest first in output) sorted_articles = sort_posts_for_feed(articles, date_field="date") # Add entries for article in sorted_articles: fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.published(article["date"]) fe.id(article["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(feed_name=FEED_NAME): """Main function to generate RSS feed from Anthropic's red team blog.""" try: # Fetch blog content html_content = fetch_red_content() # Parse articles from HTML articles = parse_red_html(html_content) if not articles: logger.warning("No articles found") return False # Generate RSS feed feed = generate_rss_feed(articles, feed_name) # Save feed to file save_rss_feed(feed, feed_name) logger.info(f"Successfully generated RSS feed with {len(articles)} articles") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/anthropic_research_blog.py ================================================ from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, setup_selenium_driver, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "anthropic_research" BLOG_URL = "https://www.anthropic.com/research" def fetch_research_content_selenium(url=BLOG_URL): """Fetch the fully loaded HTML content of the research page using Selenium.""" driver = None try: logger.info(f"Fetching content from URL: {url}") driver = setup_selenium_driver() driver.get(url) # Wait for research articles to load try: WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a[href*='/research/']"))) logger.info("Research articles loaded successfully") except Exception: logger.warning("Could not confirm articles loaded, proceeding anyway...") html_content = driver.page_source logger.info("Successfully fetched HTML content") return html_content except Exception as e: logger.error(f"Error fetching content: {e}") raise finally: if driver: driver.quit() def extract_title(card): """Extract title using multiple fallback selectors.""" selectors = [ "h3", "h2", "h1", ".Card_headline__reaoT", "h3[class*='headline']", "h2[class*='headline']", "h3[class*='title']", "h2[class*='title']", ] for selector in selectors: elem = card.select_one(selector) if elem and elem.text.strip(): title = elem.text.strip() # Clean up whitespace title = " ".join(title.split()) if len(title) >= 5: return title # Try using link text as last resort if hasattr(card, "text"): text = card.text.strip() text = " ".join(text.split()) if len(text) >= 5: return text return None def extract_date(card): """Extract date using multiple fallback selectors and formats.""" selectors = [ "p.detail-m", # Current format on listing page ".detail-m", "time", "[class*='timestamp']", "[class*='date']", ".PostDetail_post-timestamp__TBJ0Z", ".text-label", ] date_formats = [ "%b %d, %Y", "%B %d, %Y", "%Y-%m-%d", "%m/%d/%Y", "%d %b %Y", "%d %B %Y", "%b %d %Y", "%B %d %Y", ] # Look for date in the card and its parents elements_to_check = [card] if hasattr(card, "parent") and card.parent: elements_to_check.append(card.parent) if card.parent.parent: elements_to_check.append(card.parent.parent) for element in elements_to_check: for selector in selectors: date_elem = element.select_one(selector) if date_elem: date_text = date_elem.text.strip() for date_format in date_formats: try: date = datetime.strptime(date_text, date_format) return date.replace(tzinfo=pytz.UTC) except ValueError: continue return None def validate_article(article): """Validate that article has all required fields with reasonable values.""" if not article.get("title") or len(article["title"]) < 5: return False # Date can be None for research articles return bool(article.get("link") and article["link"].startswith("http")) def parse_research_html(html_content): """Parse the research HTML content and extract article information.""" try: soup = BeautifulSoup(html_content, "html.parser") articles = [] seen_links = set() # Look for research article links using flexible selector research_links = soup.select("a[href*='/research/']") logger.info(f"Found {len(research_links)} potential research article links") for link in research_links: try: href = link.get("href", "") if not href: continue # Skip the main research page if href == "/research" or href.endswith("/research/"): continue # Construct full URL if href.startswith("https://"): full_url = href elif href.startswith("/"): full_url = "https://www.anthropic.com" + href else: continue # Skip duplicates if full_url in seen_links: continue seen_links.add(full_url) # Extract title title = extract_title(link) if not title: logger.debug(f"Could not extract title for link: {full_url}") continue # Extract date, fall back to stable hash-based date date = extract_date(link) if date: logger.info(f"Found article: {title} - {date}") else: logger.warning(f"No date found for article: {title}, using fallback") date = stable_fallback_date(full_url) # Determine category from URL category = "Research" if "/news/" in href: category = "News" article = { "title": title, "link": full_url, "date": date, # Can be None "category": category, "description": title, } # Validate article if validate_article(article): articles.append(article) else: logger.debug(f"Article failed validation: {full_url}") except Exception as e: logger.warning(f"Error parsing research link: {e!s}") continue logger.info(f"Successfully parsed {len(articles)} unique research articles") return articles except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(articles): """Generate RSS feed from research articles.""" try: fg = FeedGenerator() fg.title("Anthropic Research") fg.description("Latest research papers and updates from Anthropic") fg.language("en") # Set feed metadata fg.author({"name": "Anthropic Research Team"}) fg.logo("https://www.anthropic.com/images/icons/apple-touch-icon.png") fg.subtitle("Latest research from Anthropic") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) # Sort articles for correct feed order (newest first in output) # Articles without dates will appear at the end articles_sorted = sort_posts_for_feed(articles, date_field="date") # Add entries for article in articles_sorted: fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) # Only set published date if we have a valid date if article["date"]: fe.published(article["date"]) fe.category(term=article["category"]) fe.id(article["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(full_reset=False): """Main function to generate RSS feed from Anthropic's research page. Args: full_reset: If True, fetch all articles. If False, merge with cache. """ try: cache = load_cache(FEED_NAME) cached_articles = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_articles: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") else: logger.info("Running incremental update") # Fetch research content using Selenium html_content = fetch_research_content_selenium() # Parse articles from HTML new_articles = parse_research_html(html_content) if not new_articles and not cached_articles: logger.warning("No articles found. Please check the HTML structure.") return False # Merge with cache or use fresh articles if cached_articles and not full_reset: articles = merge_entries(new_articles, cached_articles) else: articles = new_articles # Save to cache save_cache(FEED_NAME, articles) # Generate RSS feed feed = generate_rss_feed(articles) # Save feed to file save_rss_feed(feed, FEED_NAME) logger.info(f"Successfully generated RSS feed with {len(articles)} articles") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": import argparse parser = argparse.ArgumentParser(description="Generate Anthropic Research RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all articles)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/blogsurgeai_feed_generator.py ================================================ #!/usr/bin/env python3 """ RSS Feed Generator for Surge AI Blog Scrapes https://www.surgehq.ai/blog and generates an RSS feed """ import pytz from bs4 import BeautifulSoup from dateutil import parser from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, stable_fallback_date logger = setup_logging() FEED_NAME = "blogsurgeai" BLOG_URL = "https://www.surgehq.ai/blog" def generate_blogsurgeai_feed(): """Generate RSS feed for Surge AI blog""" # Initialize feed generator fg = FeedGenerator() fg.id(BLOG_URL) fg.title("Surge AI Blog") fg.author({"name": "Surge AI", "email": "team@surgehq.ai"}) setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) fg.language("en") fg.description( "New methods, current trends & software infrastructure for NLP. Articles written by our senior engineering leads from Google, Facebook, Twitter, Harvard, MIT, and Y Combinator" ) # Fetch the blog page try: html = fetch_page(BLOG_URL) except Exception as e: logger.error(f"Error fetching blog page: {e}") return # Parse HTML soup = BeautifulSoup(html, "html.parser") # Find all blog post items blog_items = soup.find_all("div", class_="blog-hero-cms-item") logger.info(f"Found {len(blog_items)} blog posts") # Process each blog post for item in blog_items: try: # Find the title title_element = item.find("div", class_="blog-hero-cms-item-title") if not title_element: continue title = title_element.get_text(strip=True) # Find the link link_element = item.find("a", class_="blog-hero-cms-item-link") if not link_element: continue link = link_element.get("href") if not link.startswith("http"): link = "https://www.surgehq.ai" + link # Find the description desc_element = item.find("div", class_="blog-hero-cms-item-desc") description = desc_element.get_text(strip=True) if desc_element else title # Find the date date_element = item.find("div", class_="blog-hero-cms-item-date") pub_date = None # Will be set by parsing or fallback if date_element: # Find the visible date element (the one without w-condition-invisible) date_texts = date_element.find_all("div", class_="txt fs-12 inline") for date_text in date_texts: if "w-condition-invisible" not in date_text.get("class", []): date_str = date_text.get_text(strip=True) try: # Parse the date string (e.g., "October 10, 2025") pub_date = parser.parse(date_str) # Make timezone-aware if pub_date.tzinfo is None: pub_date = pytz.UTC.localize(pub_date) break except Exception as e: logger.warning(f"Could not parse date '{date_str}': {e}") # Use stable fallback if no date was parsed if pub_date is None: pub_date = stable_fallback_date(link) # Create feed entry fe = fg.add_entry() fe.id(link) fe.title(title) fe.link(href=link) fe.published(pub_date) # Set description fe.description(description) logger.info(f"Added: {title}") except Exception as e: logger.error(f"Error processing blog item: {e}") continue # Generate RSS feed save_rss_feed(fg, FEED_NAME) if __name__ == "__main__": generate_blogsurgeai_feed() ================================================ FILE: feed_generators/chanderramesh_blog.py ================================================ from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date logger = setup_logging() FEED_NAME = "chanderramesh" BLOG_URL = "https://chanderramesh.com/writing" def parse_date(date_str): """Parse date string in format 'Month DD, YYYY'.""" try: # Parse date like "June 12, 2025" or "February 8, 2025" date = datetime.strptime(date_str.strip(), "%B %d, %Y") return date.replace(tzinfo=pytz.UTC) except ValueError as e: logger.warning(f"Could not parse date: {date_str} - {e!s}") return None def parse_writing_page(html_content, base_url="https://chanderramesh.com"): """Parse the writing page and extract blog post information.""" try: soup = BeautifulSoup(html_content, "html.parser") blog_posts = [] # Find all essay cards - they are links with classes "group" and "masonry-item" # Note: class_ parameter must be a list when searching for multiple classes essay_links = soup.find_all("a", class_=["group", "masonry-item"]) logger.info(f"Found {len(essay_links)} essays") for link in essay_links: # Extract the URL href = link.get("href") if not href: continue full_url = f"{base_url}{href}" if href.startswith("/") else href # Extract date date_elem = link.find("p", class_="text-muted-foreground mb-2 text-sm") date_str = date_elem.get_text(strip=True) if date_elem else None # Extract title title_elem = link.find("h3", class_="font-semibold tracking-tight mb-3 text-xl font-serif") title = title_elem.get_text(strip=True) if title_elem else "Untitled" # Extract description desc_elem = link.find("p", class_="leading-relaxed text-muted-foreground") description = desc_elem.get_text(strip=True) if desc_elem else "" # Parse date pub_date = (parse_date(date_str) if date_str else None) or stable_fallback_date(full_url) blog_post = { "title": title, "link": full_url, "description": description, "date": pub_date, } blog_posts.append(blog_post) logger.info(f"Parsed: {title} ({date_str})") # Sort for correct feed order (newest first in output) blog_posts = sort_posts_for_feed(blog_posts) logger.info(f"Successfully parsed {len(blog_posts)} blog posts") return blog_posts except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(blog_posts): """Generate RSS feed from blog posts.""" try: fg = FeedGenerator() fg.title("Chander Ramesh - Writing") fg.description("Essays by Chander Ramesh covering software, startups, investing, and philosophy") fg.language("en") # Set feed metadata fg.author({"name": "Chander Ramesh"}) fg.subtitle("Essays covering software, startups, investing, and philosophy") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) # Add entries for post in blog_posts: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.published(post["date"]) fe.id(post["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(): """Main function to generate RSS feed from blog URL.""" try: # Fetch blog content html_content = fetch_page(BLOG_URL) # Parse blog posts blog_posts = parse_writing_page(html_content) # Generate RSS feed feed = generate_rss_feed(blog_posts) # Save feed to file save_rss_feed(feed, FEED_NAME) return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/claude_blog.py ================================================ #!/usr/bin/env python3 """Generate RSS feed for Claude Blog (claude.com/blog).""" import argparse import html import re from datetime import datetime import pytz import requests from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, ) logger = setup_logging() BLOG_URL = "https://claude.com/blog" FEED_NAME = "claude" BASE_URL = "https://claude.com" DATE_PATTERN = re.compile( r"(January|February|March|April|May|June|July|August|September|October|November|December)\s+\d{1,2},\s+\d{4}" ) # Claude blog requires a custom header for Webflow/Finsweet CLAUDE_HEADERS = { "X-Webflow-App-ID": "finsweet", "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36", } def fetch_page(url): """Fetch a single page HTML with Finsweet header.""" headers = CLAUDE_HEADERS response = requests.get(url, headers=headers, timeout=30) response.raise_for_status() return response.text def extract_pagination_ids(html_content): """Extract pagination collection IDs from the HTML.""" pattern = r"\?([a-f0-9]+)_page=\d+" matches = re.findall(pattern, html_content) return list(set(matches)) def parse_date(date_str): """Parse date string like 'January 12, 2026' to datetime.""" try: return datetime.strptime(date_str, "%B %d, %Y") except ValueError: return None def parse_posts(html_content): """Parse the blog HTML content and extract post information. Returns a list of unique posts, deduplicated by URL. """ soup = BeautifulSoup(html_content, "html.parser") posts_by_url = {} for item in soup.select(".w-dyn-item"): link = item.select_one('a[href^="/blog/"]') if not link: continue href = link.get("href", "") if "/blog/category/" in href or not href: continue full_url = f"{BASE_URL}{href}" # Skip if we already have this post (keep the one with most data) if full_url in posts_by_url: existing = posts_by_url[full_url] # Only update if existing has no date and this one does item_text = item.get_text() date_match = DATE_PATTERN.search(item_text) if not existing.get("date") and date_match: pass # Continue to update else: continue # Keep existing # Extract title title = None h2 = item.select_one("h2") if h2: title = h2.get_text(strip=True) if not title: title = link.get("data-cta-copy", "") if not title: for tag in ["h3", "h4", ".u-text-style-h6"]: el = item.select_one(tag) if el: title = el.get_text(strip=True) break # Extract date date_obj = None item_text = item.get_text() date_match = DATE_PATTERN.search(item_text) if date_match: date_obj = parse_date(date_match.group(0)) # Extract category category = None category_el = item.select_one('[fs-list-field="category"]') if category_el: category = category_el.get_text(strip=True) if not category: data_category = item.get("data-category") if data_category: category = data_category # Extract description description = None desc_el = item.select_one(".card_blog_description, .u-text-style-body-2, p") if desc_el: description = desc_el.get_text(strip=True) if title and href: title = html.unescape(title) if description: description = html.unescape(description) posts_by_url[full_url] = { "link": full_url, "title": title, "date": date_obj.strftime("%Y-%m-%d") if date_obj else None, "category": category, "description": description or title, } return list(posts_by_url.values()) def fetch_all_pages(): """Follow pagination until no new posts. Returns all posts.""" logger.info(f"Fetching main page: {BLOG_URL}") html_content = fetch_page(BLOG_URL) all_posts = parse_posts(html_content) logger.info(f"Found {len(all_posts)} posts on main page") # Get unique post URLs to track duplicates seen_urls = {p["link"] for p in all_posts} # Extract pagination collection IDs collection_ids = extract_pagination_ids(html_content) logger.info(f"Found pagination IDs: {collection_ids}") for collection_id in collection_ids: page = 2 consecutive_empty = 0 while consecutive_empty < 2: page_url = f"{BLOG_URL}?{collection_id}_page={page}" logger.info(f"Fetching: {page_url}") try: page_html = fetch_page(page_url) except requests.RequestException as e: logger.warning(f"Failed to fetch page {page}: {e}") break page_posts = parse_posts(page_html) new_posts = [p for p in page_posts if p["link"] not in seen_urls] if not new_posts: consecutive_empty += 1 logger.info(f" No new posts (attempt {consecutive_empty})") else: consecutive_empty = 0 logger.info(f" Found {len(new_posts)} new posts") all_posts.extend(new_posts) seen_urls.update(p["link"] for p in new_posts) page += 1 if page > 50: logger.info(" Reached page limit, stopping") break # Sort for correct feed order (newest first in output) sorted_posts = sort_posts_for_feed(all_posts, date_field="date") logger.info(f"Total unique posts across all pages: {len(sorted_posts)}") return sorted_posts def generate_rss_feed(posts): """Generate RSS feed from blog posts.""" fg = FeedGenerator() fg.title("Claude Blog") fg.description( "Get practical guidance and best practices for building with Claude. " "Technical guides, real-world examples, and insights from Anthropic's " "engineering and research teams." ) fg.language("en") fg.author({"name": "Anthropic", "email": "blog@anthropic.com"}) fg.subtitle("Latest updates from Claude Blog") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for post in posts: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.id(post["link"]) if post.get("category"): fe.category(term=post["category"]) if post.get("date"): try: dt = post["date"] if isinstance(post["date"], datetime) else datetime.strptime(post["date"], "%Y-%m-%d") if dt.tzinfo is None: dt = dt.replace(tzinfo=pytz.UTC) fe.published(dt) except (ValueError, TypeError): pass logger.info(f"Generated RSS feed with {len(posts)} entries") return fg def main(full_reset=False): """Main function to generate RSS feed from blog URL. Args: full_reset: If True, fetch all pages. If False, only fetch page 1 and merge with cached posts. """ cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_entries: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") posts = fetch_all_pages() else: logger.info("Running incremental update (page 1 only)") html_content = fetch_page(BLOG_URL) new_posts = parse_posts(html_content) logger.info(f"Found {len(new_posts)} posts on page 1") posts = merge_entries(new_posts, cached_entries) save_cache(FEED_NAME, posts) feed = generate_rss_feed(posts) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Claude Blog RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all pages)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/cleanup_deprecated_feeds.py ================================================ """Delete RSS feed XML files whose deprecation notice is older than the threshold. A feed is considered "retired" once ``deprecate_feed.py`` has injected a sunset ``<item>`` (GUID prefix ``deprecation-notice-``) and the human has removed the generator, registry entry, Make target, and README row. This script handles the final step: deleting the tombstone XML after enough time has passed that existing subscribers have almost certainly seen the notice. Default mode is dry-run: prints a punch list of eligible files. Use ``--apply`` to actually delete. The GitHub Actions workflow ``cleanup_deprecated_feeds.yml`` runs this with ``--apply`` on a monthly cron. """ import argparse import xml.etree.ElementTree as ET from datetime import datetime, timedelta from pathlib import Path import pytz from utils import get_feeds_dir, setup_logging logger = setup_logging() DEPRECATION_GUID_PREFIX = "deprecation-notice-" RFC822_FORMAT = "%a, %d %b %Y %H:%M:%S %z" DEFAULT_THRESHOLD_DAYS = 90 def find_deprecation_notice(feed_file: Path) -> datetime | None: """Return the pubDate of the deprecation <item> in ``feed_file``, or None.""" try: tree = ET.parse(feed_file) except ET.ParseError as e: logger.warning(f"Could not parse {feed_file}: {e}") return None channel = tree.getroot().find("channel") if channel is None: return None # A feed should only ever carry one tombstone, but keep looking if the # first match is malformed rather than failing the whole file. for item in channel.findall("item"): guid = item.find("guid") if guid is None or not guid.text or not guid.text.startswith(DEPRECATION_GUID_PREFIX): continue pub_date_elem = item.find("pubDate") if pub_date_elem is None or not pub_date_elem.text: logger.warning(f"Deprecation notice in {feed_file} has no pubDate; skipping item") continue try: return datetime.strptime(pub_date_elem.text, RFC822_FORMAT) except ValueError as e: logger.warning(f"Could not parse pubDate in {feed_file} ({e}); skipping item") continue return None def find_eligible_feeds(threshold_days: int) -> list[tuple[Path, int]]: """Return (path, age_days) for every feed XML whose notice is older than threshold_days.""" now = datetime.now(pytz.UTC) cutoff = now - timedelta(days=threshold_days) eligible: list[tuple[Path, int]] = [] for feed_file in sorted(get_feeds_dir().glob("feed_*.xml")): pub_date = find_deprecation_notice(feed_file) if pub_date is None: continue age_days = (now - pub_date).days if pub_date < cutoff: eligible.append((feed_file, age_days)) return eligible def main() -> int: parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) parser.add_argument( "--threshold-days", type=int, default=DEFAULT_THRESHOLD_DAYS, help=f"Age in days after which a deprecated feed XML is deleted (default: {DEFAULT_THRESHOLD_DAYS})", ) parser.add_argument( "--apply", action="store_true", help="Actually delete eligible files (default is dry-run)", ) args = parser.parse_args() eligible = find_eligible_feeds(args.threshold_days) if not eligible: logger.info(f"No deprecated feeds older than {args.threshold_days} days") return 0 logger.info(f"Found {len(eligible)} deprecated feed(s) older than {args.threshold_days} days:") for feed_file, age_days in eligible: logger.info(f" {feed_file.name} (notice is {age_days} days old)") if args.apply: for feed_file, _ in eligible: feed_file.unlink() logger.info(f"Deleted {feed_file}") else: logger.info("Dry run. Re-run with --apply to delete these files.") return 0 if __name__ == "__main__": raise SystemExit(main()) ================================================ FILE: feed_generators/cohere_blog.py ================================================ """Generate RSS feed for the Cohere Blog (https://cohere.com/blog). The Cohere blog is built on Ghost CMS. We fetch posts directly from the Ghost Content API instead of scraping HTML. """ import argparse from datetime import datetime import pytz import requests from feedgen.feed import FeedGenerator from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "cohere" BLOG_URL = "https://cohere.com/blog" GHOST_API_URL = "https://cohere-ai.ghost.io/ghost/api/content/posts/" # Ghost Content API keys are intentionally public (like a Stripe publishable # key). This is the key the cohere.com/blog front-end itself uses; it is # read-only and rate-limited by Ghost. GHOST_API_KEY = "572d288a9364f8e4186af1d60a" MAX_POSTS_FULL = 50 MAX_POSTS_INCREMENTAL = 15 def fetch_posts_page(limit: int, page: int) -> dict: """Fetch a single page of posts from the Ghost Content API.""" params = { "key": GHOST_API_KEY, "limit": limit, "page": page, "include": "tags,authors", "order": "published_at desc", } headers = { "User-Agent": "Mozilla/5.0 (compatible; RSS Feed Generator)", "Accept": "application/json", } response = requests.get(GHOST_API_URL, params=params, headers=headers, timeout=30) response.raise_for_status() return response.json() def parse_api_posts(api_data: dict) -> list[dict]: """Extract post dicts from a Ghost API response.""" posts = [] for post in api_data.get("posts", []): title = (post.get("title") or "").strip() if not title: continue slug = post.get("slug", "") link = f"https://cohere.com/blog/{slug}" date = None published_at = post.get("published_at") if published_at: try: date = datetime.fromisoformat(published_at) if date.tzinfo is None: date = date.replace(tzinfo=pytz.UTC) except ValueError: logger.warning(f"Could not parse date for: {title}") if not date: date = stable_fallback_date(link) description = post.get("custom_excerpt") or title tags = post.get("tags") or [] category = tags[0]["name"] if tags else "Blog" posts.append( { "title": title, "link": link, "date": date, "description": description, "category": category, } ) return posts def fetch_all_posts(max_posts: int = MAX_POSTS_FULL) -> list[dict]: """Fetch posts across Ghost API pages until max_posts is reached.""" all_posts = [] page = 1 per_page = min(max_posts, 15) while len(all_posts) < max_posts: logger.info(f"Fetching page {page} (limit={per_page})") api_data = fetch_posts_page(limit=per_page, page=page) posts = parse_api_posts(api_data) if not posts: logger.info(f"No posts returned on page {page}, stopping") break all_posts.extend(posts) logger.info(f"Page {page}: {len(posts)} posts (total: {len(all_posts)})") pagination = api_data.get("meta", {}).get("pagination", {}) if not pagination.get("next"): logger.info("No more pages available") break page += 1 return all_posts[:max_posts] def generate_rss_feed(posts: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("The Cohere Blog") fg.description("Latest news, research, and product updates from Cohere") fg.language("en") fg.author({"name": "Cohere"}) fg.logo("https://cohere.com/favicon.ico") fg.subtitle("Enterprise AI research and product updates from Cohere") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for post in sort_posts_for_feed(posts, date_field="date"): fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.id(post["link"]) fe.category(term=post["category"]) if post.get("date"): fe.published(post["date"]) logger.info(f"Generated RSS feed with {len(posts)} entries") return fg def main(full_reset: bool = False) -> bool: cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_entries: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") new_posts = fetch_all_posts(max_posts=MAX_POSTS_FULL) posts = sort_posts_for_feed(new_posts, date_field="date") else: logger.info("Running incremental update") api_data = fetch_posts_page(limit=MAX_POSTS_INCREMENTAL, page=1) new_posts = parse_api_posts(api_data) logger.info(f"Fetched {len(new_posts)} posts from API") posts = merge_entries(new_posts, cached_entries) if not posts: logger.warning("No posts found. Check the Ghost API response.") return False save_cache(FEED_NAME, posts) feed = generate_rss_feed(posts) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Cohere Blog RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch up to 50 posts)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/cursor_blog.py ================================================ import argparse import re from datetime import datetime from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import ( deserialize_entries, fetch_page, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, ) logger = setup_logging() BLOG_URL = "https://cursor.com/blog" FEED_NAME = "cursor" def parse_posts(html): """Extract posts from HTML. Returns (posts, next_page_url or None).""" soup = BeautifulSoup(html, "html.parser") posts = [] for card in soup.find_all("a", class_=re.compile(r"card")): href = card.get("href", "") if "/blog/" not in href or "/topic/" in href or "/page/" in href: continue # Make URL absolute if href.startswith("/"): href = f"https://cursor.com{href}" ps = card.find_all("p") title = ps[0].get_text(strip=True) if ps else "" description = ps[1].get_text(strip=True) if len(ps) > 1 else "" time_el = card.find("time") date = time_el.get("datetime", "") if time_el else "" category_el = card.find("span", class_="capitalize") category = category_el.get_text(strip=True).rstrip(" ·") if category_el else "" posts.append( { "link": href, "title": title, "description": description, "date": date, "category": category, } ) # Find next page link - look for links containing "Next" or "Older" next_link = None for link in soup.find_all("a", href=re.compile(r"/blog/page/\d+")): link_text = link.get_text(strip=True) if "Next" in link_text or "Older" in link_text: next_link = link break next_url = None if next_link: href = next_link.get("href") # Make relative URLs absolute if href.startswith("/"): next_url = f"https://cursor.com{href}" else: next_url = href return posts, next_url def fetch_all_pages(): """Follow pagination until no Next link. Returns all posts.""" all_posts = [] url = BLOG_URL page_num = 1 while url: logger.info(f"Fetching page {page_num}: {url}") html = fetch_page(url) posts, next_url = parse_posts(html) all_posts.extend(posts) logger.info(f"Found {len(posts)} posts on page {page_num}") url = next_url page_num += 1 # Dedupe by URL (in case of overlaps) seen = set() unique_posts = [] for post in all_posts: if post["link"] not in seen: unique_posts.append(post) seen.add(post["link"]) # Sort for correct feed order (newest first in output) sorted_posts = sort_posts_for_feed(unique_posts, date_field="date") logger.info(f"Total unique posts across all pages: {len(sorted_posts)}") return sorted_posts def generate_rss_feed(posts): """Generate RSS feed from posts.""" fg = FeedGenerator() fg.title("Cursor Blog") fg.description("The AI Code Editor") fg.language("en") fg.author({"name": "Cursor"}) fg.logo("https://cursor.com/favicon.ico") fg.subtitle("Latest updates from Cursor") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for post in posts: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.id(post["link"]) if post.get("date"): try: dt = datetime.fromisoformat(post["date"].replace("Z", "+00:00")) fe.published(dt) except ValueError: pass if post.get("category"): fe.category(term=post["category"]) logger.info(f"Generated RSS feed with {len(posts)} entries") return fg def main(full_reset=False): """Main function to generate RSS feed.""" cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_entries: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") posts = fetch_all_pages() else: logger.info("Running incremental update (page 1 only)") html = fetch_page(BLOG_URL) new_posts, _ = parse_posts(html) logger.info(f"Found {len(new_posts)} posts on page 1") posts = merge_entries(new_posts, cached_entries) save_cache(FEED_NAME, posts) feed = generate_rss_feed(posts) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Cursor Blog RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all pages)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/dagster_blog.py ================================================ import argparse from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import ( deserialize_entries, fetch_page, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, ) logger = setup_logging() BLOG_URL = "https://dagster.io/blog" FEED_NAME = "dagster" # Dagster uses Webflow CMS pagination with this query param PAGINATION_PARAM = "a17fdf47_page" def parse_posts(html_content): """Parse the blog HTML content and extract post information. Returns (posts, has_next_page). """ soup = BeautifulSoup(html_content, "html.parser") blog_posts = [] # Parse the featured blog post (if present) featured_post = soup.select_one("div.featured_blog_link") if featured_post: title_elem = featured_post.select_one("h2.heading-style-h5") date_elem = featured_post.select_one("p.text-color-neutral-500") description_elem = featured_post.select_one("p.text-color-neutral-700") link_elem = featured_post.select_one("a.clickable_link") if title_elem and date_elem and link_elem: title = title_elem.text.strip() date_str = date_elem.text.strip() try: date_obj = datetime.strptime(date_str, "%B %d, %Y") except ValueError: logger.warning(f"Could not parse featured post date: {date_str}") date_obj = None if date_obj: description = description_elem.text.strip() if description_elem else "" link = link_elem.get("href", "") if link.startswith("/"): link = f"https://dagster.io{link}" if link: blog_posts.append( { "link": link, "title": title, "date": date_obj.strftime("%Y-%m-%d"), "description": description, } ) # Find all regular blog post cards posts = soup.select("div.blog_card") for post in posts: title_elem = post.select_one("h3.blog_card_title") if not title_elem: continue title = title_elem.text.strip() date_elem = post.select_one("p.text-color-neutral-500.text-size-small") if not date_elem: continue date_str = date_elem.text.strip() try: date_obj = datetime.strptime(date_str, "%B %d, %Y") except ValueError: logger.warning(f"Could not parse date: {date_str}") continue description_elem = post.select_one('p[fs-cmsfilter-field="description"]') description = description_elem.text.strip() if description_elem else "" link_elem = post.select_one("a.clickable_link") if not link_elem or not link_elem.get("href"): continue link = link_elem["href"] if link.startswith("/"): link = f"https://dagster.io{link}" blog_posts.append( { "link": link, "title": title, "date": date_obj.strftime("%Y-%m-%d"), "description": description, } ) # Check for "Load more" / next page link next_link = soup.select_one("a.w-pagination-next") has_next_page = next_link is not None and next_link.get("href") return blog_posts, has_next_page def fetch_all_pages(): """Follow pagination until no next link. Returns all posts.""" all_posts = [] page_num = 1 while True: if page_num == 1: url = BLOG_URL else: url = f"{BLOG_URL}?{PAGINATION_PARAM}={page_num}" logger.info(f"Fetching page {page_num}: {url}") html = fetch_page(url) posts, has_next_page = parse_posts(html) all_posts.extend(posts) logger.info(f"Found {len(posts)} posts on page {page_num}") if not has_next_page: break page_num += 1 # Dedupe by URL seen = set() unique_posts = [] for post in all_posts: if post["link"] not in seen: unique_posts.append(post) seen.add(post["link"]) # Sort for correct feed order (newest first in output) sorted_posts = sort_posts_for_feed(unique_posts, date_field="date") logger.info(f"Total unique posts across all pages: {len(sorted_posts)}") return sorted_posts def generate_rss_feed(posts): """Generate RSS feed from blog posts.""" fg = FeedGenerator() fg.title("Dagster Blog") fg.description( "Read the latest from the Dagster team: insights, tutorials, and updates on data engineering, orchestration, and building better pipelines." ) fg.language("en") fg.author({"name": "Dagster"}) fg.subtitle("Latest updates from Dagster") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for post in posts: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.id(post["link"]) if post.get("date"): try: dt = post["date"] if isinstance(post["date"], datetime) else datetime.strptime(post["date"], "%Y-%m-%d") if dt.tzinfo is None: dt = dt.replace(tzinfo=pytz.UTC) fe.published(dt) except (ValueError, TypeError): pass logger.info(f"Generated RSS feed with {len(posts)} entries") return fg def main(full_reset=False): """Main function to generate RSS feed from blog URL. Args: full_reset: If True, fetch all pages. If False, only fetch page 1 and merge with cached posts. """ cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_entries: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") posts = fetch_all_pages() else: logger.info("Running incremental update (page 1 only)") html = fetch_page(BLOG_URL) new_posts, _ = parse_posts(html) logger.info(f"Found {len(new_posts)} posts on page 1") posts = merge_entries(new_posts, cached_entries) save_cache(FEED_NAME, posts) feed = generate_rss_feed(posts) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Dagster Blog RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all pages)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/deeplearningai_the_batch.py ================================================ import argparse import re import pytz import requests from bs4 import BeautifulSoup from dateutil import parser as date_parser from feedgen.feed import FeedGenerator from utils import ( deserialize_entries, fetch_page, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "the_batch" BLOG_URL = "https://www.deeplearning.ai/the-batch/" MAX_PAGES = 30 # Safety limit for pagination def parse_date(value: str | None, fallback_id: str = ""): """Parse date text/datetime strings into timezone-aware datetime.""" if not value: return stable_fallback_date(fallback_id) try: dt = date_parser.parse(value) if dt.tzinfo is None: dt = dt.replace(tzinfo=pytz.UTC) return dt except (ValueError, TypeError) as exc: logger.warning("Unable to parse date %r (%s); using fallback", value, exc) return stable_fallback_date(fallback_id) def clean_text(text: str | None) -> str | None: if text is None: return None return " ".join(text.split()) def is_valid_article_link(href: str) -> bool: """Check if href is a valid article link (not a tag, category, or page link).""" if not href: return False # Skip tag links, page links, and the main batch page if "/tag/" in href or "/page/" in href: return False if href in ("/the-batch/", "/the-batch"): return False # Must be a the-batch article link return href.startswith("/the-batch/") or "deeplearning.ai/the-batch/" in href def normalize_link(href: str) -> str: """Convert relative URL to absolute URL.""" if href.startswith("/"): return f"https://www.deeplearning.ai{href}" return href def extract_date_text(element) -> str | None: """Extract date text from element or its children. Looks for: - <time> elements with datetime attribute - Tag links like <a href="/the-batch/tag/jan-16-2026/">Jan 16, 2026</a> - Plain text matching date patterns """ if element is None: return None # Check for time element time_el = element.find("time") if time_el: return time_el.get("datetime") or time_el.get_text(" ", strip=True) # Check for date in tag links (new format) for anchor in element.find_all("a", href=True): href = anchor.get("href", "") if "/tag/" in href: text = anchor.get_text(" ", strip=True) if text: return text # Date pattern for plain text (e.g., "Dec 26, 2025" or "January 16, 2026") date_pattern = re.compile( r"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*\s+\d{1,2},?\s+\d{4}", re.I, ) for tag in element.find_all(["a", "div", "span", "p"]): text = tag.get_text(" ", strip=True) match = date_pattern.search(text or "") if match: return match.group(0) # Check element's own text text = element.get_text(" ", strip=True) if hasattr(element, "get_text") else str(element) match = date_pattern.search(text or "") if match: return match.group(0) return None def extract_description(element) -> str | None: """Extract description/excerpt from element or its parent context.""" if element is None: return None # Prefer visible snippet if present (line clamp text) summary = element.find( lambda tag: ( tag.name in {"div", "p"} and tag.get("class") and any("line-clamp" in cls for cls in (tag.get("class") or [])) ) ) if summary: return clean_text(summary.get_text(" ", strip=True)) # Check parent for description parent = element.parent if parent: summary = parent.find( lambda tag: ( tag.name in {"div", "p"} and tag.get("class") and any("line-clamp" in cls for cls in (tag.get("class") or [])) ) ) if summary: return clean_text(summary.get_text(" ", strip=True)) first_para = parent.find("p") if first_para: text = clean_text(first_para.get_text(" ", strip=True)) # Skip if it looks like just a date if text and len(text) > 20: return text return None def parse_articles_from_html(html_content: str) -> list[dict]: """Parse articles from HTML content string. The site uses a card-based layout without <article> tags. Articles are identified by finding links to /the-batch/issue-* URLs and extracting title/date from the link context. """ soup = BeautifulSoup(html_content, "lxml") articles = [] seen_links = set() # Find all links that point to article pages for anchor in soup.find_all("a", href=True): href = anchor["href"] if not is_valid_article_link(href): continue link = normalize_link(href) if link in seen_links: continue seen_links.add(link) # Extract title from heading within the link or nearby heading = anchor.find(["h1", "h2", "h3", "h4"]) if not heading: # Try parent element for title parent = anchor.parent if parent: heading = parent.find(["h1", "h2", "h3", "h4"]) if not heading: # Use link text as fallback text = clean_text(anchor.get_text(" ", strip=True)) if text and len(text) > 10: title = text else: continue else: title = clean_text(heading.get_text(" ", strip=True)) if not title: continue # Extract date - look for tag links or date patterns near the link date_text = extract_date_text(anchor) if not date_text: # Check parent/sibling elements parent = anchor.parent if parent: date_text = extract_date_text(parent) date = parse_date(date_text, fallback_id=link) # Extract description from nearby paragraph or use title description = extract_description(anchor) or title articles.append( { "title": title, "link": link, "date": date, "description": description, } ) logger.info(f"Parsed {len(articles)} articles from HTML") return articles def fetch_all_articles(max_pages: int = MAX_PAGES) -> list[dict]: """Fetch all articles by iterating through paginated pages.""" all_articles = [] seen_links = set() for page_num in range(1, max_pages + 1): # Construct page URL if page_num == 1: url = BLOG_URL else: url = f"{BLOG_URL}page/{page_num}/" try: html_content = fetch_page(url) except requests.exceptions.HTTPError as e: if e.response.status_code == 404: logger.info(f"Page {page_num} not found (404), stopping pagination") else: logger.info(f"Error fetching page {page_num}: {e}") break except Exception as e: logger.info(f"Error fetching page {page_num}, stopping pagination: {e}") break # Check for 404-like conditions (page not found) if "Page not found" in html_content or "404" in html_content[:1000]: logger.info(f"Page {page_num} not found, stopping pagination") break # Parse articles from current page page_articles = parse_articles_from_html(html_content) if not page_articles: logger.info(f"No articles found on page {page_num}, stopping pagination") break # Deduplicate and add new articles new_count = 0 for article in page_articles: if article["link"] not in seen_links: seen_links.add(article["link"]) all_articles.append(article) new_count += 1 logger.info(f"Page {page_num}: Found {len(page_articles)} articles, {new_count} new") if new_count == 0: logger.info("No new articles found, stopping pagination") break logger.info(f"Total articles fetched: {len(all_articles)}") return all_articles def build_feed(articles: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("The Batch | DeepLearning.AI") fg.description("Weekly AI news and insights from DeepLearning.AI's The Batch.") fg.language("en") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) # Sort articles for correct feed order (newest first in output) articles_sorted = sort_posts_for_feed(articles, date_field="date") for article in articles_sorted: entry = fg.add_entry() entry.title(article["title"]) entry.link(href=article["link"]) entry.id(article["link"]) entry.published(article["date"]) entry.description(article["description"]) return fg def main(full_reset=False): """Main function to generate RSS feed. Args: full_reset: If True, fetch all pages. If False, fetch only first 3 pages and merge with cache. """ cache = load_cache(FEED_NAME) cached_articles = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_articles: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") articles = fetch_all_articles(max_pages=MAX_PAGES) else: logger.info("Running incremental update (3 pages only)") new_articles = fetch_all_articles(max_pages=3) logger.info(f"Found {len(new_articles)} articles from recent pages") articles = merge_entries(new_articles, cached_articles) if not articles: logger.warning("No articles found") return False # Save to cache save_cache(FEED_NAME, articles) feed = build_feed(articles) save_rss_feed(feed, FEED_NAME) logger.info(f"Successfully generated RSS feed with {len(articles)} articles") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate DeepLearning.AI The Batch RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all pages)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/deprecate_feed.py ================================================ """Inject a deprecation notice into a feed XML. Used when a scraper is being retired (e.g., the site launched an official RSS feed). The notice shows up as the newest entry in the feed, so subscribers see it in their RSS reader rather than silently losing updates. Usage: uv run feed_generators/deprecate_feed.py \\ --feed=openai_research \\ --message="OpenAI now provides an official RSS feed." \\ --alternative="https://openai.com/blog/rss.xml" After running, in the same PR, remove the generator script, the ``<name>:`` entry from ``feeds.yaml``, the ``feeds_<name>`` Make target, and the README row. Only ``feeds/feed_<name>.xml`` (now carrying the tombstone notice) stays in place; it is deleted automatically after ~90 days by the ``cleanup_deprecated_feeds.yml`` workflow. """ import argparse from datetime import datetime import pytz from lxml import etree as ET from utils import get_feeds_dir, setup_logging logger = setup_logging() DEPRECATION_GUID_PREFIX = "deprecation-notice-" DEPRECATION_TITLE = "[NOTICE] This feed is no longer maintained" # lxml.etree is used (not the stdlib xml.etree.ElementTree) because the stdlib # parser drops unused namespace declarations and rewrites unregistered # namespace prefixes to ns0/ns1/... on round-trip. That silently corrupts # feedgen's <atom:link rel="self"> and xmlns:content declarations. lxml # preserves the original xmlns bindings verbatim. # RFC 822 day-of-week and month tokens. Python's strftime("%a"/"%b") honors the # current system locale, which breaks feed readers on non-English CI runners. # Build the pubDate explicitly to keep the round-trip locale-independent. RFC822_WEEKDAYS = ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun") RFC822_MONTHS = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") def format_rfc822(dt: datetime) -> str: """Format a datetime as RFC 822 pubDate without relying on system locale.""" day = RFC822_WEEKDAYS[dt.weekday()] month = RFC822_MONTHS[dt.month - 1] return f"{day}, {dt.day:02d} {month} {dt.year} {dt.hour:02d}:{dt.minute:02d}:{dt.second:02d} +0000" def deprecate_feed(feed_name: str, message: str, alternative_url: str | None = None) -> bool: """Inject a deprecation <item> into feeds/feed_<feed_name>.xml. The entry uses a stable GUID (``deprecation-notice-<feed_name>``) so repeated runs do not duplicate the notice. Returns True on success, False otherwise. """ feed_file = get_feeds_dir() / f"feed_{feed_name}.xml" if not feed_file.exists(): logger.error(f"Feed file not found: {feed_file}") return False tree = ET.parse(feed_file) root = tree.getroot() channel = root.find("channel") if channel is None: logger.error("No <channel> element found in feed XML") return False guid_value = f"{DEPRECATION_GUID_PREFIX}{feed_name}" for item in channel.findall("item"): guid = item.find("guid") if guid is not None and guid.text == guid_value: logger.info(f"Deprecation notice already present in {feed_file}, skipping") return True body = message if alternative_url: body += f"\n\nRecommended alternative: {alternative_url}" pub_date = format_rfc822(datetime.now(pytz.UTC)) notice = ET.Element("item") ET.SubElement(notice, "title").text = DEPRECATION_TITLE ET.SubElement(notice, "description").text = body ET.SubElement(notice, "guid", isPermaLink="false").text = guid_value ET.SubElement(notice, "pubDate").text = pub_date if alternative_url: ET.SubElement(notice, "link").text = alternative_url first_item = channel.find("item") if first_item is not None: idx = list(channel).index(first_item) channel.insert(idx, notice) else: channel.append(notice) tree.write(str(feed_file), xml_declaration=True, encoding="UTF-8", pretty_print=False) logger.info(f"Added deprecation notice to {feed_file}") logger.info( f"Next: remove the `{feed_name}:` entry from feeds.yaml, the feeds_{feed_name} Make " "target, and any README row; leave the XML in place." ) return True def main() -> None: parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) parser.add_argument("--feed", required=True, help="Feed name (e.g., 'openai_research')") parser.add_argument("--message", required=True, help="Notice body text") parser.add_argument("--alternative", default=None, help="Optional alternative feed URL") args = parser.parse_args() success = deprecate_feed(args.feed, args.message, args.alternative) raise SystemExit(0 if success else 1) if __name__ == "__main__": main() ================================================ FILE: feed_generators/google_ai_blog.py ================================================ from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed # TODO_IMPROVE: Add caching (Pattern 2) and "Load More" pagination support. # Currently only fetches the first page of results. Should: # 1. Add cache file (cache/google_ai_posts.json) with load_cache()/save_cache() # 2. Implement pagination to fetch all pages (check for "Load more" or page params) # 3. Support --full flag for full reset vs incremental updates # See cursor_blog.py or dagster_blog.py for reference implementation. logger = setup_logging() FEED_NAME = "google_ai" BLOG_URL = "https://developers.googleblog.com/search/?technology_categories=AI" def fetch_blog_content(url=BLOG_URL): """Fetch the HTML content of the Google Developers Blog AI page.""" try: logger.info(f"Fetching content from URL: {url}") html = fetch_page(url) logger.info("Content fetched successfully") return html except Exception as e: logger.error(f"Error fetching content: {e}") raise def parse_date(date_str): """Parse date string like 'DEC. 19, 2025' to datetime object.""" try: # Remove the period after the month abbreviation and normalize case # e.g., "MARCH 23, 2026" -> "March 23, 2026", "DEC. 19, 2025" -> "Dec 19, 2025" date_str = date_str.replace(".", "").strip().title() # Try abbreviated month first, then full month name for fmt in ("%b %d, %Y", "%B %d, %Y"): try: dt = datetime.strptime(date_str, fmt) break except ValueError: continue else: raise ValueError(f"No matching date format for '{date_str}'") # Make it timezone-aware (UTC) return dt.replace(tzinfo=pytz.UTC) except Exception as e: logger.warning(f"Could not parse date '{date_str}': {e}") return None def parse_blog_posts(html_content): """Parse blog posts from the HTML content.""" soup = BeautifulSoup(html_content, "html.parser") posts = [] # Find all search result items search_results = soup.find_all("li", class_="search-result") logger.info(f"Found {len(search_results)} blog posts") for result in search_results: try: # Extract eyebrow (contains date and category) eyebrow = result.find("p", class_="search-result__eyebrow") if not eyebrow: logger.warning("No eyebrow found, skipping post") continue eyebrow_text = eyebrow.get_text(strip=True) # Split by ' / ' to get date and category parts = eyebrow_text.split(" / ") if len(parts) < 1: logger.warning(f"Could not parse eyebrow: {eyebrow_text}") continue date_str = parts[0] category = parts[1] if len(parts) > 1 else "Uncategorized" # Extract title and link title_elem = result.find("h3", class_="search-result__title") if not title_elem: logger.warning("No title found, skipping post") continue link_elem = title_elem.find("a") if not link_elem: logger.warning("No link found in title, skipping post") continue title = link_elem.get_text(strip=True) relative_url = link_elem.get("href", "") # Make absolute URL if relative_url.startswith("/"): link = f"https://developers.googleblog.com{relative_url}" else: link = relative_url # Extract summary summary_elem = result.find("p", class_="search-result__summary") summary = summary_elem.get_text(strip=True) if summary_elem else "" # Extract featured image img_elem = result.find("img", class_="search-result__featured-img") image_url = img_elem.get("src", "") if img_elem else "" # Parse date pub_date = parse_date(date_str) post = { "title": title, "link": link, "summary": summary, "date": pub_date, "category": category, "image_url": image_url, } posts.append(post) logger.debug(f"Parsed post: {title}") except Exception as e: logger.error(f"Error parsing post: {e}") continue logger.info(f"Successfully parsed {len(posts)} posts") return posts def create_rss_feed(posts): """Create an RSS feed from the blog posts.""" fg = FeedGenerator() fg.title("Google Developers Blog - AI") fg.description("Latest AI-related posts from Google Developers Blog") setup_feed_links(fg, BLOG_URL, FEED_NAME) fg.language("en") # Sort posts for correct feed output (oldest first, feedgen reverses it) sorted_posts = sort_posts_for_feed(posts, date_field="date") # Add entries to feed for post in sorted_posts: fe = fg.add_entry() fe.title(post["title"]) fe.link(href=post["link"]) # Build description with summary and image description = "" if post.get("image_url"): description += f'<img src="{post["image_url"]}" alt="Featured image" /><br/><br/>' description += post["summary"] fe.description(description) if post.get("date"): fe.published(post["date"]) fe.updated(post["date"]) if post.get("category"): fe.category(term=post["category"]) return fg def main(): """Main function to generate the RSS feed.""" try: # Fetch blog content html_content = fetch_blog_content() # Parse blog posts posts = parse_blog_posts(html_content) if not posts: logger.warning("No posts found to add to the feed") return # Create and save RSS feed fg = create_rss_feed(posts) save_rss_feed(fg, FEED_NAME) logger.info("RSS feed generation completed successfully!") except Exception as e: logger.error(f"Error in main: {e}") raise if __name__ == "__main__": main() ================================================ FILE: feed_generators/groq_blog.py ================================================ """Generate RSS feed for the Groq Blog (https://groq.com/blog/). Simple static HTML scraper. Cards are rendered server-side in <article class="card"> elements; no pagination or JavaScript. No cache needed. """ import argparse from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import ( fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "groq" BLOG_URL = "https://groq.com/blog/" def parse_blog_html(html_content: str) -> list[dict]: """Extract articles from Groq's blog listing page.""" soup = BeautifulSoup(html_content, "html.parser") articles = [] seen_links = set() for card in soup.select("article.card"): title_link = card.select_one("h2.card__title a") if not title_link: continue href = title_link.get("href", "") if not href or href.rstrip("/") == "/blog": continue link = f"https://groq.com{href}" if href.startswith("/") else href if link in seen_links: continue seen_links.add(link) title = title_link.get_text(strip=True) if not title: continue date = None time_elem = card.select_one("time.card__eyebrow") if time_elem: datetime_attr = time_elem.get("datetime") if datetime_attr: try: date = datetime.fromisoformat(datetime_attr.replace("Z", "+00:00")) if date.tzinfo is None: date = date.replace(tzinfo=pytz.UTC) except ValueError: logger.warning(f"Could not parse datetime attribute: {datetime_attr}") if not date: date = stable_fallback_date(link) articles.append( { "title": title, "link": link, "date": date, "description": title, } ) logger.info(f"Parsed {len(articles)} articles") return articles def generate_rss_feed(articles: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("Groq Blog") fg.description("Latest news and updates from Groq") fg.language("en") fg.author({"name": "Groq"}) fg.subtitle("LPU inference, AI infrastructure, and developer updates") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for article in sort_posts_for_feed(articles, date_field="date"): fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.id(article["link"]) if article.get("date"): fe.published(article["date"]) logger.info(f"Generated RSS feed with {len(articles)} entries") return fg def main() -> bool: logger.info(f"Fetching {BLOG_URL}") html = fetch_page(BLOG_URL) articles = parse_blog_html(html) if not articles: logger.warning("No articles found. Check the HTML structure.") return False feed = generate_rss_feed(articles) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Groq Blog RSS feed") # --full is accepted for orchestrator compatibility even though the generator has no cache. parser.add_argument("--full", action="store_true", help="No-op (Groq has no cache)") parser.parse_args() main() ================================================ FILE: feed_generators/meta_ai_blog.py ================================================ """Generate RSS feed for AI at Meta Blog (https://ai.meta.com/blog/). React SPA with a "Load more" button. The page renders three distinct card layouts (hero, Latest News grid, "More from AI at Meta" grid) that this parser handles independently. Closes upstream issue #61. """ import argparse import contextlib import re import time from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, setup_selenium_driver, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "meta_ai" BLOG_URL = "https://ai.meta.com/blog/" DATE_PATTERN = re.compile( r"(January|February|March|April|May|June|July|August" r"|September|October|November|December)\s+\d{1,2},\s+\d{4}" ) # Meta AI's layout uses hashed CSS-module class names (_amto, _amcy, _amda, _amde, # _amsu, ...). These rotate when Meta rebuilds the site, so selector breakage is # the failure mode to expect. Mitigations: the parser walks three layouts # independently and falls back from class-based selectors to aria-label and # finally to separator-joined text. When a layout change lands, capture the new # page with ``curl`` or Selenium and update the class constants below. CATEGORIES = { "featured", "ml applications", "open source", "research", "computer vision", "hardware", "natural language processing", "generative ai", } def fetch_blog_content(url: str = BLOG_URL, max_clicks: int = 20) -> str: """Fetch the blog HTML after clicking "Load more" up to max_clicks times.""" driver = None try: logger.info(f"Fetching content from {url} (max_clicks={max_clicks})") driver = setup_selenium_driver() driver.get(url) time.sleep(5) try: WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href*="/blog/"]'))) logger.info("Blog articles loaded") except Exception: logger.warning("Could not confirm articles loaded, proceeding anyway") clicks = 0 while clicks < max_clicks: load_more = None with contextlib.suppress(Exception): candidate = driver.find_element(By.CSS_SELECTOR, "button._amto") if candidate.is_displayed(): load_more = candidate if not load_more: with contextlib.suppress(Exception): load_more = driver.find_element(By.XPATH, "//button[contains(text(), 'Load more')]") if load_more and load_more.is_displayed(): logger.info(f"Clicking 'Load more' button (click {clicks + 1})") driver.execute_script("arguments[0].click();", load_more) clicks += 1 time.sleep(2) else: logger.info(f"No more 'Load more' button after {clicks} clicks") break return driver.page_source finally: if driver: driver.quit() def parse_date(date_text: str) -> datetime | None: """Parse 'Month DD, YYYY' into a tz-aware datetime.""" date_text = date_text.strip() for fmt in ("%B %d, %Y", "%b %d, %Y"): try: return datetime.strptime(date_text, fmt).replace(tzinfo=pytz.UTC) except ValueError: continue return None def _extract_date_from_elements(elements, article_href: str) -> tuple[datetime | None, str]: """Walk elements looking for a date match (long or short month). Returns (date, matched_text).""" for elem in elements: text = elem.get_text(strip=True) date_match = DATE_PATTERN.search(text) if date_match: parsed = parse_date(date_match.group()) if parsed: return parsed, text for elem in elements: text = elem.get_text(strip=True) parsed = parse_date(text) if parsed: return parsed, text return None, "" def _append_article(articles, seen, href, title, date, category, description): """Append an article to the list if href is unseen. Mutates both collections.""" if href in seen or href in ("/blog/", "/blog"): return seen.add(href) if not date: date = stable_fallback_date(href) articles.append( { "title": title, "link": href, "date": date, "category": category, "description": description, } ) def _absolute_meta_url(href: str) -> str: return f"https://ai.meta.com{href}" if href.startswith("/") else href def extract_articles(soup: BeautifulSoup) -> list[dict]: """Extract articles from the three card layouts on the Meta AI blog.""" articles: list[dict] = [] seen: set[str] = set() # Hero card (featured, div._amcy) hero = soup.select_one("div._amcy") if hero: link = hero.find("a", href=True) if link: href = _absolute_meta_url(link.get("href", "")) title_elem = hero.find("div", class_="_amd1") title = title_elem.get_text(strip=True) if title_elem else "" if not title: aria = link.get("aria-label", "") title = aria.removeprefix("Read ").strip() if aria.startswith("Read ") else "" if title: # The hero's date container class has rotated (was _amdj, then # _amun, ...), so scan every <div> inside the hero with the # DATE_PATTERN regex instead of pinning to a single class. # Without this we fall through to stable_fallback_date(), which # (relying on Python's randomized hash()) buries the newest # post under a bogus pubDate. date, _ = _extract_date_from_elements(hero.find_all("div"), href) # Category: try the legacy explicit class, then the current # "FEATURED"-style badge, then default. Empty strings are # treated as missing so we don't emit empty <category/>. category = "AI" for cls in ("_amug", "_amd5"): cat_elem = hero.find("div", class_=cls) cat_text = cat_elem.get_text(strip=True) if cat_elem else "" if cat_text: category = cat_text.title() if cat_text.isupper() else cat_text break _append_article(articles, seen, href, title, date, category, title) # Latest News grid (div._amda) for card in soup.select("div._amda"): link = card.find("a", href=True) if not link: continue href = _absolute_meta_url(link.get("href", "")) title_elem = card.find("div", class_="_amde") title = title_elem.get_text(strip=True) if title_elem else "" if not title: aria = link.get("aria-label", "") title = aria.removeprefix("Read ").strip() if aria.startswith("Read ") else "" if not title: continue amdj_elems = card.select("div._amdj") date, matched_date_text = _extract_date_from_elements(amdj_elems, href) category = "AI" for elem in amdj_elems: text = elem.get_text(strip=True) if text == matched_date_text: continue if text.lower() in CATEGORIES: category = text break description = title desc_elem = card.find("p", class_="text-secondary") or card.find("p", class_="_amt3") if desc_elem: description = desc_elem.get_text(strip=True)[:300] _append_article(articles, seen, href, title, date, category, description) # "More from AI at Meta" grid (div._amsu) for card in soup.select("div._amsu"): link = card.find("a", href=True) if not link: continue href = _absolute_meta_url(link.get("href", "")) title_elem = card.find("p", class_="_amt2") title = title_elem.get_text(strip=True) if title_elem else "" if not title: continue cat_elem = card.find("p", class_="_amt0") category = cat_elem.get_text(strip=True) if cat_elem else "AI" date_elem = card.find("p", class_="_amt4") date, _ = _extract_date_from_elements([date_elem] if date_elem else [], href) desc_elem = card.find("p", class_="_amt3") description = desc_elem.get_text(strip=True)[:300] if desc_elem else title _append_article(articles, seen, href, title, date, category, description) logger.info(f"Parsed {len(articles)} articles") return articles def generate_rss_feed(articles: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("AI at Meta Blog") fg.description("Latest AI news and research from Meta") fg.language("en") fg.author({"name": "Meta AI"}) fg.subtitle("AI research, open source, and applications from Meta") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for article in sort_posts_for_feed(articles, date_field="date"): fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.id(article["link"]) fe.category(term=article["category"]) if article.get("date"): fe.published(article["date"]) logger.info(f"Generated RSS feed with {len(articles)} entries") return fg def main(full_reset: bool = False) -> bool: cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_entries: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") html = fetch_blog_content(max_clicks=20) else: logger.info("Running incremental update (3 clicks only)") html = fetch_blog_content(max_clicks=3) soup = BeautifulSoup(html, "html.parser") new_articles = extract_articles(soup) if cached_entries and not full_reset: articles = merge_entries(new_articles, cached_entries) else: articles = sort_posts_for_feed(new_articles, date_field="date") if not articles: logger.warning("No articles found. Check the HTML structure.") return False save_cache(FEED_NAME, articles) feed = generate_rss_feed(articles) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate AI at Meta Blog RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (click Load more up to 20 times)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/mistral_blog.py ================================================ """Generate RSS feed for Mistral AI News (https://mistral.ai/news). Selenium-driven numbered pagination. Unlike "Load more" SPAs that append content, Mistral replaces the article grid on each page navigation, so we parse after each click before advancing to the next page. """ import argparse import time from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, setup_selenium_driver, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "mistral" BLOG_URL = "https://mistral.ai/news" MAX_PAGES_FULL = 6 MAX_PAGES_INCREMENTAL = 1 def parse_page_articles(html: str) -> list[dict]: """Extract articles from a single page. Returns a deduped list per page. Page 1 has a hero card with <h1>; grid cards use <h2>. Cards live inside <a href="/news/..."> wrappers containing an <article> element. """ soup = BeautifulSoup(html, "html.parser") articles = [] seen_links = set() for card in soup.select('a[href^="/news/"]'): href = card.get("href", "") if not href or href.rstrip("/") == "/news": continue link = f"https://mistral.ai{href}" if link in seen_links: continue article_elem = card.find("article") if not article_elem: continue seen_links.add(link) title_elem = article_elem.find("h1") or article_elem.find("h2") if not title_elem: continue title = title_elem.get_text(strip=True) if len(title) < 3: continue category = "News" for span in article_elem.find_all("span"): classes = " ".join(span.get("class", [])) if "rounded-full" in classes and "border" in classes: cat_text = span.get_text(strip=True) if cat_text: category = cat_text break description = title for p in article_elem.find_all("p"): classes = " ".join(p.get("class", [])) if "opacity" in classes or "text-black/50" in classes: desc_text = p.get_text(strip=True) if desc_text: description = desc_text[:300] break date = None for div in article_elem.find_all("div"): if "text-sm" not in " ".join(div.get("class", [])): continue date_text = div.get_text(strip=True) for fmt in ("%b %d, %Y", "%B %d, %Y"): try: date = datetime.strptime(date_text, fmt).replace(tzinfo=pytz.UTC) break except ValueError: continue if date: break if not date: logger.warning(f"Could not parse date for article: {title}") date = stable_fallback_date(link) articles.append( { "title": title, "link": link, "date": date, "category": category, "description": description, } ) logger.info(f"Parsed {len(articles)} articles from page") return articles def fetch_all_articles(max_pages: int = MAX_PAGES_FULL) -> list[dict]: """Fetch articles across numbered pages using Selenium.""" driver = None all_articles: list[dict] = [] seen_links: set[str] = set() try: logger.info(f"Fetching articles from {BLOG_URL} (max_pages={max_pages})") driver = setup_selenium_driver() driver.get(BLOG_URL) time.sleep(5) try: WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href^="/news/"]'))) except Exception: logger.warning("Could not confirm articles loaded, proceeding anyway") for page_num in range(1, max_pages + 1): logger.info(f"Extracting articles from page {page_num}") page_articles = parse_page_articles(driver.page_source) new_count = 0 for article in page_articles: if article["link"] not in seen_links: all_articles.append(article) seen_links.add(article["link"]) new_count += 1 logger.info(f"Page {page_num}: {new_count} new articles (total: {len(all_articles)})") if page_num >= max_pages: break # The next-page arrow is the last button in the pagination row. next_btn = None pagination_buttons = driver.find_elements(By.CSS_SELECTOR, "button.size-8, button[class*='size-8']") if pagination_buttons: candidate = pagination_buttons[-1] try: candidate.find_element(By.TAG_NAME, "svg") next_btn = candidate except Exception: next_btn = None if not next_btn or not next_btn.is_displayed(): logger.info(f"No next button found after page {page_num}") break logger.info(f"Clicking next button to page {page_num + 1}") driver.execute_script("arguments[0].click();", next_btn) time.sleep(3) try: WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href^="/news/"]'))) except Exception: logger.warning("Timeout waiting for next page content") logger.info(f"Total articles fetched: {len(all_articles)}") return all_articles finally: if driver: driver.quit() def generate_rss_feed(articles: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("Mistral AI News") fg.description("Latest news and updates from Mistral AI") fg.language("en") fg.author({"name": "Mistral AI"}) fg.subtitle("News, research, and product updates from Mistral AI") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for article in sort_posts_for_feed(articles, date_field="date"): fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.id(article["link"]) fe.category(term=article["category"]) if article.get("date"): fe.published(article["date"]) logger.info(f"Generated RSS feed with {len(articles)} entries") return fg def main(full_reset: bool = False) -> bool: cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) pages = MAX_PAGES_FULL if (full_reset or not cached_entries) else MAX_PAGES_INCREMENTAL mode = "full reset" if full_reset else "no cache exists" if not cached_entries else "incremental update" logger.info(f"Running {mode} (max_pages={pages})") new_articles = fetch_all_articles(max_pages=pages) if cached_entries and not full_reset: articles = merge_entries(new_articles, cached_entries) else: articles = sort_posts_for_feed(new_articles, date_field="date") if not articles: logger.warning("No articles found. Check the HTML structure.") return False save_cache(FEED_NAME, articles) feed = generate_rss_feed(articles) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Mistral AI News RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch up to 6 pages)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/models.py ================================================ """Pydantic models for feed configuration and settings.""" from enum import StrEnum from pathlib import Path import yaml from pydantic import BaseModel, field_validator from pydantic_settings import BaseSettings class FeedType(StrEnum): REQUESTS = "requests" SELENIUM = "selenium" class FeedConfig(BaseModel): """Configuration for a single feed generator.""" script: str type: FeedType blog_url: str enabled: bool = True @field_validator("script") @classmethod def script_must_exist(cls, v: str) -> str: script_path = Path(__file__).parent / v if not script_path.exists(): msg = f"Script not found: {v}" raise ValueError(msg) return v class GlobalSettings(BaseSettings): """Project-wide settings, overridable via RSS_ env vars. Example: RSS_REPO_SLUG=oborchers/rss-feeds overrides the default. """ model_config = {"env_prefix": "RSS_"} repo_slug: str = "Olshansk/rss-feeds" def load_feed_registry() -> dict[str, FeedConfig]: """Load and validate feeds.yaml. Returns: Dict mapping feed name to validated FeedConfig. Raises: FileNotFoundError: If feeds.yaml is missing. ValidationError: If any feed config is invalid. """ registry_path = Path(__file__).parent.parent / "feeds.yaml" if not registry_path.exists(): msg = f"Feed registry not found: {registry_path}" raise FileNotFoundError(msg) with open(registry_path) as f: data = yaml.safe_load(f) feeds = {} for name, config in data.get("feeds", {}).items(): feeds[name] = FeedConfig(**config) return feeds ================================================ FILE: feed_generators/ollama_blog.py ================================================ from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging logger = setup_logging() FEED_NAME = "ollama" BLOG_URL = "https://ollama.com/blog" def fetch_blog_content(url=BLOG_URL): """Fetch blog content from the given URL.""" try: return fetch_page(url) except Exception as e: logger.error(f"Error fetching blog content: {e!s}") raise def parse_blog_html(html_content): """Parse the blog HTML content and extract post information.""" try: soup = BeautifulSoup(html_content, "html.parser") blog_posts = [] # Find all blog post sections posts = soup.select('section a[href^="/blog/"]') for post in posts: # Extract title title_elem = post.select_one("h2") if not title_elem: logger.warning("Skipping post: no title found") continue title = title_elem.text.strip() # Extract date date_elem = post.select_one("h3") if not date_elem: logger.warning(f"Skipping post '{title}': no date found") continue date_str = date_elem.text.strip() date_obj = datetime.strptime(date_str, "%B %d, %Y") # Extract description desc_elem = post.select_one("p") description = desc_elem.text.strip() if desc_elem else title # Extract link link = f"https://ollama.com{post['href']}" blog_posts.append( { "title": title, "date": date_obj, "description": description, "link": link, } ) logger.info(f"Successfully parsed {len(blog_posts)} blog posts") return blog_posts except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(blog_posts, feed_name=FEED_NAME): """Generate RSS feed from blog posts.""" try: fg = FeedGenerator() fg.title("Ollama Blog") fg.description("Get up and running with large language models.") setup_feed_links(fg, BLOG_URL, feed_name) fg.language("en") # Set feed metadata fg.author({"name": "Ollama"}) fg.logo("https://ollama.com/public/icon-64x64.png") fg.subtitle("Latest updates from Ollama") # Add entries for post in blog_posts: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.published(post["date"].replace(tzinfo=pytz.UTC)) fe.id(post["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(blog_url=BLOG_URL, feed_name=FEED_NAME): """Main function to generate RSS feed from blog URL.""" try: # Fetch blog content html_content = fetch_blog_content(blog_url) # Parse blog posts from HTML blog_posts = parse_blog_html(html_content) # Generate RSS feed feed = generate_rss_feed(blog_posts, feed_name) # Save feed to file save_rss_feed(feed, feed_name) return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/paulgraham_blog.py ================================================ import re from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, stable_fallback_date logger = setup_logging() FEED_NAME = "paulgraham" BLOG_URL = "https://paulgraham.com/articles.html" def extract_date_from_text(text): """Helper function to extract date from text.""" months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ] # Match "Month YYYY" pattern for month in months: pattern = f"{month}\\s+\\d{{4}}" match = re.search(pattern, text) if match: date_str = match.group(0) try: date = datetime.strptime(f"{date_str} 1", "%B %Y %d") return date.replace(tzinfo=pytz.UTC) except ValueError: continue return None def get_article_content(article_html): """Extract the full article content and date.""" try: soup = BeautifulSoup(article_html, "html.parser") content = None pub_date = None # Find the main content fonts = soup.find_all("font", size="2") for font in fonts: text = font.get_text().strip() if len(text) > 100: # Main content is usually the longest text block content = text pub_date = extract_date_from_text(text) if pub_date: # Remove the date from the beginning of the content content = re.sub(r"^[A-Za-z]+ \d{4}", "", content).lstrip() break return content, pub_date except Exception as e: logger.error(f"Error extracting content: {e!s}") return None, None def parse_essays_page(html_content, base_url="https://paulgraham.com", max_essays=300): """Parse the essays HTML page and extract blog post information. Args: html_content: HTML content of the essays page base_url: Base URL for the website max_essays: Maximum number of recent essays to fetch (default: 300) """ try: soup = BeautifulSoup(html_content, "html.parser") blog_posts = [] # Find all essay links links = soup.select('font[size="2"] a') logger.info(f"Found {len(links)} total essays, will fetch up to {max_essays} most recent") # Limit to first N essays (they're listed in reverse chronological order) links_to_process = links[:max_essays] for link in links_to_process: # Extract title and link title = link.text.strip() href = link.get("href") if not href: continue full_url = f"{base_url}/{href}" if not href.startswith("http") else href logger.info(f"Fetching article: {title}") # Fetch article content once and reuse it article_html = fetch_page(full_url) content, pub_date = get_article_content(article_html) if content: description = content[:500] + "..." if len(content) > 500 else content else: description = "No description available" blog_post = { "title": title, "link": full_url, "description": description, "date": pub_date or stable_fallback_date(full_url), # Fallback to stable date if none found } # There are a handful (~7) old blog posts where parsing the date doesn't work very well. # In order to avoid sending hourly emails for this, we're just skipping them altogether. # We can spend more time on this if/when it ever becomes an issue. if pub_date: blog_posts.append(blog_post) else: logger.warning(f"Skipping post '{title}' - no date found") logger.info(f"Successfully parsed {len(blog_posts)} blog posts") return blog_posts except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(blog_posts): """Generate RSS feed from blog posts.""" try: fg = FeedGenerator() fg.title("Paul Graham Essays") fg.description("Essays by Paul Graham") fg.language("en") # Set feed metadata fg.author({"name": "Paul Graham"}) fg.subtitle("Paul Graham's Essays and Writings") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) # Add entries for post in blog_posts: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.published(post["date"]) fe.id(post["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(): """Main function to generate RSS feed from blog URL.""" try: # Fetch blog content html_content = fetch_page(BLOG_URL) # Parse blog posts blog_posts = parse_essays_page(html_content) # Generate RSS feed feed = generate_rss_feed(blog_posts) # Save feed to file save_rss_feed(feed, FEED_NAME) return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/perplexity_hub.py ================================================ """Generate RSS feed for the Perplexity Hub (https://www.perplexity.ai/hub). The hub is a Framer-built SPA that renders client-side. We use Selenium plus a CDP command to force an Accept-Language: en-US header, since Perplexity geo-redirects based on the request header (not URL or cookies). Without it the scraper would get localized content and localized URLs. """ import argparse import contextlib import re import time from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from utils import ( DEFAULT_USER_AGENT, deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, setup_selenium_driver, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "perplexity_hub" BLOG_URL = "https://www.perplexity.ai/hub" # A <p> is treated as a date (and skipped for category) if it contains an # English or German month name. Year-only strings are not enough, since # categories like "Q&A 2024" contain a year without being dates. DATE_PATTERN = re.compile( r"\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec" r"|Januar|Februar|März|April|Mai|Juni|Juli|August" r"|September|Oktober|November|Dezember)\b" ) LOCALE_PREFIX = re.compile(r"(perplexity\.ai)/[a-z]{2}/hub/") def _force_english_locale(driver) -> None: """Override the Accept-Language header via CDP so Perplexity serves en-US content.""" driver.execute_cdp_cmd("Network.enable", {}) driver.execute_cdp_cmd( "Network.setUserAgentOverride", { "userAgent": DEFAULT_USER_AGENT, "acceptLanguage": "en-US,en;q=0.9", }, ) def fetch_hub_content(url: str = BLOG_URL) -> str: """Fetch the fully rendered HTML of the Perplexity Hub via Selenium.""" driver = None try: logger.info(f"Fetching content from {url}") driver = setup_selenium_driver() _force_english_locale(driver) driver.get(url) time.sleep(5) try: WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a[href*="/hub/blog/"]'))) logger.info("Blog articles loaded") except Exception: logger.warning("Could not confirm articles loaded, proceeding anyway") driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(2) return driver.page_source finally: if driver: driver.quit() def _canonicalize_link(href: str) -> str: """Build a full URL and strip any locale prefix (/de/hub/ -> /hub/).""" if href.startswith("./"): link = f"https://www.perplexity.ai/{href[2:]}" elif href.startswith("/"): link = f"https://www.perplexity.ai{href}" elif href.startswith("http"): link = href else: link = f"https://www.perplexity.ai/{href}" return LOCALE_PREFIX.sub(r"\1/hub/", link) def _extract_title(card) -> str | None: for tag in ("h4", "h6", "h3", "h2", "h5"): elem = card.select_one(tag) if elem and elem.text.strip(): return elem.text.strip() text = card.get_text(strip=True) return text[:150] if text and len(text) > 5 else None def _extract_date(card) -> datetime | None: time_elem = card.select_one("time") if not time_elem: return None datetime_attr = time_elem.get("datetime") if not datetime_attr: return None with contextlib.suppress(ValueError): date = datetime.fromisoformat(datetime_attr.replace("Z", "+00:00")) if date.tzinfo is None: date = date.replace(tzinfo=pytz.UTC) return date return None def _extract_category(card) -> str: """Category lives in <p> tags; skip the ones that look like dates.""" for p in card.select("p"): text = p.text.strip() if len(text) < 3 or len(text) > 30: continue if DATE_PATTERN.search(text): continue return text return "Blog" def validate_article(article: dict) -> bool: if not article.get("title") or len(article["title"]) < 5: logger.warning(f"Invalid title for article: {article.get('link', 'unknown')}") return False if not article.get("link") or not article["link"].startswith("http"): logger.warning(f"Invalid link for article: {article.get('title', 'unknown')}") return False if not article.get("date"): logger.warning(f"Missing date for article: {article.get('title', 'unknown')}") return False return True def parse_hub_html(html_content: str) -> list[dict]: """Extract articles from the Perplexity Hub. Hero and article cards are both <a href="./hub/blog/..."> wrappers. Hero cards have <h4> titles and no <time>; article cards have <h6>, a <time datetime="...">, and <p> tags for category/date labels. """ soup = BeautifulSoup(html_content, "html.parser") articles = [] seen_links = set() all_links = soup.select('a[href*="/hub/blog/"]') logger.info(f"Found {len(all_links)} potential blog article links") for card in all_links: href = card.get("href", "") if not href: continue link = _canonicalize_link(href) if link in seen_links: continue seen_links.add(link) title = _extract_title(card) if not title: logger.debug(f"Could not extract title for link: {link}") continue date = _extract_date(card) or stable_fallback_date(link) category = _extract_category(card) article = { "title": title, "link": link, "date": date, "category": category, "description": title, } if validate_article(article): articles.append(article) logger.info(f"Parsed {len(articles)} valid articles") return articles def generate_rss_feed(articles: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("Perplexity Blog") fg.description("Latest news, updates, and research from Perplexity AI") fg.language("en") fg.author({"name": "Perplexity AI"}) fg.logo("https://www.perplexity.ai/favicon.ico") fg.subtitle("Updates from Perplexity AI") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for article in sort_posts_for_feed(articles, date_field="date"): fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.id(article["link"]) fe.category(term=article["category"]) fe.published(article["date"]) logger.info(f"Generated RSS feed with {len(articles)} entries") return fg def main(full_reset: bool = False) -> bool: cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_entries: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") else: logger.info("Running incremental update") html = fetch_hub_content() new_articles = parse_hub_html(html) if cached_entries and not full_reset: articles = merge_entries(new_articles, cached_entries) else: articles = sort_posts_for_feed(new_articles, date_field="date") if not articles: logger.warning("No articles found. Check the HTML structure.") return False save_cache(FEED_NAME, articles) feed = generate_rss_feed(articles) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Perplexity Hub RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (ignore cache)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/pinecone_blog.py ================================================ """Generate RSS feed for the Pinecone Blog (https://www.pinecone.io/blog/). Selenium "Load More" pagination. Two card layouts: featured posts at the top (title-focused) and list-view rows below (with category + date metadata). """ import argparse import contextlib import time from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from selenium.webdriver.common.by import By from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, setup_selenium_driver, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "pinecone" BLOG_URL = "https://www.pinecone.io/blog/?view=list" DISPLAY_URL = "https://www.pinecone.io/blog/" MAX_CLICKS_FULL = 15 MAX_CLICKS_INCREMENTAL = 3 def fetch_blog_content(max_clicks: int = MAX_CLICKS_FULL) -> str: """Load the blog and click "Load More" up to max_clicks times.""" driver = None try: logger.info(f"Fetching content from {BLOG_URL} (max_clicks={max_clicks})") driver = setup_selenium_driver() driver.get(BLOG_URL) time.sleep(5) clicks = 0 while clicks < max_clicks: try: load_more = driver.find_element( By.XPATH, "//button[.//span[text()='Load More'] or text()='Load More']", ) except Exception: logger.info(f"No more 'Load More' button found after {clicks} clicks") break if not load_more.is_displayed(): logger.info("'Load More' button not visible, stopping") break logger.info(f"Clicking 'Load More' (click {clicks + 1})") driver.execute_script("arguments[0].click();", load_more) clicks += 1 time.sleep(2) logger.info(f"Fetched page source after {clicks} clicks") return driver.page_source finally: if driver: driver.quit() def _parse_short_date(text: str) -> datetime | None: text = text.strip() if not text: return None with contextlib.suppress(ValueError): return datetime.strptime(text, "%b %d, %Y").replace(tzinfo=pytz.UTC) return None def parse_blog_html(html: str) -> list[dict]: """Extract posts from the featured section and the list-view rows.""" soup = BeautifulSoup(html, "html.parser") posts: list[dict] = [] seen_links: set[str] = set() # Featured posts at the top of the page for card in soup.select('a[href^="/blog/"][href$="/"]'): href = card.get("href", "") if href.rstrip("/") == "/blog" or "/tag" in href: continue title_elem = card.select_one("h2") if not title_elem: continue title = title_elem.text.strip() link = f"https://www.pinecone.io{href}" if link in seen_links: continue seen_links.add(link) date_elem = card.select_one("span.text-text-secondary") date = _parse_short_date(date_elem.text) if date_elem else None if not date: date = stable_fallback_date(link) cat_elem = card.select_one("span.text-brand-blue, span[class*='brand']") category = cat_elem.text.strip() if cat_elem else "" posts.append( { "link": link, "title": title, "date": date, "category": category, "description": title, } ) # List-view rows for row in soup.select('a[target="_self"][href^="/blog/"]'): href = row.get("href", "") link = f"https://www.pinecone.io{href}" if link in seen_links: continue seen_links.add(link) title_elem = row.select_one("div.text-xl") title = title_elem.text.strip() if title_elem else "" if not title: continue secondary_divs = row.select("div.text-text-secondary") category = secondary_divs[0].text.strip() if len(secondary_divs) > 0 else "" date_text = secondary_divs[1].text.strip() if len(secondary_divs) > 1 else "" date = _parse_short_date(date_text) or stable_fallback_date(link) posts.append( { "link": link, "title": title, "date": date, "category": category, "description": title, } ) logger.info(f"Parsed {len(posts)} posts") return posts def generate_rss_feed(posts: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("Pinecone Blog") fg.description("Latest from Pinecone: insights, tutorials, and updates on vector databases and AI infrastructure.") fg.language("en") fg.author({"name": "Pinecone"}) fg.subtitle("Latest updates from Pinecone") setup_feed_links(fg, blog_url=DISPLAY_URL, feed_name=FEED_NAME) for post in sort_posts_for_feed(posts, date_field="date"): fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.id(post["link"]) if post.get("category"): fe.category(term=post["category"]) if post.get("date"): fe.published(post["date"]) logger.info(f"Generated RSS feed with {len(posts)} entries") return fg def main(full_reset: bool = False) -> bool: cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) clicks = MAX_CLICKS_FULL if (full_reset or not cached_entries) else MAX_CLICKS_INCREMENTAL html = fetch_blog_content(max_clicks=clicks) new_posts = parse_blog_html(html) if cached_entries and not full_reset: posts = merge_entries(new_posts, cached_entries) else: posts = sort_posts_for_feed(new_posts, date_field="date") if not posts: logger.warning("No posts found. Check the HTML structure.") return False save_cache(FEED_NAME, posts) feed = generate_rss_feed(posts) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Pinecone Blog RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (Load More up to 15 times)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/run_all_feeds.py ================================================ import argparse import logging import os import subprocess import sys from models import FeedConfig, FeedType, load_feed_registry # Set up logging logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") logger = logging.getLogger(__name__) def run_feed(feed_name: str, config: FeedConfig, full: bool = False) -> bool: """Run a single feed generator. Args: feed_name: Registry name of the feed. config: Validated feed configuration. full: If True, pass --full flag to the generator. Returns: True if the generator succeeded, False otherwise. """ script_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), config.script) cmd = ["uv", "run", script_path] if full: cmd.append("--full") logger.info(f"Running {feed_name}: {script_path}") result = subprocess.run(cmd, capture_output=True, text=True) if result.returncode == 0: logger.info(f"Successfully ran: {feed_name}") return True else: logger.error(f"Error running {feed_name}:\n{result.stderr}") return False def run_all_feeds( skip_selenium: bool = False, selenium_only: bool = False, feed: str | None = None, full: bool = False, ) -> int: """Run feed generators from the registry. Args: skip_selenium: Skip Selenium-based generators (for hourly requests workflow). selenium_only: Run only Selenium-based generators (for hourly Selenium workflow). feed: Run a single feed by name. Overrides skip_selenium/selenium_only. full: Pass --full flag to generators (full reset instead of incremental). Returns: Exit code (0 for success, 1 if any feed failed). """ registry = load_feed_registry() # Single feed mode if feed: if feed not in registry: logger.error(f"Feed '{feed}' not found in registry. Available: {', '.join(sorted(registry))}") return 1 config = registry[feed] if not config.enabled: logger.warning(f"Feed '{feed}' is disabled in feeds.yaml") return 1 ok = run_feed(feed, config, full=full) return 0 if ok else 1 # Multi-feed mode failed_scripts = [] successful_scripts = [] skipped_scripts = [] for name, config in sorted(registry.items()): if not config.enabled: logger.info(f"Skipping disabled feed: {name}") skipped_scripts.append(name) continue is_selenium = config.type == FeedType.SELENIUM if skip_selenium and is_selenium: logger.info(f"Skipping Selenium generator: {name}") skipped_scripts.append(name) continue if selenium_only and not is_selenium: logger.info(f"Skipping non-Selenium generator: {name}") skipped_scripts.append(name) continue ok = run_feed(name, config, full=full) if ok: successful_scripts.append(name) else: failed_scripts.append(name) # Summary logger.info(f"\n{'=' * 60}") logger.info("Feed Generation Summary:") logger.info(f" Successful: {len(successful_scripts)}") logger.info(f" Failed: {len(failed_scripts)}") logger.info(f" Skipped: {len(skipped_scripts)}") if successful_scripts: logger.info("\nSuccessful feeds:") for name in successful_scripts: logger.info(f" ✓ {name}") if failed_scripts: logger.error("\nFailed feeds:") for name in failed_scripts: logger.error(f" ✗ {name}") logger.error(f"\nERROR: {len(failed_scripts)} feed(s) failed to generate") return 1 if skipped_scripts: logger.info("\nSkipped feeds:") for name in skipped_scripts: logger.info(f" ○ {name}") logger.info(f"{'=' * 60}\n") return 0 if __name__ == "__main__": parser = argparse.ArgumentParser(description="Run RSS feed generators") parser.add_argument( "--skip-selenium", action="store_true", help="Skip Selenium-based generators (for hourly requests workflow)", ) parser.add_argument( "--selenium-only", action="store_true", help="Run only Selenium-based generators (for hourly Selenium workflow)", ) parser.add_argument( "--feed", type=str, help="Run a single feed by name (e.g., --feed=ollama)", ) parser.add_argument( "--full", action="store_true", help="Pass --full to generators (full reset instead of incremental)", ) args = parser.parse_args() if args.skip_selenium and args.selenium_only: logger.error("Cannot use both --skip-selenium and --selenium-only") sys.exit(1) exit_code = run_all_feeds( skip_selenium=args.skip_selenium, selenium_only=args.selenium_only, feed=args.feed, full=args.full, ) sys.exit(exit_code) ================================================ FILE: feed_generators/thinkingmachines_blog.py ================================================ import os import sys from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import ( fetch_page, get_project_root, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "thinkingmachines" BLOG_URL = "https://thinkingmachines.ai/blog/" def parse_date(date_text): """Parse dates with multiple format support.""" if not date_text: return None date_text = date_text.strip() current_year = datetime.now().year # List of date formats to try date_formats = [ "%b %d", # "Nov 7", "Oct 29" "%B %d", # "November 7", "October 29" "%b %d, %Y", # "Nov 7, 2025" "%B %d, %Y", # "November 7, 2025" "%Y-%m-%d", # "2025-11-07" "%m/%d/%Y", # "11/07/2025" ] for date_format in date_formats: try: date = datetime.strptime(date_text, date_format) # If the format doesn't include year, add current year if "%Y" not in date_format: date = date.replace(year=current_year) return date.replace(tzinfo=pytz.UTC) except ValueError: continue # If all formats fail, log warning and return None logger.warning(f"Could not parse date: {date_text}") return None def extract_articles(soup): """Extract article information from HTML.""" articles = [] seen_links = set() # Find all post items post_items = soup.select("li a.post-item-link") logger.info(f"Found {len(post_items)} potential articles") for item in post_items: try: # Extract link href = item.get("href", "") if not href: continue # Build full URL link = f"https://thinkingmachines.ai{href}" if href.startswith("/") else href # Skip duplicates if link in seen_links: continue seen_links.add(link) # Extract date from time element date_elem = item.select_one("time.desktop-time") date_text = date_elem.get_text(strip=True) if date_elem else None pub_date = parse_date(date_text) or stable_fallback_date(link) # Extract title title_elem = item.select_one("div.post-title") title = title_elem.get_text(strip=True) if title_elem else "Untitled" # Extract author from author-date div author_elem = item.select_one("div.author-date") author_text = "" if author_elem: # Get the text before the mobile date separator author_text = author_elem.get_text(strip=True) # Remove the date part (after the separator) if "·" in author_text: author_text = author_text.split("·")[0].strip() if not author_text: author_text = "Thinking Machines Lab" # Create article object article = { "title": title, "link": link, "description": f"{title} by {author_text}", "date": pub_date, "author": author_text, } articles.append(article) logger.info(f"Parsed: {title} ({date_text}) by {author_text}") except Exception as e: logger.warning(f"Failed to parse article: {e!s}") continue # Sort for correct feed order (newest first in output) articles = sort_posts_for_feed(articles) logger.info(f"Successfully parsed {len(articles)} articles") return articles def parse_html(html_content): """Parse HTML content.""" try: soup = BeautifulSoup(html_content, "html.parser") return extract_articles(soup) except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(articles): """Generate RSS feed using feedgen.""" try: fg = FeedGenerator() fg.title("Thinking Machines Lab - Connectionism") fg.description("Research blog by Thinking Machines Lab - Shared science and news from the team") fg.language("en") # Set feed metadata fg.author({"name": "Thinking Machines Lab"}) fg.subtitle("Shared science and news from the team") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) # Add entries for article in articles: fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.published(article["date"]) fe.author({"name": article["author"]}) fe.id(article["link"]) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(html_file=None): """Main entry point with local file support.""" try: # Check for local HTML file if html_file and os.path.exists(html_file): logger.info(f"Reading HTML from local file: {html_file}") with open(html_file, encoding="utf-8") as f: html_content = f.read() else: # Check common locations for local HTML file common_locations = [ "ThinkingMachines.html", get_project_root() / "ThinkingMachines.html", ] local_file_found = False for location in common_locations: if os.path.exists(location): logger.info(f"Found local HTML file: {location}") with open(location, encoding="utf-8") as f: html_content = f.read() local_file_found = True break if not local_file_found: # Fetch from website logger.info("Fetching content from website") html_content = fetch_page(BLOG_URL) # Parse articles articles = parse_html(html_content) # Generate RSS feed feed = generate_rss_feed(articles) # Save feed to file save_rss_feed(feed, FEED_NAME) logger.info(f"Successfully generated RSS feed with {len(articles)} articles") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": html_file = sys.argv[1] if len(sys.argv) > 1 else None main(html_file=html_file) ================================================ FILE: feed_generators/utils.py ================================================ """Shared utilities for feed generators.""" import json import logging import re import subprocess from datetime import datetime, timedelta from pathlib import Path from typing import Any import pytz import requests from feedgen.feed import FeedGenerator from models import GlobalSettings # --------------------------------------------------------------------------- # Constants # --------------------------------------------------------------------------- DEFAULT_USER_AGENT = ( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" ) DEFAULT_HEADERS = {"User-Agent": DEFAULT_USER_AGENT} # --------------------------------------------------------------------------- # Logging # --------------------------------------------------------------------------- def setup_logging(name: str | None = None) -> logging.Logger: """Configure logging and return a logger for the calling module. Call once at module level: ``logger = setup_logging()`` """ logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s", ) if name is None: import inspect frame_info = inspect.stack()[1] frame = getattr(frame_info, "frame", frame_info[0]) name = frame.f_globals.get("__name__", __name__) return logging.getLogger(name) logger = setup_logging() # --------------------------------------------------------------------------- # Path helpers # --------------------------------------------------------------------------- def get_project_root() -> Path: """Get the project root directory.""" return Path(__file__).parent.parent def get_cache_dir() -> Path: """Get the cache directory path, creating it if needed.""" cache_dir = get_project_root() / "cache" cache_dir.mkdir(exist_ok=True) return cache_dir def get_feeds_dir() -> Path: """Get the feeds directory path, creating it if needed.""" feeds_dir = get_project_root() / "feeds" feeds_dir.mkdir(exist_ok=True) return feeds_dir def get_cache_file(feed_name: str) -> Path: """Get the cache file path for a feed. Args: feed_name: Feed identifier (e.g., "dagster", "cursor") Returns: Path to ``cache/<feed_name>_posts.json`` """ return get_cache_dir() / f"{feed_name}_posts.json" # --------------------------------------------------------------------------- # HTTP # --------------------------------------------------------------------------- def fetch_page(url: str, timeout: int = 30, headers: dict | None = None) -> str: """Fetch a page and return its HTML content. Args: url: URL to fetch timeout: Request timeout in seconds headers: Optional headers dict. Falls back to DEFAULT_HEADERS. Returns: Response text (HTML) """ if headers is None: headers = DEFAULT_HEADERS response = requests.get(url, headers=headers, timeout=timeout) response.raise_for_status() return response.text # --------------------------------------------------------------------------- # Date helpers # --------------------------------------------------------------------------- def stable_fallback_date(identifier: str) -> datetime: """Generate a stable date from a URL or title hash. Used when a post has no parseable date. The hash ensures the same identifier always produces the same fallback date, preventing cache churn. """ hash_val = abs(hash(identifier)) % 730 epoch = datetime(2023, 1, 1, 0, 0, 0, tzinfo=pytz.UTC) return epoch + timedelta(days=hash_val) # --------------------------------------------------------------------------- # Cache management # --------------------------------------------------------------------------- def load_cache(feed_name: str, entries_key: str = "entries") -> dict: """Load existing cache or return empty structure. Args: feed_name: Feed identifier used to locate the cache file. entries_key: Key under which entries are stored (default "entries"). Returns: Dict with ``last_updated`` and the entries list. """ cache_file = get_cache_file(feed_name) if cache_file.exists(): try: with open(cache_file) as f: data = json.load(f) logger.info(f"Loaded cache with {len(data.get(entries_key, []))} entries") return data except json.JSONDecodeError: logger.warning(f"Corrupted cache file {cache_file}, starting fresh") logger.info("No cache file found, will do full fetch") return {"last_updated": None, entries_key: []} def save_cache(feed_name: str, entries: list[dict], entries_key: str = "entries") -> None: """Save entries to cache file with automatic datetime serialization. Args: feed_name: Feed identifier used to locate the cache file. entries: List of entry dicts to cache. entries_key: Key under which entries are stored (default "entries"). """ cache_file = get_cache_file(feed_name) serializable = [] for entry in entries: entry_copy = entry.copy() for key, value in entry_copy.items(): if isinstance(value, datetime): entry_copy[key] = value.isoformat() serializable.append(entry_copy) data = { "last_updated": datetime.now(pytz.UTC).isoformat(), entries_key: serializable, } with open(cache_file, "w") as f: json.dump(data, f, indent=2, ensure_ascii=False) logger.info(f"Saved cache with {len(entries)} entries to {cache_file}") def deserialize_entries(entries: list[dict], date_field: str = "date") -> list[dict]: """Convert cached entries back to proper format with datetime objects. Args: entries: List of entry dicts from cache. date_field: Key name for the date field to deserialize. Returns: Entries with ISO date strings converted back to datetime objects. """ result = [] for entry in entries: entry_copy = entry.copy() if isinstance(entry_copy.get(date_field), str): try: entry_copy[date_field] = datetime.fromisoformat(entry_copy[date_field]) except ValueError: entry_copy[date_field] = stable_fallback_date(entry_copy.get("link", "")) result.append(entry_copy) return result def merge_entries( new_entries: list[dict], cached_entries: list[dict], id_field: str = "link", date_field: str = "date", ) -> list[dict]: """Merge new entries into cache, deduplicate, and sort. Args: new_entries: Freshly fetched entries. cached_entries: Previously cached entries. id_field: Field used for deduplication (default "link"). date_field: Field used for sorting (default "date"). Returns: Merged and sorted list of entries. """ existing_ids = {e[id_field] for e in cached_entries} merged = list(cached_entries) added_count = 0 for entry in new_entries: if entry[id_field] not in existing_ids: merged.append(entry) existing_ids.add(entry[id_field]) added_count += 1 logger.info(f"Added {added_count} new entries to cache") return sort_posts_for_feed(merged, date_field=date_field) # --------------------------------------------------------------------------- # Feed generation # --------------------------------------------------------------------------- def setup_feed_links(fg: FeedGenerator, blog_url: str, feed_name: str) -> None: """Set up feed links correctly so <link> points to the blog, not the feed. In feedgen, link order matters: - rel="self" must be set FIRST (becomes <atom:link rel="self">) - rel="alternate" must be set LAST (becomes the main <link>) The repo slug is configurable via the RSS_REPO_SLUG environment variable, defaulting to "Olshansk/rss-feeds". Fork users can override it: RSS_REPO_SLUG=oborchers/rss-feeds uv run feed_generators/ollama_blog.py Args: fg: FeedGenerator instance blog_url: URL to the original blog (e.g., "https://dagster.io/blog") feed_name: Feed name for the self link (e.g., "dagster") """ settings = GlobalSettings() fg.link( href=f"https://raw.githubusercontent.com/{settings.repo_slug}/main/feeds/feed_{feed_name}.xml", rel="self", ) fg.link(href=blog_url, rel="alternate") def sort_posts_for_feed(posts: list[dict[str, Any]], date_field: str = "date") -> list[dict[str, Any]]: """Sort posts so newest appears first in the final RSS feed. IMPORTANT: feedgen reverses the order when writing entries to XML. So we sort ASCENDING (oldest first) here, which becomes DESCENDING (newest first) in the final feed output. Args: posts: List of post dicts with date fields date_field: Key name for the date field (default: "date") Returns: Sorted list with posts ordered for correct feed output """ posts_with_date = [p for p in posts if p.get(date_field) is not None] posts_without_date = [p for p in posts if p.get(date_field) is None] posts_with_date.sort(key=lambda x: x[date_field]) return posts_with_date + posts_without_date def save_rss_feed(fg: FeedGenerator, feed_name: str) -> Path: """Save an RSS feed to the feeds directory. Args: fg: Configured FeedGenerator instance. feed_name: Feed identifier (e.g., "dagster"). Returns: Path to the written XML file. """ feeds_dir = get_feeds_dir() output_file = feeds_dir / f"feed_{feed_name}.xml" fg.rss_file(str(output_file), pretty=True) logger.info(f"Saved RSS feed to {output_file}") return output_file # --------------------------------------------------------------------------- # Chrome / Selenium # --------------------------------------------------------------------------- def get_chrome_major_version() -> int | None: """Detect the installed Chrome major version. Returns the major version number (e.g., 146) or None if detection fails. This is needed because undetected_chromedriver auto-downloads the latest chromedriver, which may not match the installed Chrome version. """ chrome_paths = [ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", "google-chrome", "google-chrome-stable", ] for path in chrome_paths: try: result = subprocess.run([path, "--version"], capture_output=True, text=True, timeout=5) match = re.search(r"(\d+)\.", result.stdout) if match: version = int(match.group(1)) logger.info(f"Detected Chrome major version: {version}") return version except (FileNotFoundError, subprocess.TimeoutExpired): continue logger.warning("Could not detect Chrome version, using undetected_chromedriver default") return None def setup_selenium_driver(): """Set up a headless Selenium WebDriver with undetected-chromedriver. Automatically detects the installed Chrome version to avoid chromedriver version mismatches. """ import undetected_chromedriver as uc options = uc.ChromeOptions() options.add_argument("--headless=new") options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--window-size=1920,1080") options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument(f"--user-agent={DEFAULT_USER_AGENT}") version = get_chrome_major_version() return uc.Chrome(options=options, version_main=version) ================================================ FILE: feed_generators/validate_feeds.py ================================================ """Validate all RSS feeds for empty content and stale items.""" import sys import xml.etree.ElementTree as ET from datetime import UTC, datetime from email.utils import parsedate_to_datetime from pathlib import Path STALE_THRESHOLD_DAYS = 60 FEEDS_DIR = Path(__file__).parent.parent / "feeds" def validate_feed(feed_path): """Validate a single feed file. Returns: dict with keys: name, item_count, newest_date, status, message """ name = feed_path.name try: tree = ET.parse(feed_path) except ET.ParseError as e: return { "name": name, "item_count": 0, "newest_date": None, "status": "ERROR", "message": f"XML parse error: {e}", } root = tree.getroot() items = root.findall(".//item") item_count = len(items) if item_count == 0: return { "name": name, "item_count": 0, "newest_date": None, "status": "EMPTY", "message": "0 items", } # Find newest pubDate newest = None for item in items: pub_date = item.find("pubDate") if pub_date is not None and pub_date.text: try: dt = parsedate_to_datetime(pub_date.text) if newest is None or dt > newest: newest = dt except (ValueError, TypeError): continue if newest is None: return { "name": name, "item_count": item_count, "newest_date": None, "status": "OK", "message": f"{item_count} items, no parseable dates", } days_ago = (datetime.now(UTC) - newest).days if days_ago > STALE_THRESHOLD_DAYS: return { "name": name, "item_count": item_count, "newest_date": newest, "status": "STALE", "message": f"{item_count} items, newest: {newest.strftime('%Y-%m-%d')} ({days_ago} days ago)", } return { "name": name, "item_count": item_count, "newest_date": newest, "status": "OK", "message": f"{item_count} items, newest: {newest.strftime('%Y-%m-%d')}", } def main(): feeds = sorted(FEEDS_DIR.glob("feed_*.xml")) if not feeds: print("No feed files found in feeds/") sys.exit(1) results = [validate_feed(f) for f in feeds] # Print summary print(f"\nFeed Validation Summary ({len(results)} feeds):") print(f"{'=' * 70}") for r in results: print(f" {r['name']:50s} {r['status']:5s} {r['message']}") empty = [r for r in results if r["status"] == "EMPTY"] stale = [r for r in results if r["status"] == "STALE"] errors = [r for r in results if r["status"] == "ERROR"] print(f"{'=' * 70}") if errors: print(f"\nERRORS: {len(errors)} feed(s) with XML parse errors") for r in errors: print(f" {r['name']}: {r['message']}") if empty: print(f"\nERRORS: {len(empty)} empty feed(s)") for r in empty: print(f" {r['name']}") if stale: print(f"\nWARNINGS: {len(stale)} stale feed(s) (>{STALE_THRESHOLD_DAYS} days)") for r in stale: print(f" {r['name']}: {r['message']}") if not empty and not errors: print("\nAll feeds have content.") # Exit 1 only for empty or parse-error feeds if empty or errors: sys.exit(1) if __name__ == "__main__": main() ================================================ FILE: feed_generators/weaviate_blog.py ================================================ """Generate RSS feed for the Weaviate Blog (https://weaviate.io/blog). Docusaurus-based blog with /page/N pagination. Static HTML; no JS rendering needed. """ import argparse from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import ( deserialize_entries, fetch_page, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "weaviate" BLOG_URL = "https://weaviate.io/blog" MAX_PAGES_FULL = 5 def parse_posts(html_content: str) -> tuple[list[dict], bool]: """Extract posts from a single page. Returns (posts, has_next_page).""" soup = BeautifulSoup(html_content, "html.parser") posts = [] for article in soup.select("article.margin-bottom--xl"): title_elem = article.select_one("h2") if not title_elem: continue title = title_elem.text.strip() url_elem = article.select_one('a[itemprop="url"]') if not url_elem or not url_elem.get("href"): continue link = url_elem["href"] if link.startswith("/"): link = f"https://weaviate.io{link}" date = None time_elem = article.select_one("time[datetime]") if time_elem and time_elem.get("datetime"): try: date = datetime.fromisoformat(time_elem["datetime"].replace("Z", "+00:00")) if date.tzinfo is None: date = date.replace(tzinfo=pytz.UTC) except ValueError: logger.warning(f"Could not parse datetime: {time_elem['datetime']}") if not date: date = stable_fallback_date(link) desc_elem = article.select_one('meta[itemprop="description"]') description = desc_elem["content"] if desc_elem and desc_elem.get("content") else title posts.append( { "link": link, "title": title, "date": date, "description": description, } ) has_next_page = soup.select_one("a.pagination-nav__link--next") is not None return posts, has_next_page def fetch_all_pages(max_pages: int = MAX_PAGES_FULL) -> list[dict]: """Follow /page/N pagination up to max_pages (or until no next link).""" all_posts = [] for page_num in range(1, max_pages + 1): url = BLOG_URL if page_num == 1 else f"{BLOG_URL}/page/{page_num}" logger.info(f"Fetching page {page_num}: {url}") html = fetch_page(url) posts, has_next_page = parse_posts(html) all_posts.extend(posts) logger.info(f"Found {len(posts)} posts on page {page_num}") if not has_next_page: break seen = set() unique_posts = [] for post in all_posts: if post["link"] not in seen: unique_posts.append(post) seen.add(post["link"]) logger.info(f"Total unique posts across all pages: {len(unique_posts)}") return sort_posts_for_feed(unique_posts, date_field="date") def generate_rss_feed(posts: list[dict]) -> FeedGenerator: fg = FeedGenerator() fg.title("Weaviate Blog") fg.description( "Read the latest from the Weaviate team: insights, tutorials, and updates on " "vector databases, AI-native applications, and search." ) fg.language("en") fg.author({"name": "Weaviate"}) fg.subtitle("Latest updates from Weaviate") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) for post in posts: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.id(post["link"]) if post.get("date"): fe.published(post["date"]) logger.info(f"Generated RSS feed with {len(posts)} entries") return fg def main(full_reset: bool = False) -> bool: cache = load_cache(FEED_NAME) cached_entries = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_entries: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") posts = fetch_all_pages() else: logger.info("Running incremental update (page 1 only)") html = fetch_page(BLOG_URL) new_posts, _ = parse_posts(html) logger.info(f"Found {len(new_posts)} posts on page 1") posts = merge_entries(new_posts, cached_entries) save_cache(FEED_NAME, posts) feed = generate_rss_feed(posts) save_rss_feed(feed, FEED_NAME) logger.info("Done!") return True if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate Weaviate Blog RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all pages)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feed_generators/windsurf_blog.py ================================================ from datetime import datetime import pytz import requests from feedgen.feed import FeedGenerator from utils import save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed logger = setup_logging() FEED_NAME = "windsurf_blog" # keep _blog suffix for backwards compatibility (feed URL) BLOG_URL = "https://windsurf.com/blog" def fetch_blog_posts(): """Fetch blog posts from Windsurf's API.""" try: headers = { "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", "Accept": "*/*", } url = "https://windsurf.com/api/blog" response = requests.get(url, headers=headers, timeout=10) response.raise_for_status() return response.json() except requests.RequestException as e: logger.error(f"Error fetching blog posts: {e!s}") raise def parse_blog_posts(api_response): """Parse blog posts from API response.""" try: posts = api_response.get("posts", []) blog_posts = [] for post in posts: # Skip drafts if post.get("draft", False): continue title = post.get("title", "") if not title: continue # Parse date date_str = post.get("date", "") if date_str: try: date = datetime.fromisoformat(date_str.replace("Z", "+00:00")) except ValueError: date = datetime.now(pytz.UTC) else: date = datetime.now(pytz.UTC) # Build link from slug slug = post.get("slug", "") link = f"https://windsurf.com/blog/{slug}" if slug else "https://windsurf.com/blog" # Get summary/description description = post.get("summary", title) # Get tags for categories tags = post.get("tags", []) blog_posts.append( { "title": title, "link": link, "description": description, "date": date, "tags": tags, } ) logger.info(f"Successfully parsed {len(blog_posts)} blog posts") return blog_posts except Exception as e: logger.error(f"Error parsing blog posts: {e!s}") raise def generate_rss_feed(blog_posts, feed_name=FEED_NAME): """Generate RSS feed from blog posts.""" try: fg = FeedGenerator() fg.title("Windsurf Blog") fg.description("Latest updates and announcements from Windsurf") setup_feed_links(fg, BLOG_URL, feed_name) fg.language("en") fg.author({"name": "Windsurf"}) fg.subtitle("Read about the latest announcements from Windsurf") # Sort for correct feed order (newest first in output) blog_posts_sorted = sort_posts_for_feed(blog_posts, date_field="date") for post in blog_posts_sorted: fe = fg.add_entry() fe.title(post["title"]) fe.description(post["description"]) fe.link(href=post["link"]) fe.published(post["date"]) fe.id(post["link"]) # Add tags as categories for tag in post.get("tags", []): fe.category(term=tag) logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(feed_name=FEED_NAME): """Main function to generate RSS feed from Windsurf blog.""" try: api_response = fetch_blog_posts() blog_posts = parse_blog_posts(api_response) if not blog_posts: logger.warning("No blog posts found!") return False feed = generate_rss_feed(blog_posts, feed_name) save_rss_feed(feed, feed_name) logger.info(f"Successfully generated RSS feed with {len(blog_posts)} posts") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/windsurf_changelog.py ================================================ import re from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed logger = setup_logging() FEED_NAME = "windsurf_changelog" BLOG_URL = "https://windsurf.com/changelog" def fetch_changelog_content(url=BLOG_URL): """Fetch changelog content from Windsurf's website.""" try: return fetch_page(url) except Exception as e: logger.error(f"Error fetching changelog content: {e!s}") raise def parse_date(date_text): """Parse date from various formats used on Windsurf changelog.""" date_formats = [ "%B %d, %Y", # November 25, 2025 "%b %d, %Y", # Nov 25, 2025 "%B %d %Y", "%b %d %Y", "%Y-%m-%d", "%m/%d/%Y", ] date_text = date_text.strip() for date_format in date_formats: try: date = datetime.strptime(date_text, date_format) return date.replace(tzinfo=pytz.UTC) except ValueError: continue logger.warning(f"Could not parse date: {date_text}") return None def parse_changelog_html(html_content): """Parse the changelog HTML content and extract version entries.""" try: soup = BeautifulSoup(html_content, "html.parser") changelog_entries = [] # Version pattern to find elements with version IDs version_pattern = re.compile(r"^\d+\.\d+\.\d+$") # Find all elements with version-like IDs version_elements = soup.find_all(id=version_pattern) for elem in version_elements: version = elem.get("id") elem_text = elem.get_text() # Extract date from the element's text date_match = re.search( r"(January|February|March|April|May|June|July|August|September|October|November|December)\s+\d{1,2},?\s+\d{4}", elem_text, ) if date_match: date = parse_date(date_match.group()) else: logger.warning(f"Could not find date for version {version}") date = datetime.now(pytz.UTC) # Extract description from the prose/article content as HTML prose_elem = elem.select_one(".prose") if prose_elem: # Get inner HTML, excluding images description_parts = [] for child in prose_elem.children: if child.name == "img": continue if child.name == "h1": # Major section header (AI Models, Features & Tools, etc.) heading_text = child.get_text(strip=True) description_parts.append(f"<h3>{heading_text}</h3>") elif child.name in ["h2", "h3"]: # Subheading (Gemini 3 Pro, SWE-1.5, etc.) heading_text = child.get_text(strip=True) description_parts.append(f"<p><strong>{heading_text}</strong></p>") elif child.name == "p": description_parts.append(f"<p>{child.get_text(strip=True)}</p>") elif child.name == "ul": items = [f"<li>{li.get_text(strip=True)}</li>" for li in child.find_all("li")] description_parts.append(f"<ul>{''.join(items)}</ul>") description = "".join(description_parts) else: # Fallback: extract text with separator description = elem_text if date_match: description = elem_text[date_match.end() :].strip() # Limit length if len(description) > 2000: description = description[:2000] + "..." if not description: description = f"Version {version} release" # Create link with anchor link = f"https://windsurf.com/changelog#{version}" changelog_entries.append( { "title": f"Windsurf {version}", "version": version, "link": link, "description": description, "date": date, } ) logger.info(f"Successfully parsed {len(changelog_entries)} changelog entries") return changelog_entries except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(changelog_entries, feed_name=FEED_NAME): """Generate RSS feed from changelog entries.""" try: fg = FeedGenerator() fg.title("Windsurf Changelog") fg.description("Version updates and changes from Windsurf") setup_feed_links(fg, BLOG_URL, feed_name) fg.language("en") fg.author({"name": "Windsurf"}) fg.subtitle("Latest version updates from Windsurf") # Sort for correct feed order (newest first in output) entries_sorted = sort_posts_for_feed(changelog_entries, date_field="date") for entry in entries_sorted: fe = fg.add_entry() fe.title(entry["title"]) fe.description(entry["description"]) fe.link(href=entry["link"]) fe.published(entry["date"]) fe.category(term="Changelog") fe.id(f"{entry['link']}#{entry['version']}") logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(feed_name=FEED_NAME): """Main function to generate RSS feed from Windsurf changelog.""" try: html_content = fetch_changelog_content() changelog_entries = parse_changelog_html(html_content) if not changelog_entries: logger.warning("No changelog entries found!") return False feed = generate_rss_feed(changelog_entries, feed_name) save_rss_feed(feed, feed_name) logger.info(f"Successfully generated RSS feed with {len(changelog_entries)} entries") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/windsurf_next_changelog.py ================================================ import re from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from utils import fetch_page, save_rss_feed, setup_feed_links, setup_logging, sort_posts_for_feed logger = setup_logging() FEED_NAME = "windsurf_next_changelog" BLOG_URL = "https://windsurf.com/changelog/windsurf-next" def fetch_changelog_content(url=BLOG_URL): """Fetch changelog content from Windsurf Next's website.""" try: return fetch_page(url) except Exception as e: logger.error(f"Error fetching changelog content: {e!s}") raise def parse_date(date_text): """Parse date from various formats used on Windsurf changelog.""" date_formats = [ "%B %d, %Y", # November 25, 2025 "%b %d, %Y", # Nov 25, 2025 "%B %d %Y", "%b %d %Y", "%Y-%m-%d", "%m/%d/%Y", ] date_text = date_text.strip() for date_format in date_formats: try: date = datetime.strptime(date_text, date_format) return date.replace(tzinfo=pytz.UTC) except ValueError: continue logger.warning(f"Could not parse date: {date_text}") return None def parse_changelog_html(html_content): """Parse the changelog HTML content and extract version entries.""" try: soup = BeautifulSoup(html_content, "html.parser") changelog_entries = [] # Version pattern to find elements with version IDs version_pattern = re.compile(r"^\d+\.\d+\.\d+$") # Find all elements with version-like IDs version_elements = soup.find_all(id=version_pattern) for elem in version_elements: version = elem.get("id") elem_text = elem.get_text() # Extract date from the element's text date_match = re.search( r"(January|February|March|April|May|June|July|August|September|October|November|December)\s+\d{1,2},?\s+\d{4}", elem_text, ) if date_match: date = parse_date(date_match.group()) else: logger.warning(f"Could not find date for version {version}") date = datetime.now(pytz.UTC) # Extract description from the prose/article content as HTML prose_elem = elem.select_one(".prose") if prose_elem: # Get inner HTML, excluding images description_parts = [] for child in prose_elem.children: if child.name == "img": continue if child.name == "h1": # Major section header (AI Models, Features & Tools, etc.) heading_text = child.get_text(strip=True) description_parts.append(f"<h3>{heading_text}</h3>") elif child.name in ["h2", "h3"]: # Subheading (Gemini 3 Pro, SWE-1.5, etc.) heading_text = child.get_text(strip=True) description_parts.append(f"<p><strong>{heading_text}</strong></p>") elif child.name == "p": description_parts.append(f"<p>{child.get_text(strip=True)}</p>") elif child.name == "ul": items = [f"<li>{li.get_text(strip=True)}</li>" for li in child.find_all("li")] description_parts.append(f"<ul>{''.join(items)}</ul>") description = "".join(description_parts) else: # Fallback: extract text with separator description = elem_text if date_match: description = elem_text[date_match.end() :].strip() # Limit length if len(description) > 2000: description = description[:2000] + "..." if not description: description = f"Version {version} release" # Create link with anchor link = f"https://windsurf.com/changelog/windsurf-next#{version}" changelog_entries.append( { "title": f"Windsurf Next {version}", "version": version, "link": link, "description": description, "date": date, } ) logger.info(f"Successfully parsed {len(changelog_entries)} changelog entries") return changelog_entries except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(changelog_entries, feed_name=FEED_NAME): """Generate RSS feed from changelog entries.""" try: fg = FeedGenerator() fg.title("Windsurf Next Changelog") fg.description("Version updates and changes from Windsurf Next") setup_feed_links(fg, BLOG_URL, feed_name) fg.language("en") fg.author({"name": "Windsurf"}) fg.subtitle("Latest version updates from Windsurf Next") # Sort for correct feed order (newest first in output) entries_sorted = sort_posts_for_feed(changelog_entries, date_field="date") for entry in entries_sorted: fe = fg.add_entry() fe.title(entry["title"]) fe.description(entry["description"]) fe.link(href=entry["link"]) fe.published(entry["date"]) fe.category(term="Changelog") fe.id(f"{entry['link']}#{entry['version']}") logger.info("Successfully generated RSS feed") return fg except Exception as e: logger.error(f"Error generating RSS feed: {e!s}") raise def main(feed_name=FEED_NAME): """Main function to generate RSS feed from Windsurf Next changelog.""" try: html_content = fetch_changelog_content() changelog_entries = parse_changelog_html(html_content) if not changelog_entries: logger.warning("No changelog entries found!") return False feed = generate_rss_feed(changelog_entries, feed_name) save_rss_feed(feed, feed_name) logger.info(f"Successfully generated RSS feed with {len(changelog_entries)} entries") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": main() ================================================ FILE: feed_generators/xainews_blog.py ================================================ import argparse from datetime import datetime import pytz from bs4 import BeautifulSoup from feedgen.feed import FeedGenerator from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from utils import ( deserialize_entries, load_cache, merge_entries, save_cache, save_rss_feed, setup_feed_links, setup_logging, setup_selenium_driver, sort_posts_for_feed, stable_fallback_date, ) logger = setup_logging() FEED_NAME = "xainews" BLOG_URL = "https://x.ai/news" def fetch_news_content(url=BLOG_URL): """Fetch the fully loaded HTML content of xAI's news page using Selenium. The xAI news page is JS-rendered, so a simple HTTP request returns an empty shell. We need Selenium to wait for the content to load. """ driver = None try: logger.info(f"Fetching content from URL: {url}") driver = setup_selenium_driver() driver.get(url) # Wait for news articles to load try: WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a[href*='/news/']"))) logger.info("News articles loaded successfully") except Exception: logger.warning("Could not confirm articles loaded, proceeding anyway...") html_content = driver.page_source logger.info("Successfully fetched HTML content") return html_content except Exception as e: logger.error(f"Error fetching content: {e}") raise finally: if driver: driver.quit() def parse_date(date_text): """Parse date from various formats used on xAI news page.""" date_formats = [ "%B %d, %Y", # September 19, 2025 "%b %d, %Y", # Sep 19, 2025 "%B %d %Y", "%b %d %Y", "%Y-%m-%d", "%m/%d/%Y", ] date_text = date_text.strip() for date_format in date_formats: try: date = datetime.strptime(date_text, date_format) return date.replace(tzinfo=pytz.UTC) except ValueError: continue logger.warning(f"Could not parse date: {date_text}") return None MONTH_NAMES = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ] def looks_like_date(text): """Check if text looks like a date string.""" return any(month in text for month in MONTH_NAMES) def extract_articles(soup): """Extract article information from the parsed HTML.""" articles = [] seen_links = set() # Find all article containers article_containers = soup.select("div.group.relative") logger.info(f"Found {len(article_containers)} potential article containers") for container in article_containers: try: # Extract the link and title title_link = container.select_one('a[href*="/news/"]') if not title_link: continue href = title_link.get("href", "") if not href: continue # Build full URL link = f"https://x.ai{href}" if href.startswith("/") else href # Skip duplicates if link in seen_links: continue # Skip the main news page link if link.endswith("/news") or link.endswith("/news/"): continue seen_links.add(link) # Extract title - can be in h3 or h4 title_elem = title_link.select_one("h3, h4") if not title_elem: logger.debug(f"Could not extract title for link: {link}") continue title = title_elem.text.strip() # Extract description description_elem = container.select_one("p.text-secondary") description = description_elem.text.strip() if description_elem else title # Extract date - try multiple selectors date = None # First try: featured article format date_elem = container.select_one("p.mono-tag.text-xs.leading-6") if date_elem: date_text = date_elem.text.strip() if looks_like_date(date_text): date = parse_date(date_text) # Second try: standard article format in footer if not date: footer_elements = container.select("div.flex.items-center.justify-between span.mono-tag.text-xs") for elem in footer_elements: text = elem.text.strip() if looks_like_date(text): date = parse_date(text) break # Fallback: use stable date if not date: logger.warning(f"Could not extract date for article: {title}") date = stable_fallback_date(link) # Extract category category = "News" category_elem = container.select_one("div:not(.flex.items-center.justify-between) span.mono-tag.text-xs") if category_elem: category_text = category_elem.text.strip().lower() if not looks_like_date(category_text): category = category_text.capitalize() article = { "title": title, "link": link, "date": date, "category": category, "description": description, } articles.append(article) logger.debug(f"Extracted article: {title} ({date})") except Exception as e: logger.warning(f"Error parsing article container: {e!s}") continue logger.info(f"Successfully parsed {len(articles)} articles") return articles def parse_news_html(html_content): """Parse the news HTML content and extract article information.""" try: soup = BeautifulSoup(html_content, "html.parser") return extract_articles(soup) except Exception as e: logger.error(f"Error parsing HTML content: {e!s}") raise def generate_rss_feed(articles): """Generate RSS feed from news articles.""" fg = FeedGenerator() fg.title("xAI News") fg.description("Latest news and updates from xAI") fg.language("en") fg.author({"name": "xAI"}) fg.subtitle("Latest updates from xAI") setup_feed_links(fg, blog_url=BLOG_URL, feed_name=FEED_NAME) # Sort articles for correct feed order (newest first in output) articles_sorted = sort_posts_for_feed(articles, date_field="date") for article in articles_sorted: fe = fg.add_entry() fe.title(article["title"]) fe.description(article["description"]) fe.link(href=article["link"]) fe.published(article["date"]) fe.category(term=article["category"]) fe.id(article["link"]) logger.info("Successfully generated RSS feed") return fg def main(full_reset=False): """Main function to generate RSS feed from xAI's news page. Args: full_reset: If True, ignore cache and fetch fresh. If False, merge with cached articles. """ try: cache = load_cache(FEED_NAME) cached_articles = deserialize_entries(cache.get("entries", [])) if full_reset or not cached_articles: mode = "full reset" if full_reset else "no cache exists" logger.info(f"Running full fetch ({mode})") else: logger.info("Running incremental update") # Fetch news content using Selenium (xAI is JS-rendered) html_content = fetch_news_content() # Parse articles from HTML new_articles = parse_news_html(html_content) if not new_articles and not cached_articles: logger.warning("No articles found!") return False # Merge with cache or use fresh articles if cached_articles and not full_reset: articles = merge_entries(new_articles, cached_articles) else: articles = new_articles # Save to cache save_cache(FEED_NAME, articles) # Generate and save RSS feed feed = generate_rss_feed(articles) save_rss_feed(feed, FEED_NAME) logger.info(f"Successfully generated RSS feed with {len(articles)} articles") return True except Exception as e: logger.error(f"Failed to generate RSS feed: {e!s}") return False if __name__ == "__main__": parser = argparse.ArgumentParser(description="Generate xAI News RSS feed") parser.add_argument("--full", action="store_true", help="Force full reset (fetch all articles)") args = parser.parse_args() main(full_reset=args.full) ================================================ FILE: feeds/.gitkeep ================================================ ================================================ FILE: feeds/feed_ai_first_podcast.xml ================================================ <?xml version='1.0' encoding='UTF-8'?> <rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"> <channel> <title>AI FIRST Podcast https://ai-first.ai/podcast KI-Transformation, Produktivität und die Zukunft der Arbeit http://www.rssboard.org/rss-specification python-feedgen https://ai-first.ai/images/og/og-default.png AI FIRST Podcast https://ai-first.ai/podcast de Wed, 13 May 2026 10:50:21 +0000 Wie eine Stadt mit 40.000 Einwohnern vormacht, wie KI-Transformation geht. https://ai-first.ai/podcast/wie-eine-stadt-mit-40-000-einwohnern-vormacht-wie-ki-transformation-geht Wie eine Stadt mit 40.000 Einwohnern vormacht, wie KI-Transformation geht. – mit Thorsten Rode https://ai-first.ai/podcast/wie-eine-stadt-mit-40-000-einwohnern-vormacht-wie-ki-transformation-geht Fri, 08 May 2026 00:00:00 +0000 Wie ein Full AI Studio Filme (fast) ohne Menschen produziert https://ai-first.ai/podcast/wie-ein-full-ai-studio-filme-fast-ohne-menschen-produziert Wie ein Full AI Studio Filme (fast) ohne Menschen produziert – mit Max Penk https://ai-first.ai/podcast/wie-ein-full-ai-studio-filme-fast-ohne-menschen-produziert Fri, 01 May 2026 00:00:00 +0000 Heute entscheiden, morgen testen: KI-Transformation bei der Ostfriesischen Tee Gesellschaft https://ai-first.ai/podcast/heute-entscheiden-morgen-testen-ki-transformation-bei-der-ostfriesischen-tee-gesellschaft Heute entscheiden, morgen testen: KI-Transformation bei der Ostfriesischen Tee Gesellschaft – mit Alexander Cohrs https://ai-first.ai/podcast/heute-entscheiden-morgen-testen-ki-transformation-bei-der-ostfriesischen-tee-gesellschaft Fri, 24 Apr 2026 00:00:00 +0000 Der Nightmare Competitor Ansatz bei Gebr. Dorfner: "Wie würde ein Wettbewerber mit KI unser Geschäftsmodell disruptieren?” https://ai-first.ai/podcast/gebrueder-dorfner Der Nightmare Competitor Ansatz bei Gebr. Dorfner: "Wie würde ein Wettbewerber mit KI unser Geschäftsmodell disruptieren?” – mit Tim Lüken https://ai-first.ai/podcast/gebrueder-dorfner Fri, 17 Apr 2026 00:00:00 +0000 Wie Finanzfluss menschliche Stärken mit KI-Fähigkeiten im Journalismus verbindet https://ai-first.ai/podcast/wie-finanzfluss-menschliche-staerken-mit-ki-faehigkeiten-im-journalismus-verbindet Wie Finanzfluss menschliche Stärken mit KI-Fähigkeiten im Journalismus verbindet – mit Mary Abdelaziz-Ditzow https://ai-first.ai/podcast/wie-finanzfluss-menschliche-staerken-mit-ki-faehigkeiten-im-journalismus-verbindet Fri, 10 Apr 2026 00:00:00 +0000 Die andere Seite der KI-Medaille: Brain Fry, Arbeitsmarkt-Druck und Adaptionsprobleme https://ai-first.ai/podcast/die-andere-seite-der-ki-medaille-brain-fry-arbeitsmarkt-druck-und-adaptionsprobleme Die andere Seite der KI-Medaille: Brain Fry, Arbeitsmarkt-Druck und Adaptionsprobleme – mit Elisabeth L’Orange https://ai-first.ai/podcast/die-andere-seite-der-ki-medaille-brain-fry-arbeitsmarkt-druck-und-adaptionsprobleme Fri, 03 Apr 2026 00:00:00 +0000 KI als strategische Fähigkeit im Bau: Wie GOLDBECK Adoption und Use Cases orchestriert https://ai-first.ai/podcast/ki-als-strategische-faehigkeit-im-bau-wie-goldbeck-adoption-und-use-cases-orchestriert KI als strategische Fähigkeit im Bau: Wie GOLDBECK Adoption und Use Cases orchestriert – mit Dr. Florian Gauer https://ai-first.ai/podcast/ki-als-strategische-faehigkeit-im-bau-wie-goldbeck-adoption-und-use-cases-orchestriert Fri, 27 Mar 2026 00:00:00 +0000 Wie wir unser KI-Betriebssystem aufgebaut haben https://ai-first.ai/podcast/wie-wir-unser-ki-betriebssystem-aufgebaut-haben AI FIRST Podcast: Wie wir unser KI-Betriebssystem aufgebaut haben https://ai-first.ai/podcast/wie-wir-unser-ki-betriebssystem-aufgebaut-haben Fri, 20 Mar 2026 00:00:00 +0000 Warum KI kein Tool und auch kein Mitarbeiter ist https://ai-first.ai/podcast/warum-ki-kein-tool-und-auch-kein-mitarbeiter-ist AI FIRST Podcast: Warum KI kein Tool und auch kein Mitarbeiter ist https://ai-first.ai/podcast/warum-ki-kein-tool-und-auch-kein-mitarbeiter-ist Fri, 13 Mar 2026 00:00:00 +0000 KI-Programm bei BASF: Breitensport und Spitzensport https://ai-first.ai/podcast/ki-programm-bei-basf-breitensport-und-spitzensport-mit-marcus-pospiech KI-Programm bei BASF: Breitensport und Spitzensport – mit Marcus Pospiech https://ai-first.ai/podcast/ki-programm-bei-basf-breitensport-und-spitzensport-mit-marcus-pospiech Fri, 06 Mar 2026 00:00:00 +0000 Von der Geschäftsstelle bis zum Trainingsplatz: KI-Transformation beim VfL Wolfsburg https://ai-first.ai/podcast/ki-im-profifussball Von der Geschäftsstelle bis zum Trainingsplatz: KI-Transformation beim VfL Wolfsburg – mit Claudio Demmer https://ai-first.ai/podcast/ki-im-profifussball Fri, 27 Feb 2026 00:00:00 +0000 Wie du ein CEO-Office aus KI-Agenten aufbaust https://ai-first.ai/podcast/wie-du-ein-ceo-office-aus-ki-agenten-aufbaust Wie du ein CEO-Office aus KI-Agenten aufbaust – mit Jonas Diezun https://ai-first.ai/podcast/wie-du-ein-ceo-office-aus-ki-agenten-aufbaust Fri, 20 Feb 2026 00:00:00 +0000 Die unbequeme Wahrheit über Datenprojekte in der Industrie https://ai-first.ai/podcast/arbeit-als-global-data-architect Die unbequeme Wahrheit über Datenprojekte in der Industrie – mit Christian Krug https://ai-first.ai/podcast/arbeit-als-global-data-architect Fri, 13 Feb 2026 00:00:00 +0000 AI for the rest of us: Wie KI endlich für alle zugänglich wird https://ai-first.ai/podcast/ai-for-the-rest-of-us-wie-ki-endlich-fuer-alle-zugaenglich-wird AI for the rest of us: Wie KI endlich für alle zugänglich wird – mit Martin Böhringer https://ai-first.ai/podcast/ai-for-the-rest-of-us-wie-ki-endlich-fuer-alle-zugaenglich-wird Fri, 06 Feb 2026 00:00:00 +0000 KI-Transformation bei REWE: Was funktioniert wirklich? https://ai-first.ai/podcast/ki-transformation-bei-rewe-was-funktioniert-wirklich KI-Transformation bei REWE: Was funktioniert wirklich? – mit Henrike Alfeis https://ai-first.ai/podcast/ki-transformation-bei-rewe-was-funktioniert-wirklich Fri, 30 Jan 2026 00:00:00 +0000 Wie man ein AI-First Startup aufbaut https://ai-first.ai/podcast/wie-man-ein-ai-first-startup-aufbaut Wie man ein AI-First Startup aufbaut – mit Benedikt Böringer https://ai-first.ai/podcast/wie-man-ein-ai-first-startup-aufbaut Fri, 23 Jan 2026 00:00:00 +0000 Wie man eine Daten- und KI-Organisation als Profit Center aufbaut https://ai-first.ai/podcast/wie-man-eine-daten-und-ki-organisation-als-profit-center-aufbaut Wie man eine Daten- und KI-Organisation als Profit Center aufbaut – mit Romina Medici https://ai-first.ai/podcast/wie-man-eine-daten-und-ki-organisation-als-profit-center-aufbaut Fri, 16 Jan 2026 00:00:00 +0000 AI Governance bei Payback: Wie Legal und Data gemeinsam den Weg für KI freimachen https://ai-first.ai/podcast/ai-governance-bei-payback-wie-legal-und-data-gemeinsam-den-weg-fuer-ki-freimachen AI Governance bei Payback: Wie Legal und Data gemeinsam den Weg für KI freimachen – mit Franziska Kripp https://ai-first.ai/podcast/ai-governance-bei-payback-wie-legal-und-data-gemeinsam-den-weg-fuer-ki-freimachen Fri, 09 Jan 2026 00:00:00 +0000 KI-Prognosen 2026 https://ai-first.ai/podcast/ki-prognosen-2026 KI-Prognosen 2026 – mit Christoph Pacher https://ai-first.ai/podcast/ki-prognosen-2026 Fri, 02 Jan 2026 00:00:00 +0000 Venture Clienting trifft KI: Wie Eberspächer mit Startup-Mentalität die Transformation beschleunigt https://ai-first.ai/podcast/venture-clienting-trifft-ki-wie-eberspaecher-mit-startup-mentalitaet-die-transformation-beschleunigt Venture Clienting trifft KI: Wie Eberspächer mit Startup-Mentalität die Transformation beschleunigt – mit Florian Dürr https://ai-first.ai/podcast/venture-clienting-trifft-ki-wie-eberspaecher-mit-startup-mentalitaet-die-transformation-beschleunigt Fri, 26 Dec 2025 00:00:00 +0000 AI in der Kreativbranche: Wie JUSTADDSUGAR mit eigenem Tool die Agenturwelt neu denkt https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-justaddsugar-mit-eigenem-tool-die-agenturwelt-neu-denkt AI in der Kreativbranche: Wie JUSTADDSUGAR mit eigenem Tool die Agenturwelt neu denkt – mit Jasper Börnsen https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-justaddsugar-mit-eigenem-tool-die-agenturwelt-neu-denkt Fri, 19 Dec 2025 00:00:00 +0000 Unser KI-Tool Stack für maximale Produktivität https://ai-first.ai/podcast/unser-ki-tool-stack-fuer-maximale-produktivitaet AI FIRST Podcast: Unser KI-Tool Stack für maximale Produktivität https://ai-first.ai/podcast/unser-ki-tool-stack-fuer-maximale-produktivitaet Fri, 12 Dec 2025 00:00:00 +0000 13 Jahre in der Daten- und KI-Welt: Was funktioniert wirklich? https://ai-first.ai/podcast/13-jahre-in-der-daten-und-ki-welt-was-funktioniert-wirklich 13 Jahre in der Daten- und KI-Welt: Was funktioniert wirklich? – mit Alexander Thamm https://ai-first.ai/podcast/13-jahre-in-der-daten-und-ki-welt-was-funktioniert-wirklich Fri, 05 Dec 2025 00:00:00 +0000 SIGNAL IDUNA: Einblicke in den KI-Rollout auf 10.000 Mitarbeiter und die Skalierung von KI-Agenten https://ai-first.ai/podcast/signal-iduna-einblicke-in-den-ki-rollout-auf-10-000-mitarbeiter-und-die-skalierung-von-ki-agenten SIGNAL IDUNA: Einblicke in den KI-Rollout auf 10.000 Mitarbeiter und die Skalierung von KI-Agenten – mit Patrick Darby https://ai-first.ai/podcast/signal-iduna-einblicke-in-den-ki-rollout-auf-10-000-mitarbeiter-und-die-skalierung-von-ki-agenten Fri, 28 Nov 2025 00:00:00 +0000 Wie komme ich auf Platz 1 in den KI-Suchergebnissen? https://ai-first.ai/podcast/wie-komme-ich-auf-platz-1-in-den-ki-suchergebnissen Wie komme ich auf Platz 1 in den KI-Suchergebnissen? – mit Niklas Buschner https://ai-first.ai/podcast/wie-komme-ich-auf-platz-1-in-den-ki-suchergebnissen Fri, 21 Nov 2025 00:00:00 +0000 Wie TUI KI in 400+ Hotels & Resorts für bessere Gasterlebnisse und Nachhaltigkeit implementiert https://ai-first.ai/podcast/wie-tui-ki-in-400-hotels-resorts-fuer-bessere-gasterlebnisse-und-nachhaltigkeit-implementiert Wie TUI KI in 400+ Hotels & Resorts für bessere Gasterlebnisse und Nachhaltigkeit implementiert – mit Jano Martin https://ai-first.ai/podcast/wie-tui-ki-in-400-hotels-resorts-fuer-bessere-gasterlebnisse-und-nachhaltigkeit-implementiert Fri, 14 Nov 2025 00:00:00 +0000 Wie wir AI FIRST mit KI aufgebaut haben https://ai-first.ai/podcast/wie-wir-ai-first-mit-ki-aufgebaut-haben AI FIRST Podcast: Wie wir AI FIRST mit KI aufgebaut haben https://ai-first.ai/podcast/wie-wir-ai-first-mit-ki-aufgebaut-haben Fri, 07 Nov 2025 00:00:00 +0000 Wie sollten Mensch und KI zusammenarbeiten? https://ai-first.ai/podcast/wie-sollten-mensch-und-ki-zusammenarbeiten Wie sollten Mensch und KI zusammenarbeiten? – mit Elisabeth L'Orange https://ai-first.ai/podcast/wie-sollten-mensch-und-ki-zusammenarbeiten Fri, 31 Oct 2025 00:00:00 +0000 Wie die DKB einen Digital Agent entwickelt, der einen Großteil aller Support-Anfragen löst https://ai-first.ai/podcast/wie-die-dkb-einen-digital-agent-entwickelt-der-einen-grossteil-aller-support-anfragen-loest Wie die DKB einen Digital Agent entwickelt, der einen Großteil aller Support-Anfragen löst – mit Sascha Dewald https://ai-first.ai/podcast/wie-die-dkb-einen-digital-agent-entwickelt-der-einen-grossteil-aller-support-anfragen-loest Fri, 24 Oct 2025 00:00:00 +0000 Wie setzt HORNBACH KI im Content Marketing ein? https://ai-first.ai/podcast/wie-setzt-hornbach-ki-im-content-marketing-ein Wie setzt HORNBACH KI im Content Marketing ein? – mit Madlen Barke https://ai-first.ai/podcast/wie-setzt-hornbach-ki-im-content-marketing-ein Fri, 17 Oct 2025 00:00:00 +0000 KI-Hackathons: Wie die Otto Group ihre KI-Reise beschleunigt https://ai-first.ai/podcast/ki-hackathons-wie-die-otto-group-ihre-ki-reise-beschleunigt KI-Hackathons: Wie die Otto Group ihre KI-Reise beschleunigt – mit Anja Körber https://ai-first.ai/podcast/ki-hackathons-wie-die-otto-group-ihre-ki-reise-beschleunigt Fri, 10 Oct 2025 00:00:00 +0000 Bild-KI: Wo liegen die größten Potenziale und wo gibt es Grenzen? https://ai-first.ai/podcast/bild-ki-wo-liegen-die-groessten-potenziale-und-wo-gibt-es-grenzen Bild-KI: Wo liegen die größten Potenziale und wo gibt es Grenzen? – mit Georg Neumann https://ai-first.ai/podcast/bild-ki-wo-liegen-die-groessten-potenziale-und-wo-gibt-es-grenzen Fri, 03 Oct 2025 00:00:00 +0000 Erfolgsprinzipien für KI-Integration in Produkten und Prozessen https://ai-first.ai/podcast/erfolgsprinzipien-fuer-ki-integration-in-produkten-und-prozessen Erfolgsprinzipien für KI-Integration in Produkten und Prozessen – mit Julian Geiger https://ai-first.ai/podcast/erfolgsprinzipien-fuer-ki-integration-in-produkten-und-prozessen Fri, 26 Sep 2025 00:00:00 +0000 Wie gelingt unternehmensweite KI-Adoption? https://ai-first.ai/podcast/wie-gelingt-unternehmensweite-ki-adoption Wie gelingt unternehmensweite KI-Adoption? – mit Paul Töws https://ai-first.ai/podcast/wie-gelingt-unternehmensweite-ki-adoption Fri, 19 Sep 2025 00:00:00 +0000 Wie baut man ein AI-First Unternehmen auf? https://ai-first.ai/podcast/wie-baut-man-ein-ai-first-unternehmen-auf Wie baut man ein AI-First Unternehmen auf? – mit Daniel Khachab https://ai-first.ai/podcast/wie-baut-man-ein-ai-first-unternehmen-auf Fri, 12 Sep 2025 00:00:00 +0000 Wie funktioniert Hyperpersonalisierung? https://ai-first.ai/podcast/wie-funktioniert-hyperpersonalisierung Wie funktioniert Hyperpersonalisierung? – mit Florian Johannsen https://ai-first.ai/podcast/wie-funktioniert-hyperpersonalisierung Fri, 05 Sep 2025 00:00:00 +0000 Was passiert mit einer Kommunikationsagentur durch Large Language Models? https://ai-first.ai/podcast/was-passiert-mit-einer-kommunikationsagentur-durch-large-language-models Was passiert mit einer Kommunikationsagentur durch Large Language Models? – mit Markus Neckar https://ai-first.ai/podcast/was-passiert-mit-einer-kommunikationsagentur-durch-large-language-models Fri, 29 Aug 2025 00:00:00 +0000 Wie balanciert man KI-Demokratisierung mit strategischem Impact? https://ai-first.ai/podcast/wie-balanciert-man-ki-demokratisierung-mit-strategischem-impact Wie balanciert man KI-Demokratisierung mit strategischem Impact? – mit Ludwig Pannach https://ai-first.ai/podcast/wie-balanciert-man-ki-demokratisierung-mit-strategischem-impact Fri, 22 Aug 2025 00:00:00 +0000 Wie funktioniert KI-Governance in einer Bank? https://ai-first.ai/podcast/wie-funktioniert-ki-governance-in-einer-bank Wie funktioniert KI-Governance in einer Bank? – mit Julia Sterling https://ai-first.ai/podcast/wie-funktioniert-ki-governance-in-einer-bank Fri, 15 Aug 2025 00:00:00 +0000 Was kommt nach KI-Chatbots? https://ai-first.ai/podcast/was-kommt-nach-ki-chatbots Was kommt nach KI-Chatbots? – mit Florian Baader https://ai-first.ai/podcast/was-kommt-nach-ki-chatbots Fri, 08 Aug 2025 00:00:00 +0000 Welche Medienunternehmen überleben die KI-Disruption? https://ai-first.ai/podcast/welche-medienunternehmen-ueberleben-die-ki-disruption Welche Medienunternehmen überleben die KI-Disruption? – mit Marco Parrillo https://ai-first.ai/podcast/welche-medienunternehmen-ueberleben-die-ki-disruption Fri, 01 Aug 2025 00:00:00 +0000 Wie sieht deine KI-Nutzung aus? https://ai-first.ai/podcast/wie-sieht-deine-ki-nutzung-aus Wie sieht deine KI-Nutzung aus? – mit Elisabeth L'Orange https://ai-first.ai/podcast/wie-sieht-deine-ki-nutzung-aus Fri, 25 Jul 2025 00:00:00 +0000 Wie sieht die KI-Roadmap 2030 aus? https://ai-first.ai/podcast/wie-sieht-die-ki-roadmap-2030-aus Wie sieht die KI-Roadmap 2030 aus? – mit Sven Gabor Janszky https://ai-first.ai/podcast/wie-sieht-die-ki-roadmap-2030-aus Fri, 18 Jul 2025 00:00:00 +0000 Wie Rossmann Prompt Engineers einsetzt und KI Use Cases umsetzt https://ai-first.ai/podcast/wie-rossmann-prompt-engineers-einsetzt-und-ki-use-cases-umsetzt Wie Rossmann Prompt Engineers einsetzt und KI Use Cases umsetzt – mit Lena Eckroth https://ai-first.ai/podcast/wie-rossmann-prompt-engineers-einsetzt-und-ki-use-cases-umsetzt Fri, 11 Jul 2025 00:00:00 +0000 Wie funktioniert KI in einer Stadtverwaltung? Einblicke in München's KI-Strategie https://ai-first.ai/podcast/wie-funktioniert-ki-in-einer-stadtverwaltung-einblicke-in-muenchen-s-ki-strategie Wie funktioniert KI in einer Stadtverwaltung? Einblicke in München's KI-Strategie – mit Dr. Nina Böhm https://ai-first.ai/podcast/wie-funktioniert-ki-in-einer-stadtverwaltung-einblicke-in-muenchen-s-ki-strategie Fri, 04 Jul 2025 00:00:00 +0000 Vom 1. Leuchtturmprojekt zum KI-Kompetenzzentrum: Nachhaltige KI-Wertschöpfung bei Dachser https://ai-first.ai/podcast/vom-1-leuchtturmprojekt-zum-ki-kompetenzzentrum-nachhaltige-ki-wertschoepfung-bei-dachser Vom 1. Leuchtturmprojekt zum KI-Kompetenzzentrum: Nachhaltige KI-Wertschöpfung bei Dachser – mit Jürgen Sakry https://ai-first.ai/podcast/vom-1-leuchtturmprojekt-zum-ki-kompetenzzentrum-nachhaltige-ki-wertschoepfung-bei-dachser Fri, 27 Jun 2025 00:00:00 +0000 Generative KI trifft auf Automobilentwicklung: Die KI-Reise der IAV https://ai-first.ai/podcast/generative-ki-trifft-auf-automobilentwicklung-die-ki-reise-der-iav Generative KI trifft auf Automobilentwicklung: Die KI-Reise der IAV – mit Michael Reichel https://ai-first.ai/podcast/generative-ki-trifft-auf-automobilentwicklung-die-ki-reise-der-iav Fri, 20 Jun 2025 00:00:00 +0000 Human-Centered AI im deutschen Maschinenbau bei W&H https://ai-first.ai/podcast/human-centered-ai-im-deutschen-maschinenbau-bei-w-h Human-Centered AI im deutschen Maschinenbau bei W&H – mit Jürgen Brinkmann https://ai-first.ai/podcast/human-centered-ai-im-deutschen-maschinenbau-bei-w-h Fri, 13 Jun 2025 00:00:00 +0000 Zentral befähigen, dezentral umsetzen: Das hybride KI-Transformationsmodell von Breuninger https://ai-first.ai/podcast/zentral-befaehigen-dezentral-umsetzen-das-hybride-ki-transformationsmodell-von-breuninger Zentral befähigen, dezentral umsetzen: Das hybride KI-Transformationsmodell von Breuninger – mit Frank Postel https://ai-first.ai/podcast/zentral-befaehigen-dezentral-umsetzen-das-hybride-ki-transformationsmodell-von-breuninger Fri, 06 Jun 2025 00:00:00 +0000 KI-Demokratisierung: Wie Schäfer Shop 500 Mitarbeiter zu KI-Anwendern macht https://ai-first.ai/podcast/ki-demokratisierung-wie-schaefer-shop-500-mitarbeiter-zu-ki-anwendern-macht KI-Demokratisierung: Wie Schäfer Shop 500 Mitarbeiter zu KI-Anwendern macht – mit Felix Jochmus-Stöcke https://ai-first.ai/podcast/ki-demokratisierung-wie-schaefer-shop-500-mitarbeiter-zu-ki-anwendern-macht Fri, 30 May 2025 00:00:00 +0000 Wie baut man eine Daten- und KI-Organisation auf? Der Anti-Hype Blueprint https://ai-first.ai/podcast/wie-baut-man-eine-daten-und-ki-organisation-auf-der-anti-hype-blueprint Wie baut man eine Daten- und KI-Organisation auf? Der Anti-Hype Blueprint – mit Claudia Pohlink https://ai-first.ai/podcast/wie-baut-man-eine-daten-und-ki-organisation-auf-der-anti-hype-blueprint Fri, 23 May 2025 00:00:00 +0000 „KI ist kein Werkzeug, sondern ein Kollege“ – Wie Covestro das Zusammenspiel von Mensch und Maschine neu definiert https://ai-first.ai/podcast/ki-ist-kein-werkzeug-sondern-ein-kollege-wie-covestro-das-zusammenspiel-von-mensch-und-maschine-neu-definiert „KI ist kein Werkzeug, sondern ein Kollege“ – Wie Covestro das Zusammenspiel von Mensch und Maschine neu definiert – mit Nils Janus https://ai-first.ai/podcast/ki-ist-kein-werkzeug-sondern-ein-kollege-wie-covestro-das-zusammenspiel-von-mensch-und-maschine-neu-definiert Fri, 16 May 2025 00:00:00 +0000 KI-Transformation im Kundenservice: Wie KI-Agenten das Kundenerlebnis verbessern https://ai-first.ai/podcast/ki-transformation-im-kundenservice-wie-ki-agenten-das-kundenerlebnis-verbessern KI-Transformation im Kundenservice: Wie KI-Agenten das Kundenerlebnis verbessern – mit Malte Kosub https://ai-first.ai/podcast/ki-transformation-im-kundenservice-wie-ki-agenten-das-kundenerlebnis-verbessern Fri, 09 May 2025 00:00:00 +0000 KI-Transformation bei RWE: Wie ein Energieriese mit der schnellsten Technologie unserer Zeit umgeht https://ai-first.ai/podcast/ki-transformation-bei-rwe-wie-ein-energieriese-mit-der-schnellsten-technologie-unserer-zeit-umgeht KI-Transformation bei RWE: Wie ein Energieriese mit der schnellsten Technologie unserer Zeit umgeht – mit Dr. Max Schumm https://ai-first.ai/podcast/ki-transformation-bei-rwe-wie-ein-energieriese-mit-der-schnellsten-technologie-unserer-zeit-umgeht Fri, 02 May 2025 00:00:00 +0000 Das AI Adoption Playbook: Einblicke aus über 550 Kunden von Langdock https://ai-first.ai/podcast/das-ai-adoption-playbook-einblicke-aus-ueber-550-kunden-von-langdock Das AI Adoption Playbook: Einblicke aus über 550 Kunden von Langdock – mit Lennard Schmidt https://ai-first.ai/podcast/das-ai-adoption-playbook-einblicke-aus-ueber-550-kunden-von-langdock Fri, 25 Apr 2025 00:00:00 +0000 KI-Roadmaps für Unternehmen: Wie du profitable Use Cases findest und umsetzt https://ai-first.ai/podcast/ki-roadmaps-fuer-unternehmen-wie-du-profitable-use-cases-findest-und-umsetzt KI-Roadmaps für Unternehmen: Wie du profitable Use Cases findest und umsetzt – mit Tobias Zwingmann https://ai-first.ai/podcast/ki-roadmaps-fuer-unternehmen-wie-du-profitable-use-cases-findest-und-umsetzt Fri, 18 Apr 2025 00:00:00 +0000 Das 1. Jahr als Head of AI: Einblicke in FUNKE's KI Transformation https://ai-first.ai/podcast/das-1-jahr-als-head-of-ai-einblicke-in-funke-s-ki-transformation Das 1. Jahr als Head of AI: Einblicke in FUNKE's KI Transformation – mit Paul Elvers https://ai-first.ai/podcast/das-1-jahr-als-head-of-ai-einblicke-in-funke-s-ki-transformation Fri, 11 Apr 2025 00:00:00 +0000 Schwarze Magie in KI: Cyberangriffe, Deep Fakes und wie wir uns davor schützen können https://ai-first.ai/podcast/schwarze-magie-in-ki-cyberangriffe-deep-fakes-und-wie-wir-uns-davor-schuetzen-koennen Schwarze Magie in KI: Cyberangriffe, Deep Fakes und wie wir uns davor schützen können – mit Niklas Hanitsch https://ai-first.ai/podcast/schwarze-magie-in-ki-cyberangriffe-deep-fakes-und-wie-wir-uns-davor-schuetzen-koennen Fri, 04 Apr 2025 00:00:00 +0000 AI Tinkering bei Ashoka https://ai-first.ai/podcast/ai-tinkering-bei-ashoka AI Tinkering bei Ashoka – mit Odin Mühlenbein https://ai-first.ai/podcast/ai-tinkering-bei-ashoka Fri, 28 Mar 2025 00:00:00 +0000 Löst KI Anwälte ab? Einblicke in den KI-Wandel der Rechtsbranche. https://ai-first.ai/podcast/loest-ki-anwaelte-ab-einblicke-in-den-ki-wandel-der-rechtsbranche Löst KI Anwälte ab? Einblicke in den KI-Wandel der Rechtsbranche. – mit Viktor von Essen https://ai-first.ai/podcast/loest-ki-anwaelte-ab-einblicke-in-den-ki-wandel-der-rechtsbranche Fri, 21 Mar 2025 00:00:00 +0000 KI im Unternehmen: Rechtliche Fallstricke und wie man sie vermeidet https://ai-first.ai/podcast/ki-im-unternehmen-rechtliche-fallstricke-und-wie-man-sie-vermeidet KI im Unternehmen: Rechtliche Fallstricke und wie man sie vermeidet – mit Arno Malcher https://ai-first.ai/podcast/ki-im-unternehmen-rechtliche-fallstricke-und-wie-man-sie-vermeidet Fri, 14 Mar 2025 00:00:00 +0000 KI-Potenziale entfesseln, Menschen mitnehmen – der Weg zur digitalen Use Case Fabrik https://ai-first.ai/podcast/ki-potenziale-entfesseln-menschen-mitnehmen-der-weg-zur-digitalen-use-case-fabrik KI-Potenziale entfesseln, Menschen mitnehmen – der Weg zur digitalen Use Case Fabrik – mit Sven Bettermann https://ai-first.ai/podcast/ki-potenziale-entfesseln-menschen-mitnehmen-der-weg-zur-digitalen-use-case-fabrik Fri, 07 Mar 2025 00:00:00 +0000 Schluss mit endlosem Suchen: Wie KI das Unternehmenswissen zugänglich macht https://ai-first.ai/podcast/schluss-mit-endlosem-suchen-wie-ki-das-unternehmenswissen-zugaenglich-macht Schluss mit endlosem Suchen: Wie KI das Unternehmenswissen zugänglich macht – mit Jan Marquart https://ai-first.ai/podcast/schluss-mit-endlosem-suchen-wie-ki-das-unternehmenswissen-zugaenglich-macht Fri, 28 Feb 2025 00:00:00 +0000 76% tägliche Nutzung: So gelingt KI-Adoption im Mittelstand https://ai-first.ai/podcast/76-taegliche-nutzung-so-gelingt-ki-adoption-im-mittelstand 76% tägliche Nutzung: So gelingt KI-Adoption im Mittelstand – mit Florian Grunwald https://ai-first.ai/podcast/76-taegliche-nutzung-so-gelingt-ki-adoption-im-mittelstand Fri, 21 Feb 2025 00:00:00 +0000 Wie Otto die KI-Transformation meistert https://ai-first.ai/podcast/wie-otto-die-ki-transformation-meistert Wie Otto die KI-Transformation meistert – mit Dr. Frederike Fritzsche https://ai-first.ai/podcast/wie-otto-die-ki-transformation-meistert Fri, 14 Feb 2025 00:00:00 +0000 KI-gestützte Bedarfsplanung bei Renfert: Ein Praxisbericht aus dem Mittelstand https://ai-first.ai/podcast/ki-gestuetzte-bedarfsplanung-bei-renfert-ein-praxisbericht-aus-dem-mittelstand KI-gestützte Bedarfsplanung bei Renfert: Ein Praxisbericht aus dem Mittelstand – mit Sebastian Herz https://ai-first.ai/podcast/ki-gestuetzte-bedarfsplanung-bei-renfert-ein-praxisbericht-aus-dem-mittelstand Fri, 07 Feb 2025 00:00:00 +0000 Die Agent Economy: Wie KI-Teams die Arbeitswelt verändern https://ai-first.ai/podcast/die-agent-economy-wie-ki-teams-die-arbeitswelt-veraendern Die Agent Economy: Wie KI-Teams die Arbeitswelt verändern – mit Sebastian Küpers https://ai-first.ai/podcast/die-agent-economy-wie-ki-teams-die-arbeitswelt-veraendern Fri, 31 Jan 2025 00:00:00 +0000 Make AI Fun Again: 6 Learnings für produktive KI-Nutzung im Unternehmen https://ai-first.ai/podcast/make-ai-fun-again-6-learnings-fuer-produktive-ki-nutzung-im-unternehmen Make AI Fun Again: 6 Learnings für produktive KI-Nutzung im Unternehmen – mit Aram Azimi https://ai-first.ai/podcast/make-ai-fun-again-6-learnings-fuer-produktive-ki-nutzung-im-unternehmen Fri, 24 Jan 2025 00:00:00 +0000 Wie BASF 110.000 Mitarbeiter fit für die Zukunft macht https://ai-first.ai/podcast/wie-basf-110-000-mitarbeiter-fit-fuer-die-zukunft-macht Wie BASF 110.000 Mitarbeiter fit für die Zukunft macht – mit Jasmin Weimüller https://ai-first.ai/podcast/wie-basf-110-000-mitarbeiter-fit-fuer-die-zukunft-macht Fri, 17 Jan 2025 00:00:00 +0000 KI Prognosen 2025 https://ai-first.ai/podcast/ki-prognosen-2025 KI Prognosen 2025 – mit Christoph Pacher https://ai-first.ai/podcast/ki-prognosen-2025 Fri, 10 Jan 2025 00:00:00 +0000 KI im Recruiting: Von 45 auf 3 Minuten für eine Stellenanzeige mit 30% mehr Conversion https://ai-first.ai/podcast/ki-im-recruiting-von-45-auf-3-minuten-fuer-eine-stellenanzeige-mit-30-mehr-conversion KI im Recruiting: Von 45 auf 3 Minuten für eine Stellenanzeige mit 30% mehr Conversion – mit Shezan Kazi https://ai-first.ai/podcast/ki-im-recruiting-von-45-auf-3-minuten-fuer-eine-stellenanzeige-mit-30-mehr-conversion Fri, 03 Jan 2025 00:00:00 +0000 Pragmatische KI-Einführung im Mittelstand - Learnings von der LUQOM Group https://ai-first.ai/podcast/pragmatische-ki-einfuehrung-im-mittelstand-learnings-von-der-luqom-group Pragmatische KI-Einführung im Mittelstand - Learnings von der LUQOM Group – mit Ales Drabek https://ai-first.ai/podcast/pragmatische-ki-einfuehrung-im-mittelstand-learnings-von-der-luqom-group Fri, 27 Dec 2024 00:00:00 +0000 Keine KI ohne Datenstrategie: Ein Praxis-Guide für Unternehmen https://ai-first.ai/podcast/keine-ki-ohne-datenstrategie-ein-praxis-guide-fuer-unternehmen Keine KI ohne Datenstrategie: Ein Praxis-Guide für Unternehmen – mit Timo Buck https://ai-first.ai/podcast/keine-ki-ohne-datenstrategie-ein-praxis-guide-fuer-unternehmen Fri, 20 Dec 2024 00:00:00 +0000 KI Strategie: Wie Drees & Sommer eine AI-Vision entwickelt und umsetzt https://ai-first.ai/podcast/ki-strategie-wie-drees-sommer-eine-ai-vision-entwickelt-und-umsetzt KI Strategie: Wie Drees & Sommer eine AI-Vision entwickelt und umsetzt – mit Raffaela Schneid https://ai-first.ai/podcast/ki-strategie-wie-drees-sommer-eine-ai-vision-entwickelt-und-umsetzt Fri, 13 Dec 2024 00:00:00 +0000 GenAI bei Bosch: Von der Idee zum konzernweiten Rollout in 18 Monaten https://ai-first.ai/podcast/genai-bei-bosch-von-der-idee-zum-konzernweiten-rollout-in-18-monaten GenAI bei Bosch: Von der Idee zum konzernweiten Rollout in 18 Monaten – mit Sascha Sambale https://ai-first.ai/podcast/genai-bei-bosch-von-der-idee-zum-konzernweiten-rollout-in-18-monaten Fri, 06 Dec 2024 00:00:00 +0000 AI im Traditionsunternehmen: Wie Hochland Künstliche Intelligenz wertstiftend einsetzt https://ai-first.ai/podcast/ai-im-traditionsunternehmen-wie-hochland-kuenstliche-intelligenz-wertstiftend-einsetzt AI im Traditionsunternehmen: Wie Hochland Künstliche Intelligenz wertstiftend einsetzt – mit Albert Heim https://ai-first.ai/podcast/ai-im-traditionsunternehmen-wie-hochland-kuenstliche-intelligenz-wertstiftend-einsetzt Fri, 29 Nov 2024 00:00:00 +0000 EU AI Act entmystifiziert: Wie Unternehmen richtig mit der KI-Verordnung umgehen https://ai-first.ai/podcast/eu-ai-act-entmystifiziert-wie-unternehmen-richtig-mit-der-ki-verordnung-umgehen EU AI Act entmystifiziert: Wie Unternehmen richtig mit der KI-Verordnung umgehen – mit Dr. Patrick Gilroy https://ai-first.ai/podcast/eu-ai-act-entmystifiziert-wie-unternehmen-richtig-mit-der-ki-verordnung-umgehen Fri, 22 Nov 2024 00:00:00 +0000 Produktivität durch AI: GetYourGuide's Ansatz zur unternehmensweiten Integration https://ai-first.ai/podcast/produktivitaet-durch-ai-getyourguide-s-ansatz-zur-unternehmensweiten-integration Produktivität durch AI: GetYourGuide's Ansatz zur unternehmensweiten Integration – mit Mathieu Bastian https://ai-first.ai/podcast/produktivitaet-durch-ai-getyourguide-s-ansatz-zur-unternehmensweiten-integration Fri, 15 Nov 2024 00:00:00 +0000 Wie Deutschland zur KI Nation wird https://ai-first.ai/podcast/wie-deutschland-zur-ki-nation-wird Wie Deutschland zur KI Nation wird – mit Fabian Westerheide https://ai-first.ai/podcast/wie-deutschland-zur-ki-nation-wird Fri, 08 Nov 2024 00:00:00 +0000 Wie Körber ein GenAI Center of Excellence aufgebaut hat https://ai-first.ai/podcast/wie-koerber-ein-genai-center-of-excellence-aufgebaut-hat Wie Körber ein GenAI Center of Excellence aufgebaut hat – mit Maximilian Henschel https://ai-first.ai/podcast/wie-koerber-ein-genai-center-of-excellence-aufgebaut-hat Fri, 01 Nov 2024 00:00:00 +0000 AI in der Kreativbranche: Wie man Effizienz und Kreativität zusammenbringt https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-man-effizienz-und-kreativitaet-zusammenbringt AI in der Kreativbranche: Wie man Effizienz und Kreativität zusammenbringt – mit Jasper Börnsen https://ai-first.ai/podcast/ai-in-der-kreativbranche-wie-man-effizienz-und-kreativitaet-zusammenbringt Fri, 25 Oct 2024 00:00:00 +0000 ogGPT trifft Großkonzern: Wie Otto 30.000 Mitarbeiter AI-fit macht https://ai-first.ai/podcast/oggpt-trifft-grosskonzern-wie-otto-30-000-mitarbeiter-ai-fit-macht ogGPT trifft Großkonzern: Wie Otto 30.000 Mitarbeiter AI-fit macht – mit Florian Leuerer https://ai-first.ai/podcast/oggpt-trifft-grosskonzern-wie-otto-30-000-mitarbeiter-ai-fit-macht Fri, 18 Oct 2024 00:00:00 +0000 ================================================ FILE: feeds/feed_anthropic_changelog_claude_code.xml ================================================ Claude Code Changelog https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md Claude Code Changelog http://www.rssboard.org/rss-specification python-feedgen https://www.anthropic.com/images/icons/apple-touch-icon.png Claude Code Changelog https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md en Sat, 18 Apr 2026 14:13:32 +0000 [NOTICE] This feed is no longer maintainedClaude Code now publishes an official RSS feed. This scraper is retired; the feed XML will be deleted in ~90 days. Recommended alternative: https://code.claude.com/docs/en/changelog/rss.xmldeprecation-notice-anthropic_changelog_claude_codeSat, 18 Apr 2026 14:24:42 +0000https://code.claude.com/docs/en/changelog/rss.xml v2.1.114 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21114 <ul><li>Fixed a crash in the permission dialog when an agent teams teammate requested tool permission</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21114 Changelog v2.1.113 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21113 <ul><li>Changed the CLI to spawn a native Claude Code binary (via a per-platform optional dependency) instead of bundled JavaScript</li><li>Added `sandbox.network.deniedDomains` setting to block specific domains even when a broader `allowedDomains` wildcard would otherwise permit them</li><li>Fullscreen mode: Shift+↑/↓ now scrolls the viewport when extending a selection past the visible edge</li><li>`Ctrl+A` and `Ctrl+E` now move to the start/end of the current logical line in multiline input, matching readline behavior</li><li>Windows: `Ctrl+Backspace` now deletes the previous word</li><li>Long URLs in responses and bash output stay clickable when they wrap across lines (in terminals with OSC 8 hyperlinks)</li><li>Improved `/loop`: pressing Esc now cancels pending wakeups, and wakeups display as "Claude resuming /loop wakeup" for clarity</li><li>`/extra-usage` now works from Remote Control (mobile/web) clients</li><li>Remote Control clients can now query `@`-file autocomplete suggestions</li><li>Improved `/ultrareview`: faster launch with parallelized checks, diffstat in the launch dialog, and animated launching state</li><li>Subagents that stall mid-stream now fail with a clear error after 10 minutes instead of hanging silently</li><li>Bash tool: multi-line commands whose first line is a comment now show the full command in the transcript, closing a UI-spoofing vector</li><li>Running `cd <current-directory> && git …` no longer triggers a permission prompt when the `cd` is a no-op</li><li>Security: on macOS, `/private/{etc,var,tmp,home}` paths are now treated as dangerous removal targets under `Bash(rm:*)` allow rules</li><li>Security: Bash deny rules now match commands wrapped in `env`/`sudo`/`watch`/`ionice`/`setsid` and similar exec wrappers</li><li>Security: `Bash(find:*)` allow rules no longer auto-approve `find -exec`/`-delete`</li><li>Fixed MCP concurrent-call timeout handling where a message for one tool call could silently disarm another call's watchdog</li><li>Fixed Cmd-backspace / `Ctrl+U` to once again delete from the cursor to the start of the line</li><li>Fixed markdown tables breaking when a cell contains an inline code span with a pipe character</li><li>Fixed session recap auto-firing while composing unsent text in the prompt</li><li>Fixed `/copy` "Full response" not aligning markdown table columns for pasting into GitHub, Notion, or Slack</li><li>Fixed messages typed while viewing a running subagent being hidden from its transcript and misattributed to the parent AI</li><li>Fixed Bash `dangerouslyDisableSandbox` running commands outside the sandbox without a permission prompt</li><li>Fixed `/effort auto` confirmation — now says "Effort level set to max" to match the status bar label</li><li>Fixed the "copied N chars" toast overcounting emoji and other multi-code-unit characters</li><li>Fixed `/insights` crashing with `EBUSY` on Windows</li><li>Fixed exit confirmation dialog mislabeling one-shot scheduled tasks as recurring — now shows a countdown</li><li>Fixed slash/@ completion menu not sitting flush against the prompt border in fullscreen mode</li><li>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</li><li>Fixed prompt cursor disappearing when `NO_COLOR` is set</li><li>Fixed `ToolSearch` ranking so pasted MCP tool names surface the actual tool instead of description-matching siblings</li><li>Fixed compacting a resumed long-context session failing with "Extra usage is required for long context requests"</li><li>Fixed `plugin install` succeeding when a dependency version conflicts with an already-installed plugin — now reports `range-conflict`</li><li>Fixed "Refine with Ultraplan" not showing the remote session URL in the transcript</li><li>Fixed SDK image content blocks that fail to process crashing the session — now degrade to a text placeholder</li><li>Fixed Remote Control sessions not streaming subagent transcripts</li><li>Fixed Remote Control sessions not being archived when Claude Code exits</li><li>Fixed `thinking.type.enabled is not supported` 400 error when using Opus 4.7 via a Bedrock Application Inference Profile ARN</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21113 Changelog v2.1.112 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21112 <ul><li>Fixed "claude-opus-4-7 is temporarily unavailable" for auto mode</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21112 Changelog v2.1.111 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21111 <ul><li>Claude Opus 4.7 xhigh is now available! Use /effort to tune speed vs. intelligence</li><li>Auto mode is now available for Max subscribers when using Opus 4.7</li><li>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`</li><li>`/effort` now opens an interactive slider when called without arguments, with arrow-key navigation between levels and Enter to confirm</li><li>Added "Auto (match terminal)" theme option that matches your terminal's dark/light mode — select it from `/theme`</li><li>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`</li><li>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 <PR#>` to fetch and review a specific GitHub PR</li><li>Auto mode no longer requires `--enable-auto-mode`</li><li>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)</li><li>Read-only bash commands with glob patterns (e.g. `ls *.ts`) and commands starting with `cd <project-dir> &&` no longer trigger a permission prompt</li><li>Suggest the closest matching subcommand when `claude <word>` is invoked with a near-miss typo (e.g. `claude udpate` → "Did you mean `claude update`?")</li><li>Plan files are now named after your prompt (e.g. `fix-auth-race-snug-otter.md`) instead of purely random words</li><li>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</li><li>`/skills` menu now supports sorting by estimated token count — press `t` to toggle</li><li>`Ctrl+U` now clears the entire input buffer (previously: delete to start of line); press `Ctrl+Y` to restore</li><li>`Ctrl+L` now forces a full screen redraw in addition to clearing the prompt input</li><li>Transcript view footer now shows `[` (dump to scrollback) and `v` (open in editor) shortcuts</li><li>The "+N lines" marker for truncated long pastes is now a full-width rule for easier scanning</li><li>Headless `--output-format stream-json` now includes `plugin_errors` on the init event when plugins are demoted for unsatisfied dependencies</li><li>Added `OTEL_LOG_RAW_API_BODIES` environment variable to emit full API request and response bodies as OpenTelemetry log events for debugging</li><li>Suppressed spurious decompression, network, and transient error messages that could appear in the TUI during normal operation</li><li>Reverted the v2.1.110 cap on non-streaming fallback retries — it traded long waits for more outright failures during API overload</li><li>Fixed terminal display tearing (random characters, drifting input) in iTerm2 + tmux setups when terminal notifications are sent</li><li>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</li><li>Fixed LSP diagnostics from before an edit appearing after it, causing the model to re-read files it just edited</li><li>Fixed tab-completing `/resume` immediately resuming an arbitrary titled session instead of showing the session picker</li><li>Fixed `/context` grid rendering with extra blank lines between rows</li><li>Fixed `/clear` dropping the session name set by `/rename`, causing statusline output to lose `session_name`</li><li>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</li><li>Fixed Claude calling a non-existent `commit` skill and showing "Unknown skill: commit" for users without a custom `/commit` command</li><li>Fixed 429 rate-limit errors on Bedrock/Vertex/Foundry referencing status.claude.com (it only covers Anthropic-operated providers)</li><li>Fixed feedback surveys appearing back-to-back after dismissing one</li><li>Fixed bare URLs in bash/PowerShell/MCP tool output being unclickable when the terminal wraps them across lines</li><li>Windows: `CLAUDE_ENV_FILE` and SessionStart hook environment files now apply (previously a no-op)</li><li>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</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21111 Changelog v2.1.110 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21110 <ul><li>Added `/tui` command and `tui` setting — run `/tui fullscreen` to switch to flicker-free rendering in the same conversation</li><li>Added push notification tool — Claude can send mobile push notifications when Remote Control and "Push when Claude decides" config are enabled</li><li>Changed `Ctrl+O` to toggle between normal and verbose transcript only; focus view is now toggled separately with the new `/focus` command</li><li>Added `autoScrollEnabled` config to disable conversation auto-scroll in fullscreen mode</li><li>Added option to show Claude's last response as commented context in the `Ctrl+G` external editor (enable via `/config`)</li><li>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</li><li>Improved `/doctor` to warn when an MCP server is defined in multiple config scopes with different endpoints</li><li>`--resume`/`--continue` now resurrects unexpired scheduled tasks</li><li>`/context`, `/exit`, and `/reload-plugins` now work from Remote Control (mobile/web) clients</li><li>Write tool now informs the model when you edit the proposed content in the IDE diff before accepting</li><li>Bash tool now enforces the documented maximum timeout instead of accepting arbitrarily large values</li><li>SDK/headless sessions now read `TRACEPARENT`/`TRACESTATE` from the environment for distributed trace linking</li><li>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`.</li><li>Fixed MCP tool calls hanging indefinitely when the server connection drops mid-response on SSE/HTTP transports</li><li>Fixed non-streaming fallback retries causing multi-minute hangs when the API is unreachable</li><li>Fixed session recap, local slash-command output, and other system status lines not appearing in focus mode</li><li>Fixed high CPU usage in fullscreen when text is selected while a tool is running</li><li>Fixed plugin install not honoring dependencies declared in `plugin.json` when the marketplace entry omits them; `/plugin` install now lists auto-installed dependencies</li><li>Fixed skills with `disable-model-invocation: true` failing when invoked via `/<skill>` mid-message</li><li>Fixed `--resume` sometimes showing the first prompt instead of the `/rename` name for sessions still running or exited uncleanly</li><li>Fixed queued messages briefly appearing twice during multi-tool-call turns</li><li>Fixed session cleanup not removing the full session directory including subagent transcripts</li><li>Fixed dropped keystrokes after the CLI relaunches (e.g. `/tui`, provider setup wizards)</li><li>Fixed garbled startup rendering in macOS Terminal.app and other terminals that don't support synchronized output</li><li>Hardened "Open in editor" actions against command injection from untrusted filenames</li><li>Fixed `PermissionRequest` hooks returning `updatedInput` not being re-checked against `permissions.deny` rules; `setMode:'bypassPermissions'` updates now respect `disableBypassPermissionsMode`</li><li>Fixed `PreToolUse` hook `additionalContext` being dropped when the tool call fails</li><li>Fixed stdio MCP servers that print stray non-JSON lines to stdout being disconnected on the first stray line (regression in 2.1.105)</li><li>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</li><li>Fixed potential excessive memory allocation when piped (non-TTY) Ink output contains a single very wide line</li><li>Fixed `/skills` menu not scrolling when the list overflows the modal in fullscreen mode</li><li>Fixed Remote Control sessions showing a generic error instead of prompting for re-login when the session is too old</li><li>Fixed Remote Control session renames from claude.ai not persisting the title to the local CLI session</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21110 Changelog v2.1.109 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21109 <ul><li>Improved the extended-thinking indicator with a rotating progress hint</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21109 Changelog v2.1.108 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21108 <ul><li>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</li><li>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.</li><li>The model can now discover and invoke built-in slash commands like `/init`, `/review`, and `/security-review` via the Skill tool</li><li>`/undo` is now an alias for `/rewind`</li><li>Improved `/model` to warn before switching models mid-conversation, since the next response re-reads the full history uncached</li><li>Improved `/resume` picker to default to sessions from the current directory; press `Ctrl+A` to show all projects</li><li>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</li><li>Reduced memory footprint for file reads, edits, and syntax highlighting by loading language grammars on demand</li><li>Added "verbose" indicator when viewing the detailed transcript (`Ctrl+O`)</li><li>Added a warning at startup when prompt caching is disabled via `DISABLE_PROMPT_CACHING*` environment variables</li><li>Fixed paste not working in the `/login` code prompt (regression in 2.1.105)</li><li>Fixed subscribers who set `DISABLE_TELEMETRY` falling back to 5-minute prompt cache TTL instead of 1 hour</li><li>Fixed Agent tool prompting for permission in auto mode when the safety classifier's transcript exceeded its context window</li><li>Fixed Bash tool producing no output when `CLAUDE_ENV_FILE` (e.g. `~/.zprofile`) ends with a `#` comment line</li><li>Fixed `claude --resume <session-id>` losing the session's custom name and color set via `/rename`</li><li>Fixed session titles showing placeholder example text when the first message is a short greeting</li><li>Fixed terminal escape codes appearing as garbage text in the prompt input after `--teleport`</li><li>Fixed `/feedback` retry: pressing Enter to resubmit after a failure now works without first editing the description</li><li>Fixed `--teleport` and `--resume <id>` precondition errors (e.g. dirty git tree, session not found) exiting silently instead of showing the error message</li><li>Fixed Remote Control session titles set in the web UI being overwritten by auto-generated titles after the third message</li><li>Fixed `--resume` truncating sessions when the transcript contained a self-referencing message</li><li>Fixed transcript write failures (e.g., disk full) being silently dropped instead of being logged</li><li>Fixed diacritical marks (accents, umlauts, cedillas) being dropped from responses when the `language` setting is configured</li><li>Fixed policy-managed plugins never auto-updating when running from a different project than where they were first installed</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21108 Changelog v2.1.107 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21107 <ul><li>Show thinking hints sooner during long operations</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21107 Changelog v2.1.105 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21105 <ul><li>Added `path` parameter to the `EnterWorktree` tool to switch into an existing worktree of the current repository</li><li>Added PreCompact hook support: hooks can now block compaction by exiting with code 2 or returning `{"decision":"block"}`</li><li>Added background monitor support for plugins via a top-level `monitors` manifest key that auto-arms at session start or on skill invoke</li><li>`/proactive` is now an alias for `/loop`</li><li>Improved stalled API stream handling: streams now abort after 5 minutes of no data and retry non-streaming instead of hanging indefinitely</li><li>Improved network error messages: connection errors now show a retry message immediately instead of a silent spinner</li><li>Improved file write display: long single-line writes (e.g. minified JSON) are now truncated in the UI instead of paginating across many screens</li><li>Improved `/doctor` layout with status icons; press `f` to have Claude fix reported issues</li><li>Improved `/config` labels and descriptions for clarity</li><li>Improved skill description handling: raised the listing cap from 250 to 1,536 characters and added a startup warning when descriptions are truncated</li><li>Improved `WebFetch` to strip `<style>` and `<script>` contents from fetched pages so CSS-heavy pages no longer exhaust the content budget before reaching actual text</li><li>Improved stale agent worktree cleanup to remove worktrees whose PR was squash-merged instead of keeping them indefinitely</li><li>Improved MCP large-output truncation prompt to give format-specific recipes (e.g. `jq` for JSON, computed Read chunk sizes for text)</li><li>Fixed images attached to queued messages (sent while Claude is working) being dropped</li><li>Fixed screen going blank when the prompt input wraps to a second line in long conversations</li><li>Fixed leading whitespace getting copied when selecting multi-line assistant responses in fullscreen mode</li><li>Fixed leading whitespace being trimmed from assistant messages, breaking ASCII art and indented diagrams</li><li>Fixed garbled bash output when commands print clickable file links (e.g. Python `rich`/`loguru` logging)</li><li>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)</li><li>Fixed duplicate "Creating worktree" text in EnterWorktree/ExitWorktree tool display</li><li>Fixed queued user prompts disappearing from focus mode</li><li>Fixed one-shot scheduled tasks re-firing repeatedly when the file watcher missed the post-fire cleanup</li><li>Fixed inbound channel notifications being silently dropped after the first message for Team/Enterprise users</li><li>Fixed marketplace plugins with `package.json` and lockfile not having dependencies installed automatically after install/update</li><li>Fixed marketplace auto-update leaving the official marketplace in a broken state when a plugin process holds files open during the update</li><li>Fixed "Resume this session with..." hint not printing on exit after `/resume`, `--worktree`, or `/branch`</li><li>Fixed feedback survey shortcut keys firing when typed at the end of a longer prompt</li><li>Fixed stdio MCP server emitting malformed (non-JSON) output hanging the session instead of failing fast with "Connection closed"</li><li>Fixed MCP tools missing on the first turn of headless/remote-trigger sessions when MCP servers connect asynchronously</li><li>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</li><li>Fixed 429 rate-limit errors showing a raw JSON dump instead of a clean message for API-key, Bedrock, and Vertex users</li><li>Fixed crash on resume when session contains malformed text blocks</li><li>Fixed `/help` dropping the tab bar, Shortcuts heading, and footer at short terminal heights</li><li>Fixed malformed keybinding entry values in `keybindings.json` being silently loaded instead of rejected with a clear error</li><li>Fixed `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` in one project's settings permanently disabling usage metrics for all projects on the machine</li><li>Fixed washed-out 16-color palette when using Ghostty, Kitty, Alacritty, WezTerm, foot, rio, or Contour over SSH/mosh</li><li>Fixed Bash tool suggesting `acceptEdits` permission mode when exiting plan mode would downgrade from a higher permission level</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21105 Changelog v2.1.101 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21101 <ul><li>Added `/team-onboarding` command to generate a teammate ramp-up guide from your local Claude Code usage</li><li>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)</li><li>`/ultraplan` and other remote-session features now auto-create a default cloud environment instead of requiring web setup first</li><li>Improved brief mode to retry once when Claude responds with plain text instead of a structured message</li><li>Improved focus mode: Claude now writes more self-contained summaries since it knows you only see its final message</li><li>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</li><li>Improved rate-limit retry messages to show which limit was hit and when it resets instead of an opaque seconds countdown</li><li>Improved refusal error messages to include the API-provided explanation when available</li><li>Improved `claude -p --resume <name>` to accept session titles set via `/rename` or `--name`</li><li>Improved settings resilience: an unrecognized hook event name in `settings.json` no longer causes the entire file to be ignored</li><li>Improved plugin hooks from plugins force-enabled by managed settings to run when `allowManagedHooksOnly` is set</li><li>Improved `/plugin` and `claude plugin update` to show a warning when the marketplace could not be refreshed, instead of silently reporting a stale version</li><li>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</li><li>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</li><li>Improved SDK `query()` to clean up subprocess and temp files when consumers `break` from `for await` or use `await using`</li><li>Fixed a command injection vulnerability in the POSIX `which` fallback used by LSP binary detection</li><li>Fixed a memory leak where long sessions retained dozens of historical copies of the message list in the virtual scroller</li><li>Fixed `--resume`/`--continue` losing conversation context on large sessions when the loader anchored on a dead-end branch instead of the live conversation</li><li>Fixed `--resume` chain recovery bridging into an unrelated subagent conversation when a subagent message landed near a main-chain write gap</li><li>Fixed a crash on `--resume` when a persisted Edit/Write tool result was missing its `file_path`</li><li>Fixed a hardcoded 5-minute request timeout that aborted slow backends (local LLMs, extended thinking, slow gateways) regardless of `API_TIMEOUT_MS`</li><li>Fixed `permissions.deny` rules not overriding a PreToolUse hook's `permissionDecision: "ask"` — previously the hook could downgrade a deny into a prompt</li><li>Fixed `--setting-sources` without `user` causing background cleanup to ignore `cleanupPeriodDays` and delete conversation history older than 30 days</li><li>Fixed Bedrock SigV4 authentication failing with 403 when `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper`, or `ANTHROPIC_CUSTOM_HEADERS` set an Authorization header</li><li>Fixed `claude -w <name>` failing with "already exists" after a previous session's worktree cleanup left a stale directory</li><li>Fixed subagents not inheriting MCP tools from dynamically-injected servers</li><li>Fixed sub-agents running in isolated worktrees being denied Read/Edit access to files inside their own worktree</li><li>Fixed sandboxed Bash commands failing with `mktemp: No such file or directory` after a fresh boot</li><li>Fixed `claude mcp serve` tool calls failing with "Tool execution failed" in MCP clients that validate `outputSchema`</li><li>Fixed `RemoteTrigger` tool's `run` action sending an empty body and being rejected by the server</li><li>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</li><li>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</li><li>Fixed `/btw` writing a copy of the entire conversation to disk on every use</li><li>Fixed `/context` Free space and Messages breakdown disagreeing with the header percentage</li><li>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</li><li>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</li><li>Fixed `ctrl+]`, `ctrl+\`, and `ctrl+^` keybindings not firing in terminals that send raw C0 control bytes (Terminal.app, default iTerm2, xterm)</li><li>Fixed `/login` OAuth URL rendering with padding that prevented clean mouse selection</li><li>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</li><li>Fixed crash when `settings.json` env values are numbers instead of strings</li><li>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</li><li>Fixed custom keybindings (`~/.claude/keybindings.json`) not loading on Bedrock, Vertex, and other third-party providers</li><li>Fixed `claude --continue -p` not correctly continuing sessions created by `-p` or the SDK</li><li>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</li><li>Fixed `/insights` sometimes omitting the report file link from its response</li><li>[VSCode] Fixed the file attachment below the chat input not clearing when the last editor tab is closed</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#21101 Changelog v2.1.98 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2198 <ul><li>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</li><li>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</li><li>Added Monitor tool for streaming events from background scripts</li><li>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</li><li>Added `--exclude-dynamic-system-prompt-sections` flag to print mode for improved cross-user prompt caching</li><li>Added `workspace.git_worktree` to the status line JSON input, set whenever the current directory is inside a linked git worktree</li><li>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</li><li>LSP: Claude Code now identifies itself to language servers via `clientInfo` in the initialize request</li><li>Fixed a Bash tool permission bypass where a backslash-escaped flag could be auto-allowed as read-only and lead to arbitrary code execution</li><li>Fixed compound Bash commands bypassing forced permission prompts for safety checks and explicit ask rules in auto and bypass-permissions modes</li><li>Fixed read-only commands with env-var prefixes not prompting unless the var is known-safe (`LANG`, `TZ`, `NO_COLOR`, etc.)</li><li>Fixed redirects to `/dev/tcp/...` or `/dev/udp/...` not prompting instead of auto-allowing</li><li>Fixed stalled streaming responses timing out instead of falling back to non-streaming mode</li><li>Fixed 429 retries burning all attempts in ~13s when the server returns a small `Retry-After` — exponential backoff now applies as a minimum</li><li>Fixed MCP OAuth `oauth.authServerMetadataUrl` config override not being honored on token refresh after restart, affecting ADFS and similar IdPs</li><li>Fixed capital letters being dropped to lowercase on xterm and VS Code integrated terminal when the kitty keyboard protocol is active</li><li>Fixed macOS text replacements deleting the trigger word instead of inserting the substitution</li><li>Fixed `--dangerously-skip-permissions` being silently downgraded to accept-edits mode after approving a write to a protected path via Bash</li><li>Fixed managed-settings allow rules remaining active after an admin removed them, until process restart</li><li>Fixed `permissions.additionalDirectories` changes not applying mid-session — removed directories lose access immediately and added ones work without restart</li><li>Fixed removing a directory from `additionalDirectories` revoking access to the same directory passed via `--add-dir`</li><li>Fixed `Bash(cmd:*)` and `Bash(git commit *)` wildcard permission rules failing to match commands with extra spaces or tabs</li><li>Fixed `Bash(...)` deny rules being downgraded to a prompt for piped commands that mix `cd` with other segments</li><li>Fixed false Bash permission prompts for `cut -d /`, `paste -d /`, `column -s /`, `awk '{print $1}' file`, and filenames containing `%`</li><li>Fixed permission rules with names matching JavaScript prototype properties (e.g. `toString`) causing `settings.json` to be silently ignored</li><li>Fixed agent team members not inheriting the leader's permission mode when using `--dangerously-skip-permissions`</li><li>Fixed a crash in fullscreen mode when hovering over MCP tool results</li><li>Fixed copying wrapped URLs in fullscreen mode inserting spaces at line breaks</li><li>Fixed file-edit diffs disappearing from the UI on `--resume` when the edited file was larger than 10KB</li><li>Fixed several `/resume` picker issues: `--resume <name>` opening uneditable, filter reload wiping search state, empty list swallowing arrow keys, cross-project staleness, and transient task-status text replacing conversation summaries</li><li>Fixed `/export` not honoring absolute paths and `~`, and silently rewriting user-supplied extensions to `.txt`</li><li>Fixed `/effort max` being denied for unknown or future model IDs</li><li>Fixed slash command picker breaking when a plugin's frontmatter `name` is a YAML boolean keyword</li><li>Fixed rate-limit upsell text being hidden after message remounts</li><li>Fixed MCP tools with `_meta["anthropic/maxResultSizeChars"]` not bypassing the token-based persist layer</li><li>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</li><li>Fixed `DISABLE_AUTOUPDATER` not fully suppressing the npm registry version check and symlink modification on npm-based installs</li><li>Fixed a memory leak where Remote Control permission handler entries were retained for the lifetime of the session</li><li>Fixed background subagents that fail with an error not reporting partial progress to the parent agent</li><li>Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors showing "JSON validation failed" instead of the real message</li><li>Fixed feedback survey rendering when dismissed</li><li>Fixed Bash `grep -f FILE` / `rg -f FILE` not prompting when reading a pattern file outside the working directory</li><li>Fixed stale subagent worktree cleanup removing worktrees that contain untracked files</li><li>Fixed `sandbox.network.allowMachLookup` not taking effect on macOS</li><li>Improved `/resume` filter hint labels and added project/worktree/branch names in the filter indicator</li><li>Improved footer indicators (Focus, notifications) to stay on the mode-indicator row instead of wrapping at narrow terminal widths</li><li>Improved `/agents` with a tabbed layout: a Running tab shows live subagents, and the Library tab adds Run agent and View running instance actions</li><li>Improved `/reload-plugins` to pick up plugin-provided skills without requiring a restart</li><li>Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers</li><li>Improved Vim mode: `j`/`k` in NORMAL mode now navigate history and select the footer pill at the input boundary</li><li>Improved hook errors in the transcript to include the first line of stderr for self-diagnosis without `--debug`</li><li>Improved OTEL tracing: interaction spans now correctly wrap full turns under concurrent SDK calls, and headless turns end spans per-turn</li><li>Improved transcript entries to carry final token usage instead of streaming placeholders</li><li>Updated the `/claude-api` skill to cover Managed Agents alongside Claude API</li><li>[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</li><li>Fixed `CLAUDE_CODE_MAX_CONTEXT_TOKENS` to honor `DISABLE_COMPACT` when it is set.</li><li>Dropped `/compact` hints when `DISABLE_COMPACT` is set.</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2198 Changelog v2.1.97 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2197 <ul><li>Added focus view toggle (`Ctrl+O`) in `NO_FLICKER` mode showing prompt, one-line tool summary with edit diffstats, and final response</li><li>Added `refreshInterval` status line setting to re-run the status line command every N seconds</li><li>Added `workspace.git_worktree` to the status line JSON input, set when the current directory is inside a linked git worktree</li><li>Added `● N running` indicator in `/agents` next to agent types with live subagent instances</li><li>Added syntax highlighting for Cedar policy files (`.cedar`, `.cedarpolicy`)</li><li>Fixed `--dangerously-skip-permissions` being silently downgraded to accept-edits mode after approving a write to a protected path</li><li>Fixed and hardened Bash tool permissions, tightening checks around env-var prefixes and network redirects, and reducing false prompts on common commands</li><li>Fixed permission rules with names matching JavaScript prototype properties (e.g. `toString`) causing `settings.json` to be silently ignored</li><li>Fixed managed-settings allow rules remaining active after an admin removed them until process restart</li><li>Fixed `permissions.additionalDirectories` changes in settings not applying mid-session</li><li>Fixed removing a directory from `settings.permissions.additionalDirectories` revoking access to the same directory passed via `--add-dir`</li><li>Fixed MCP HTTP/SSE connections accumulating ~50 MB/hr of unreleased buffers when servers reconnect</li><li>Fixed MCP OAuth `oauth.authServerMetadataUrl` not being honored on token refresh after restart, fixing ADFS and similar IdPs</li><li>Fixed 429 retries burning all attempts in ~13 seconds when the server returns a small `Retry-After` — exponential backoff now applies as a minimum</li><li>Fixed rate-limit upgrade options disappearing after context compaction</li><li>Fixed several `/resume` picker issues: `--resume <name>` opening uneditable, Ctrl+A reload wiping search, empty list swallowing navigation, task-status text replacing conversation summary, and cross-project staleness</li><li>Fixed file-edit diffs disappearing on `--resume` when the edited file was larger than 10KB</li><li>Fixed `--resume` cache misses and lost mid-turn input from attachment messages not being saved to the transcript</li><li>Fixed messages typed while Claude is working not being persisted to the transcript</li><li>Fixed prompt-type `Stop`/`SubagentStop` hooks failing on long sessions, and hook evaluator API errors displaying "JSON validation failed" instead of the actual message</li><li>Fixed subagents with worktree isolation or `cwd:` override leaking their working directory back to the parent session's Bash tool</li><li>Fixed compaction writing duplicate multi-MB subagent transcript files on prompt-too-long retries</li><li>Fixed `claude plugin update` reporting "already at the latest version" for git-based marketplace plugins when the remote had newer commits</li><li>Fixed slash command picker breaking when a plugin's frontmatter `name` is a YAML boolean keyword</li><li>Fixed copying wrapped URLs in `NO_FLICKER` mode inserting spaces at line breaks</li><li>Fixed scroll rendering artifacts in `NO_FLICKER` mode when running inside zellij</li><li>Fixed a crash in `NO_FLICKER` mode when hovering over MCP tool results</li><li>Fixed a `NO_FLICKER` mode memory leak where API retries left stale streaming state</li><li>Fixed slow mouse-wheel scrolling in `NO_FLICKER` mode on Windows Terminal</li><li>Fixed custom status line not displaying in `NO_FLICKER` mode on terminals shorter than 24 rows</li><li>Fixed Shift+Enter and Alt/Cmd+arrow shortcuts not working in Warp with `NO_FLICKER` mode</li><li>Fixed Korean/Japanese/Unicode text becoming garbled when copied in no-flicker mode on Windows</li><li>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)</li><li>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`)</li><li>Improved auto mode and bypass-permissions mode to auto-approve sandbox network access prompts</li><li>Improved sandbox: `sandbox.network.allowMachLookup` now takes effect on macOS</li><li>Improved image handling: pasted and attached images are now compressed to the same token budget as images read via the Read tool</li><li>Improved slash command and `@`-mention completion to trigger after CJK sentence punctuation, so Japanese/Chinese input no longer requires a space before `/` or `@`</li><li>Improved Bridge sessions to show the local git repo, branch, and working directory on the claude.ai session card</li><li>Improved footer layout: indicators (Focus, notifications) now stay on the mode-indicator row instead of wrapping below</li><li>Improved context-low warning to show as a transient footer notification instead of a persistent row</li><li>Improved markdown blockquotes to show a continuous left bar across wrapped lines</li><li>Improved session transcript size by skipping empty hook entries and capping stored pre-edit file copies</li><li>Improved transcript accuracy: per-block entries now carry the final token usage instead of the streaming placeholder</li><li>Improved Bash tool OTEL tracing: subprocesses now inherit a W3C `TRACEPARENT` env var when tracing is enabled</li><li>Updated `/claude-api` skill to cover Managed Agents alongside the Claude API</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2197 Changelog v2.1.96 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2196 <ul><li>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)</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2196 Changelog v2.1.94 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2194 <ul><li>Added support for Amazon Bedrock powered by Mantle, set `CLAUDE_CODE_USE_MANTLE=1`</li><li>Changed default effort level from medium to high for API-key, Bedrock/Vertex/Foundry, Team, and Enterprise users (control this with `/effort`)</li><li>Added compact `Slacked #channel` header with a clickable channel link for Slack MCP send-message tool calls</li><li>Added `keep-coding-instructions` frontmatter field support for plugin output styles</li><li>Added `hookSpecificOutput.sessionTitle` to `UserPromptSubmit` hooks for setting the session title</li><li>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</li><li>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</li><li>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</li><li>Fixed plugin skill hooks defined in YAML frontmatter being silently ignored</li><li>Fixed plugin hooks failing with "No such file or directory" when `CLAUDE_PLUGIN_ROOT` was not set</li><li>Fixed `${CLAUDE_PLUGIN_ROOT}` resolving to the marketplace source directory instead of the installed cache for local-marketplace plugins on startup</li><li>Fixed scrollback showing the same diff repeated and blank pages in long-running sessions</li><li>Fixed multiline user prompts in the transcript indenting wrapped lines under the `❯` caret instead of under the text</li><li>Fixed Shift+Space inserting the literal word "space" instead of a space character in search inputs</li><li>Fixed hyperlinks opening two browser tabs when clicked inside tmux running in an xterm.js-based terminal (VS Code, Hyper, Tabby)</li><li>Fixed an alt-screen rendering bug where content height changes mid-scroll could leave compounding ghost lines</li><li>Fixed `FORCE_HYPERLINK` environment variable being ignored when set via `settings.json` `env`</li><li>Fixed native terminal cursor not tracking the selected tab in dialogs, so screen readers and magnifiers can follow tab navigation</li><li>Fixed Bedrock invocation of Sonnet 3.5 v2 by using the `us.` inference profile ID</li><li>Fixed SDK/print mode not preserving the partial assistant response in conversation history when interrupted mid-stream</li><li>Improved `--resume` to resume sessions from other worktrees of the same repo directly instead of printing a `cd` command</li><li>Fixed CJK and other multibyte text being corrupted with U+FFFD in stream-json input/output when chunk boundaries split a UTF-8 sequence</li><li>[VSCode] Reduced cold-open subprocess work on starting a session</li><li>[VSCode] Fixed dropdown menus selecting the wrong item when the mouse was over the list while typing or using arrow keys</li><li>[VSCode] Added a warning banner when `settings.json` files fail to parse, so users know their permission rules are not being applied</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2194 Changelog v2.1.92 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2192 <ul><li>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)</li><li>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</li><li>Added per-model and cache-hit breakdown to `/cost` for subscription users</li><li>`/release-notes` is now an interactive version picker</li><li>Remote Control session names now use your hostname as the default prefix (e.g. `myhost-graceful-unicorn`), overridable with `--remote-control-session-name-prefix`</li><li>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</li><li>Fixed subagent spawning permanently failing with "Could not determine pane count" after tmux windows are killed or renumbered during a long-running session</li><li>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</li><li>Fixed tool input validation failures when streaming emits array/object fields as JSON-encoded strings</li><li>Fixed an API 400 error that could occur when extended thinking produced a whitespace-only text block alongside real content</li><li>Fixed accidental feedback survey submissions from auto-pilot keypresses and consecutive-prompt digit collisions</li><li>Fixed misleading "esc to interrupt" hint appearing alongside "esc to clear" when a text selection exists in fullscreen mode during processing</li><li>Fixed Homebrew install update prompts to use the cask's release channel (`claude-code` → stable, `claude-code@latest` → latest)</li><li>Fixed `ctrl+e` jumping to the end of the next line when already at end of line in multiline prompts</li><li>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)</li><li>Fixed idle-return "/clear to save X tokens" hint showing cumulative session tokens instead of current context size</li><li>Fixed plugin MCP servers stuck "connecting" on session start when they duplicate a claude.ai connector that is unauthenticated</li><li>Improved Write tool diff computation speed for large files (60% faster on files with tabs/`&`/`$`)</li><li>Removed `/tag` command</li><li>Removed `/vim` command (toggle vim mode via `/config` → Editor mode)</li><li>Linux sandbox now ships the `apply-seccomp` helper in both npm and native builds, restoring unix-socket blocking for sandboxed commands</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2192 Changelog v2.1.91 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2191 <ul><li>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</li><li>Added `disableSkillShellExecution` setting to disable inline shell execution in skills, custom slash commands, and plugin commands</li><li>Added support for multi-line prompts in `claude-cli://open?q=` deep links (encoded newlines `%0A` no longer rejected)</li><li>Plugins can now ship executables under `bin/` and invoke them as bare commands from the Bash tool</li><li>Fixed transcript chain breaks on `--resume` that could lose conversation history when async transcript writes fail silently</li><li>Fixed `cmd+delete` not deleting to start of line on iTerm2, kitty, WezTerm, Ghostty, and Windows Terminal</li><li>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</li><li>Fixed JSON schema validation for `permissions.defaultMode: "auto"` in settings.json</li><li>Fixed Windows version cleanup not protecting the active version's rollback copy</li><li>`/feedback` now explains why it's unavailable instead of disappearing from the slash menu</li><li>Improved `/claude-api` skill guidance for agent design patterns including tool surface decisions, context management, and caching strategy</li><li>Improved performance: faster `stripAnsi` on Bun by routing through `Bun.stripANSI`</li><li>Edit tool now uses shorter `old_string` anchors, reducing output tokens</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2191 Changelog v2.1.90 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2190 <ul><li>Added `/powerup` — interactive lessons teaching Claude Code features with animated demos</li><li>Added `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` env var to keep the existing marketplace cache when `git pull` fails, useful in offline environments</li><li>Added `.husky` to protected directories (acceptEdits mode)</li><li>Fixed an infinite loop where the rate-limit options dialog would repeatedly auto-open after hitting your usage limit, eventually crashing the session</li><li>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)</li><li>Fixed `Edit`/`Write` failing with "File content has changed" when a PostToolUse format-on-save hook rewrites the file between consecutive edits</li><li>Fixed `PreToolUse` hooks that emit JSON to stdout and exit with code 2 not correctly blocking the tool call</li><li>Fixed collapsed search/read summary badge appearing multiple times in fullscreen scrollback when a CLAUDE.md file auto-loads during a tool call</li><li>Fixed auto mode not respecting explicit user boundaries ("don't push", "wait for X before Y") even when the action would otherwise be allowed</li><li>Fixed click-to-expand hover text being nearly invisible on light terminal themes</li><li>Fixed UI crash when malformed tool input reached the permission dialog</li><li>Fixed headers disappearing when scrolling `/model`, `/config`, and other selection screens</li><li>Hardened PowerShell tool permission checks: fixed trailing `&` background job bypass, `-ErrorAction Break` debugger hang, archive-extraction TOCTOU, and parse-fail fallback deny-rule degradation</li><li>Improved performance: eliminated per-turn JSON.stringify of MCP tool schemas on cache-key lookup</li><li>Improved performance: SSE transport now handles large streamed frames in linear time (was quadratic)</li><li>Improved performance: SDK sessions with long conversations no longer slow down quadratically on transcript writes</li><li>Improved `/resume` all-projects view to load project sessions in parallel, improving load times for users with many projects</li><li>Changed `--resume` picker to no longer show sessions created by `claude -p` or SDK invocations</li><li>Removed `Get-DnsClientCache` and `ipconfig /displaydns` from auto-allow (DNS cache privacy)</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2190 Changelog v2.1.89 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2189 <ul><li>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</li><li>Added `CLAUDE_CODE_NO_FLICKER=1` environment variable to opt into flicker-free alt-screen rendering with virtualized scrollback</li><li>Added `PermissionDenied` hook that fires after auto mode classifier denials — return `{retry: true}` to tell the model it can retry</li><li>Added named subagents to `@` mention typeahead suggestions</li><li>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</li><li>Auto mode: denied commands now show a notification and appear in `/permissions` → Recent tab where you can retry with `r`</li><li>Fixed `Edit(//path/**)` and `Read(//path/**)` allow rules to check the resolved symlink target, not just the requested path</li><li>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"</li><li>Fixed Edit/Write tools doubling CRLF on Windows and stripping Markdown hard line breaks (two trailing spaces)</li><li>Fixed `StructuredOutput` schema cache bug causing ~50% failure rate when using multiple schemas</li><li>Fixed memory leak where large JSON inputs were retained as LRU cache keys in long-running sessions</li><li>Fixed a crash when removing a message from very large session files (over 50MB)</li><li>Fixed LSP server zombie state after crash — server now restarts on next request instead of failing until session restart</li><li>Fixed prompt history entries containing CJK or emoji being silently dropped when they fall on a 4KB boundary in `~/.claude/history.jsonl`</li><li>Fixed `/stats` undercounting tokens by excluding subagent usage, and losing historical data beyond 30 days when the stats cache format changes</li><li>Fixed `-p --resume` hangs when the deferred tool input exceeds 64KB or no deferred marker exists, and `-p --continue` not resuming deferred tools</li><li>Fixed `claude-cli://` deep links not opening on macOS</li><li>Fixed MCP tool errors truncating to only the first content block when the server returns multi-element error content</li><li>Fixed skill reminders and other system context being dropped when sending messages with images via the SDK</li><li>Fixed PreToolUse/PostToolUse hooks to receive `file_path` as an absolute path for Write/Edit/Read tools, matching the documented behavior</li><li>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</li><li>Fixed prompt cache misses in long sessions caused by tool schema bytes changing mid-session</li><li>Fixed nested CLAUDE.md files being re-injected dozens of times in long sessions that read many files</li><li>Fixed `--resume` crash when transcript contains a tool result from an older CLI version or interrupted write</li><li>Fixed misleading "Rate limit reached" message when the API returned an entitlement error — now shows the actual error with actionable hints</li><li>Fixed hooks `if` condition filtering not matching compound commands (`ls && git push`) or commands with env-var prefixes (`FOO=bar git push`)</li><li>Fixed collapsed search/read group badges duplicating in terminal scrollback during heavy parallel tool use</li><li>Fixed notification `invalidates` not clearing the currently-displayed notification immediately</li><li>Fixed prompt briefly disappearing after submit when background messages arrived during processing</li><li>Fixed Devanagari and other combining-mark text being truncated in assistant output</li><li>Fixed rendering artifacts on main-screen terminals after layout shifts</li><li>Fixed voice mode failing to request microphone permission on macOS Apple Silicon</li><li>Fixed Shift+Enter submitting instead of inserting a newline on Windows Terminal Preview 1.25</li><li>Fixed periodic UI jitter during streaming in iTerm2 when running inside tmux</li><li>Fixed PowerShell tool incorrectly reporting failures when commands like `git push` wrote progress to stderr on Windows PowerShell 5.1</li><li>Fixed a potential out-of-memory crash when the Edit tool was used on very large files (>1 GiB)</li><li>Improved collapsed tool summary to show "Listed N directories" for `ls`/`tree`/`du` instead of "Read N files"</li><li>Improved Bash tool to warn when a formatter/linter command modifies files you have previously read, preventing stale-edit errors</li><li>Improved `@`-mention typeahead to rank source files above MCP resources with similar names</li><li>Improved PowerShell tool prompt with version-appropriate syntax guidance (5.1 vs 7+)</li><li>Changed `Edit` to work on files viewed via `Bash` with `sed -n` or `cat`, without requiring a separate `Read` call first</li><li>Changed hook output over 50K characters to be saved to disk with a file path + preview instead of being injected directly into context</li><li>Changed `cleanupPeriodDays: 0` in settings.json to be rejected with a validation error — it previously silently disabled transcript persistence</li><li>Changed thinking summaries to no longer be generated by default in interactive sessions — set `showThinkingSummaries: true` in settings.json to restore</li><li>Documented `TaskCreated` hook event and its blocking behavior</li><li>Preserved task notifications when backgrounding a running command with Ctrl+B</li><li>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)</li><li>`/env` now applies to PowerShell tool commands (previously only affected Bash)</li><li>`/usage` now hides redundant "Current week (Sonnet only)" bar for Pro and Enterprise plans</li><li>Image paste no longer inserts a trailing space</li><li>Pasting `!command` into an empty prompt now enters bash mode, matching typed `!` behavior</li><li>`/buddy` is here for April 1st — hatch a small creature that watches you code</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2189 Changelog v2.1.87 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2187 <ul><li>Fixed messages in Cowork Dispatch not getting delivered</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2187 Changelog v2.1.86 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2186 <ul><li>Added `X-Claude-Code-Session-Id` header to API requests so proxies can aggregate requests by session without parsing the body</li><li>Added `.jj` and `.sl` to VCS directory exclusion lists so Grep and file autocomplete don't descend into Jujutsu or Sapling metadata</li><li>Fixed `--resume` failing with "tool_use ids were found without tool_result blocks" on sessions created before v2.1.85</li><li>Fixed Write/Edit/Read failing on files outside the project root (e.g., `~/.claude/CLAUDE.md`) when conditional skills or rules are configured</li><li>Fixed unnecessary config disk writes on every skill invocation that could cause performance issues and config corruption on Windows</li><li>Fixed potential out-of-memory crash when using `/feedback` on very long sessions with large transcript files</li><li>Fixed `--bare` mode dropping MCP tools in interactive sessions and silently discarding messages enqueued mid-turn</li><li>Fixed the `c` shortcut copying only ~20 characters of the OAuth login URL instead of the full URL</li><li>Fixed masked input (e.g., OAuth code paste) leaking the start of the token when wrapping across multiple lines on narrow terminals</li><li>Fixed official marketplace plugin scripts failing with "Permission denied" on macOS/Linux since v2.1.83</li><li>Fixed statusline showing another session's model when running multiple Claude Code instances and using `/model` in one of them</li><li>Fixed scroll not following new messages after wheel scroll or click-to-select at the bottom of a long conversation</li><li>Fixed `/plugin` uninstall dialog: pressing `n` now correctly uninstalls the plugin while preserving its data directory</li><li>Fixed a regression where pressing Enter after clicking could leave the transcript blank until the response arrived</li><li>Fixed `ultrathink` hint lingering after deleting the keyword</li><li>Fixed memory growth in long sessions from markdown/highlight render caches retaining full content strings</li><li>Reduced startup event-loop stalls when many claude.ai MCP connectors are configured (macOS keychain cache extended from 5s to 30s)</li><li>Reduced token overhead when mentioning files with `@` — raw string content no longer JSON-escaped</li><li>Improved prompt cache hit rate for Bedrock, Vertex, and Foundry users by removing dynamic content from tool descriptions</li><li>Memory filenames in the "Saved N memories" notice now highlight on hover and open on click</li><li>Skill descriptions in the `/skills` listing are now capped at 250 characters to reduce context usage</li><li>Changed `/skills` menu to sort alphabetically for easier scanning</li><li>Auto mode now shows "unavailable for your plan" when disabled by plan restrictions (was "temporarily unavailable")</li><li>[VSCode] Fixed extension incorrectly showing "Not responding" during long-running operations</li><li>[VSCode] Fixed extension defaulting Max plan users to Sonnet after the OAuth token refreshes (8 hours after login)</li><li>Read tool now uses compact line-number format and deduplicates unchanged re-reads, reducing token usage</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2186 Changelog v2.1.85 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2185 <ul><li>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</li><li>Added conditional `if` field for hooks using permission rule syntax (e.g., `Bash(git *)`) to filter when they run, reducing process spawning overhead</li><li>Added timestamp markers in transcripts when scheduled tasks (`/loop`, `CronCreate`) fire</li><li>Added trailing space after `[Image #N]` placeholder when pasting images</li><li>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</li><li>MCP OAuth now follows RFC 9728 Protected Resource Metadata discovery to find the authorization server</li><li>Plugins blocked by organization policy (`managed-settings.json`) can no longer be installed or enabled, and are hidden from marketplace views</li><li>PreToolUse hooks can now satisfy `AskUserQuestion` by returning `updatedInput` alongside `permissionDecision: "allow"`, enabling headless integrations that collect answers via their own UI</li><li>`tool_parameters` in OpenTelemetry tool_result events are now gated behind `OTEL_LOG_TOOL_DETAILS=1`</li><li>Fixed `/compact` failing with "context exceeded" when the conversation has grown too large for the compact request itself to fit</li><li>Fixed `/plugin enable` and `/plugin disable` failing when a plugin's install location differs from where it's declared in settings</li><li>Fixed `--worktree` exiting with an error in non-git repositories before the `WorktreeCreate` hook could run</li><li>Fixed `deniedMcpServers` setting not blocking claude.ai MCP servers</li><li>Fixed `switch_display` in the computer-use tool returning "not available in this session" on multi-monitor setups</li><li>Fixed crash when `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER`, or `OTEL_TRACES_EXPORTER` is set to `none`</li><li>Fixed diff syntax highlighting not working in non-native builds</li><li>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</li><li>Fixed memory leak in remote sessions when a streaming response is interrupted</li><li>Fixed persistent ECONNRESET errors during edge connection churn by using a fresh TCP connection on retry</li><li>Fixed prompts getting stuck in the queue after running certain slash commands, with up-arrow unable to retrieve them</li><li>Fixed Python Agent SDK: `type:'sdk'` MCP servers passed via `--mcp-config` are no longer dropped during startup</li><li>Fixed raw key sequences appearing in the prompt when running over SSH or in the VS Code integrated terminal</li><li>Fixed Remote Control session status staying stuck on "Requires Action" after a permission is resolved</li><li>Fixed shift+enter and meta+enter being intercepted by typeahead suggestions instead of inserting newlines</li><li>Fixed stale content bleeding through when scrolling up during streaming</li><li>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</li><li>Improved @-mention file autocomplete performance on large repositories</li><li>Improved PowerShell dangerous command detection</li><li>Improved scroll performance with large transcripts by replacing WASM yoga-layout with a pure TypeScript implementation</li><li>Reduced UI stutter when compaction triggers on large sessions</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2185 Changelog v2.1.84 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2184 <ul><li>Added PowerShell tool for Windows as an opt-in preview. Learn more at https://code.claude.com/docs/en/tools-reference#powershell-tool</li><li>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</li><li>Added `CLAUDE_STREAM_IDLE_TIMEOUT_MS` env var to configure the streaming idle watchdog threshold (default 90s)</li><li>Added `TaskCreated` hook that fires when a task is created via `TaskCreate`</li><li>Added `WorktreeCreate` hook support for `type: "http"` — return the created worktree path via `hookSpecificOutput.worktreePath` in the response JSON</li><li>Added `allowedChannelPlugins` managed setting for team/enterprise admins to define a channel plugin allowlist</li><li>Added `x-client-request-id` header to API requests for debugging timeouts</li><li>Added idle-return prompt that nudges users returning after 75+ minutes to `/clear`, reducing unnecessary token re-caching on stale sessions</li><li>Deep links (`claude-cli://`) now open in your preferred terminal instead of whichever terminal happens to be first in the detection list</li><li>Rules and skills `paths:` frontmatter now accepts a YAML list of globs</li><li>MCP tool descriptions and server instructions are now capped at 2KB to prevent OpenAPI-generated servers from bloating context</li><li>MCP servers configured both locally and via claude.ai connectors are now deduplicated — the local config wins</li><li>Background bash tasks that appear stuck on an interactive prompt now surface a notification after ~45 seconds</li><li>Token counts ≥1M now display as "1.5m" instead of "1512.6k"</li><li>Global system-prompt caching now works when `ToolSearch` is enabled, including for users with MCP tools configured</li><li>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</li><li>Fixed up/down arrow keys being unresponsive when a footer item is focused</li><li>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</li><li>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</li><li>Fixed mouse events inserting literal "mouse" text into transcript search input</li><li>Fixed workflow subagents failing with API 400 when the outer session uses `--json-schema` and the subagent also specifies a schema</li><li>Fixed missing background color behind certain emoji in user message bubbles on some terminals</li><li>Fixed the "allow Claude to edit its own settings for this session" permission option not sticking for users with `Edit(.claude)` allow rules</li><li>Fixed a hang when generating attachment snippets for large edited files</li><li>Fixed MCP tool/resource cache leak on server reconnect</li><li>Fixed a startup performance issue where partial clone repositories (Scalar/GVFS) triggered mass blob downloads</li><li>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</li><li>Fixed spurious "Not logged in" errors on macOS caused by transient keychain read failures</li><li>Fixed cold-start race where core tools could be deferred without their bypass active, causing Edit/Write to fail with InputValidationError on typed parameters</li><li>Improved detection for dangerous removals of Windows drive roots (`C:\`, `C:\Windows`, etc.)</li><li>Improved interactive startup by ~30ms by running `setup()` in parallel with slash command and agent loading</li><li>Improved startup for `claude "prompt"` with MCP servers — the REPL now renders immediately instead of blocking until all servers connect</li><li>Improved Remote Control to show a specific reason when blocked instead of a generic "not yet enabled" message</li><li>Improved p90 prompt cache rate</li><li>Reduced scroll-to-top resets in long sessions by making the message window immune to compaction and grouping changes</li><li>Reduced terminal flickering when animated tool progress scrolls above the viewport</li><li>Changed issue/PR references to only become clickable links when written as `owner/repo#123` — bare `#123` is no longer auto-linked</li><li>Slash commands unavailable for the current auth setup (`/voice`, `/mobile`, `/chrome`, `/upgrade`, etc.) are now hidden instead of shown</li><li>[VSCode] Added rate limit warning banner with usage percentage and reset time</li><li>Stats screenshot (Ctrl+S in /stats) now works in all builds and is 16× faster</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2184 Changelog v2.1.83 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2183 <ul><li>Added `managed-settings.d/` drop-in directory alongside `managed-settings.json`, letting separate teams deploy independent policy fragments that merge alphabetically</li><li>Added `CwdChanged` and `FileChanged` hook events for reactive environment management (e.g., direnv)</li><li>Added `sandbox.failIfUnavailable` setting to exit with an error when sandbox is enabled but cannot start, instead of running unsandboxed</li><li>Added `disableDeepLinkRegistration` setting to prevent `claude-cli://` protocol handler registration</li><li>Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers)</li><li>Added transcript search — press `/` in transcript mode (`Ctrl+O`) to search, `n`/`N` to step through matches</li><li>Added `Ctrl+X Ctrl+E` as an alias for opening the external editor (readline-native binding; `Ctrl+G` still works)</li><li>Pasted images now insert an `[Image #N]` chip at the cursor so you can reference them positionally in your prompt</li><li>Agents can now declare `initialPrompt` in frontmatter to auto-submit a first turn</li><li>`chat:killAgents` and `chat:fastMode` are now rebindable via `~/.claude/keybindings.json`</li><li>Fixed mouse tracking escape sequences leaking to shell prompt after exit</li><li>Fixed Claude Code hanging on exit on macOS</li><li>Fixed screen flashing blank after being idle for a few seconds</li><li>Fixed a hang when diffing very large files with few common lines — diffs now time out after 5 seconds and fall back gracefully</li><li>Fixed a 1–8 second UI freeze on startup when voice input was enabled, caused by eagerly loading the native audio module</li><li>Fixed a startup regression where Claude Code would wait ~3s for claude.ai MCP config fetch before proceeding</li><li>Fixed `--mcp-config` CLI flag bypassing `allowedMcpServers`/`deniedMcpServers` managed policy enforcement</li><li>Fixed claude.ai MCP connectors (Slack, Gmail, etc.) not being available in single-turn `--print` mode</li><li>Fixed `caffeinate` process not properly terminating when Claude Code exits, preventing Mac from sleeping</li><li>Fixed bash mode not activating when tab-accepting `!`-prefixed command suggestions</li><li>Fixed stale slash command selection showing wrong highlighted command after navigating suggestions</li><li>Fixed `/config` menu showing both the search cursor and list selection at the same time</li><li>Fixed background subagents becoming invisible after context compaction, which could cause duplicate agents to be spawned</li><li>Fixed background agent tasks staying stuck in "running" state when git or API calls hang during cleanup</li><li>Fixed `--channels` showing "Channels are not currently available" on first launch after upgrade</li><li>Fixed uninstalled plugin hooks continuing to fire until the next session</li><li>Fixed queued commands flickering during streaming responses</li><li>Fixed slash commands being sent to the model as text when submitted while a message is processing</li><li>Fixed scrollback jumping when collapsed read/search groups finish after scrolling offscreen</li><li>Fixed scrollback jumping to top when the model starts or stops thinking</li><li>Fixed SDK session history loss on resume caused by hook progress/attachment messages forking the parentUuid chain</li><li>Fixed copy-on-select not firing when you release the mouse outside the terminal window</li><li>Fixed ghost characters appearing in height-constrained lists when items overflow</li><li>Fixed `Ctrl+B` interfering with readline backward-char at an idle prompt — it now only fires when a foreground task can be backgrounded</li><li>Fixed tool result files never being cleaned up, ignoring the `cleanupPeriodDays` setting</li><li>Fixed space key being swallowed for up to 3 seconds after releasing voice hold-to-talk</li><li>Fixed ALSA library errors corrupting the terminal UI when using voice mode on Linux without audio hardware (Docker, headless, WSL1)</li><li>Fixed voice mode SoX detection on Termux/Android where spawning `which` is kernel-restricted</li><li>Fixed Remote Control sessions showing as Idle in the web session list while actively running</li><li>Fixed footer navigation selecting an invisible Remote Control pill in config-driven mode</li><li>Fixed memory leak in remote sessions where tool use IDs accumulate indefinitely</li><li>Improved Bedrock SDK cold-start latency by overlapping profile fetch with other boot work</li><li>Improved `--resume` memory usage and startup latency on large sessions</li><li>Improved plugin startup — commands, skills, and agents now load from disk cache without re-fetching</li><li>Improved Remote Control session titles: AI-generated titles now appear within seconds of the first message</li><li>Improved `WebFetch` to identify as `Claude-User` so site operators can recognize and allowlist Claude Code traffic via `robots.txt`</li><li>Reduced `WebFetch` peak memory usage for large pages</li><li>Reduced scrollback resets in long sessions from once per turn to once per ~50 messages</li><li>Faster `claude -p` startup with unauthenticated HTTP/SSE MCP servers (~600ms saved)</li><li>Bash ghost-text suggestions now include just-submitted commands immediately</li><li>Increased non-streaming fallback token cap (21k → 64k) and timeout (120s → 300s local) so fallback requests are less likely to be truncated</li><li>Interrupting a prompt before any response now automatically restores your input so you can edit and resubmit</li><li>`/status` now works while Claude is responding, instead of being queued until the turn finishes</li><li>Plugin MCP servers that duplicate an org-managed connector are now suppressed instead of running a second connection</li><li>Linux: respect `XDG_DATA_HOME` when registering the `claude-cli://` protocol handler</li><li>Changed "stop all background agents" keybinding from `Ctrl+F` to `Ctrl+X Ctrl+K` to stop shadowing readline forward-char</li><li>Deprecated `TaskOutput` tool in favor of using `Read` on the background task's output file path</li><li>Added `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` env var to disable the non-streaming fallback when streaming fails</li><li>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)</li><li>Claude can now reference the on-disk path of clipboard-pasted images for file operations</li><li>`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.</li><li>`--bare -p` (SDK pattern) is ~14% faster to the API request</li><li>Memory: `MEMORY.md` index now truncates at 25KB as well as 200 lines</li><li>Disabled `AskUserQuestion` and plan-mode tools when `--channels` is active</li><li>Fixed API 400 error when a pasted image was queued during a failing tool call</li><li>Fixed MCP tool calls hanging indefinitely when an SSE connection drops mid-call and exhausts its reconnection attempts</li><li>Fixed Remote Control session titles showing raw XML when a background agent completed before the first user message</li><li>Fixed remote sessions forgetting conversation history after a container restart due to progress-message gaps in the resumed transcript chain</li><li>Fixed remote sessions requiring re-login on transient auth errors instead of retrying automatically</li><li>Fixed `rg ... | wc -l` and similar piped commands hanging and returning `0` in sandbox mode on Linux</li><li>Fixed voice input hold-to-talk not activating when a CJK IME inserts a full-width space</li><li>Fixed `--worktree` hanging silently when the worktree name contained a forward slash</li><li>[VSCode] Spinner now turns red with "Not responding" when the backend hasn't responded for 60 seconds</li><li>[VSCode] Fixed session history not loading correctly when reopening a session via URL or after restart</li><li>[VSCode] Added Esc-twice (or `/rewind`) to open a keyboard-navigable rewind picker</li><li>[VSCode] Fixed "Fork conversation from here" and rewind actions failing silently after the session cache goes stale</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2183 Changelog v2.1.81 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2181 <ul><li>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</li><li>Added `--channels` permission relay — channel servers that declare the permission capability can forward tool approval prompts to your phone</li><li>Fixed multiple concurrent Claude Code sessions requiring repeated re-authentication when one session refreshes its OAuth token</li><li>Fixed voice mode silently swallowing retry failures and showing a misleading "check your network" message instead of the actual error</li><li>Fixed voice mode audio not recovering when the server silently drops the WebSocket connection</li><li>Fixed `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` not suppressing the structured-outputs beta header, causing 400 errors on proxy gateways forwarding to Vertex/Bedrock</li><li>Fixed `--channels` bypass for Team/Enterprise orgs with no other managed settings configured</li><li>Fixed a crash on Node.js 18</li><li>Fixed unnecessary permission prompts for Bash commands containing dashes in strings</li><li>Fixed plugin hooks blocking prompt submission when the plugin directory is deleted mid-session</li><li>Fixed a race condition where background agent task output could hang indefinitely when the task completed between polling intervals</li><li>Resuming a session that was in a worktree now switches back to that worktree</li><li>Fixed `/btw` not including pasted text when used during an active response</li><li>Fixed a race where fast Cmd+Tab followed by paste could beat the clipboard copy under tmux</li><li>Fixed terminal tab title not updating with an auto-generated session description</li><li>Fixed invisible hook attachments inflating the message count in transcript mode</li><li>Fixed Remote Control sessions showing a generic title instead of deriving from the first prompt</li><li>Fixed `/rename` not syncing the title for Remote Control sessions</li><li>Fixed Remote Control `/exit` not reliably archiving the session</li><li>Improved MCP read/search tool calls to collapse into a single "Queried {server}" line (expand with Ctrl+O)</li><li>Improved `!` bash mode discoverability — Claude now suggests it when you need to run an interactive command</li><li>Improved plugin freshness — ref-tracked plugins now re-clone on every load to pick up upstream changes</li><li>Improved Remote Control session titles to refresh after your third message</li><li>Updated MCP OAuth to support Client ID Metadata Document (CIMD / SEP-991) for servers without Dynamic Client Registration</li><li>Changed plan mode to hide the "clear context" option by default (restore with `"showClearContextOnPlanAccept": true`)</li><li>Disabled line-by-line response streaming on Windows (including WSL in Windows Terminal) due to rendering issues</li><li>[VSCode] Fixed Windows PATH inheritance for Bash tool when using Git Bash (regression in v2.1.78)</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2181 Changelog v2.1.80 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2180 <ul><li>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`)</li><li>Added `source: 'settings'` plugin marketplace source — declare plugin entries inline in settings.json</li><li>Added CLI tool usage detection to plugin tips, in addition to file pattern matching</li><li>Added `effort` frontmatter support for skills and slash commands to override the model effort level when invoked</li><li>Added `--channels` (research preview) — allow MCP servers to push messages into your session</li><li>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</li><li>Fixed voice mode WebSocket failures caused by Cloudflare bot detection on non-browser TLS fingerprints</li><li>Fixed 400 errors when using fine-grained tool streaming through API proxies, Bedrock, or Vertex</li><li>Fixed `/remote-control` appearing for gateway and third-party provider deployments where it cannot function</li><li>Fixed `/sandbox` tab switching not responding to Tab or arrow keys</li><li>Improved responsiveness of `@` file autocomplete in large git repositories</li><li>Improved `/effort` to show what auto currently resolves to, matching the status bar indicator</li><li>Improved `/permissions` — Tab and arrow keys now switch tabs from within a list</li><li>Improved background tasks panel — left arrow now closes from the list view</li><li>Simplified plugin install tips to use a single `/plugin install` command instead of a two-step flow</li><li>Reduced memory usage on startup in large repositories (~80 MB saved on 250k-file repos)</li><li>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</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2180 Changelog v2.1.79 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2179 <ul><li>Added `--console` flag to `claude auth login` for Anthropic Console (API billing) authentication</li><li>Added "Show turn duration" toggle to the `/config` menu</li><li>Fixed `claude -p` hanging when spawned as a subprocess without explicit stdin (e.g. Python `subprocess.run`)</li><li>Fixed Ctrl+C not working in `-p` (print) mode</li><li>Fixed `/btw` returning the main agent's output instead of answering the side question when triggered during streaming</li><li>Fixed voice mode not activating correctly on startup when `voiceEnabled: true` is set</li><li>Fixed left/right arrow tab navigation in `/permissions`</li><li>Fixed `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` not preventing terminal title from being set on startup</li><li>Fixed custom status line showing nothing when workspace trust is blocking it</li><li>Fixed enterprise users being unable to retry on rate limit (429) errors</li><li>Fixed `SessionEnd` hooks not firing when using interactive `/resume` to switch sessions</li><li>Improved startup memory usage by ~18MB across all scenarios</li><li>Improved non-streaming API fallback with a 2-minute per-attempt timeout, preventing sessions from hanging indefinitely</li><li>`CLAUDE_CODE_PLUGIN_SEED_DIR` now supports multiple seed directories separated by the platform path delimiter (`:` on Unix, `;` on Windows)</li><li>[VSCode] Added `/remote-control` — bridge your session to claude.ai/code to continue from a browser or phone</li><li>[VSCode] Session tabs now get AI-generated titles based on your first message</li><li>[VSCode] Fixed the thinking pill showing "Thinking" instead of "Thought for Ns" after a response completes</li><li>[VSCode] Fixed missing session diff button when opening sessions from the left sidebar</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2179 Changelog v2.1.78 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2178 <ul><li>Added `StopFailure` hook event that fires when the turn ends due to an API error (rate limit, auth failure, etc.)</li><li>Added `${CLAUDE_PLUGIN_DATA}` variable for plugin persistent state that survives plugin updates; `/plugin uninstall` prompts before deleting it</li><li>Added `effort`, `maxTurns`, and `disallowedTools` frontmatter support for plugin-shipped agents</li><li>Terminal notifications (iTerm2/Kitty/Ghostty popups, progress bar) now reach the outer terminal when running inside tmux with `set -g allow-passthrough on`</li><li>Response text now streams line-by-line as it's generated</li><li>Fixed `git log HEAD` failing with "ambiguous argument" inside sandboxed Bash on Linux, and stub files polluting `git status` in the working directory</li><li>Fixed `cc log` and `--resume` silently truncating conversation history on large sessions (>5 MB) that used subagents</li><li>Fixed infinite loop when API errors triggered stop hooks that re-fed blocking errors to the model</li><li>Fixed `deny: ["mcp__servername"]` permission rules not removing MCP server tools before sending to the model, allowing it to see and attempt blocked tools</li><li>Fixed `sandbox.filesystem.allowWrite` not working with absolute paths (previously required `//` prefix)</li><li>Fixed `/sandbox` Dependencies tab showing Linux prerequisites on macOS instead of macOS-specific info</li><li>**Security:** Fixed silent sandbox disable when `sandbox.enabled: true` is set but dependencies are missing — now shows a visible startup warning</li><li>Fixed `.git`, `.claude`, and other protected directories being writable without a prompt in `bypassPermissions` mode</li><li>Fixed ctrl+u in normal mode scrolling instead of readline kill-line (ctrl+u/ctrl+d half-page scroll moved to transcript mode only)</li><li>Fixed voice mode modifier-combo push-to-talk keybindings (e.g. ctrl+k) requiring a hold instead of activating immediately</li><li>Fixed voice mode not working on WSL2 with WSLg (Windows 11); WSL1/Win10 users now get a clear error</li><li>Fixed `--worktree` flag not loading skills and hooks from the worktree directory</li><li>Fixed `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` and `includeGitInstructions` setting not suppressing the git status section in the system prompt</li><li>Fixed Bash tool not finding Homebrew and other PATH-dependent binaries when VS Code is launched from Dock/Spotlight</li><li>Fixed washed-out Claude orange color in VS Code/Cursor/code-server terminals that don't advertise truecolor support</li><li>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</li><li>Fixed `ANTHROPIC_BETAS` environment variable being silently ignored when using Haiku models</li><li>Fixed queued prompts being concatenated without a newline separator</li><li>Improved memory usage and startup time when resuming large sessions</li><li>[VSCode] Fixed a brief flash of the login screen when opening the sidebar while already authenticated</li><li>[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</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2178 Changelog v2.1.77 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2177 <ul><li>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</li><li>Added `allowRead` sandbox filesystem setting to re-allow read access within `denyRead` regions</li><li>`/copy` now accepts an optional index: `/copy N` copies the Nth-latest assistant response</li><li>Fixed "Always Allow" on compound bash commands (e.g. `cd src && npm test`) saving a single rule for the full string instead of per-subcommand, leading to dead rules and repeated permission prompts</li><li>Fixed auto-updater starting overlapping binary downloads when the slash-command overlay repeatedly opened and closed, accumulating tens of gigabytes of memory</li><li>Fixed `--resume` silently truncating recent conversation history due to a race between memory-extraction writes and the main transcript</li><li>Fixed PreToolUse hooks returning `"allow"` bypassing `deny` permission rules, including enterprise managed settings</li><li>Fixed Write tool silently converting line endings when overwriting CRLF files or creating files in CRLF directories</li><li>Fixed memory growth in long-running sessions from progress messages surviving compaction</li><li>Fixed cost and token usage not being tracked when the API falls back to non-streaming mode</li><li>Fixed `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` not stripping beta tool-schema fields, causing proxy gateways to reject requests</li><li>Fixed Bash tool reporting errors for successful commands when the system temp directory path contains spaces</li><li>Fixed paste being lost when typing immediately after pasting</li><li>Fixed Ctrl+D in `/feedback` text input deleting forward instead of the second press exiting the session</li><li>Fixed API error when dragging a 0-byte image file into the prompt</li><li>Fixed Claude Desktop sessions incorrectly using the terminal CLI's configured API key instead of OAuth</li><li>Fixed `git-subdir` plugins at different subdirectories of the same monorepo commit colliding in the plugin cache</li><li>Fixed ordered list numbers not rendering in terminal UI</li><li>Fixed a race condition where stale-worktree cleanup could delete an agent worktree just resumed from a previous crash</li><li>Fixed input deadlock when opening `/mcp` or similar dialogs while the agent is running</li><li>Fixed Backspace and Delete keys not working in vim NORMAL mode</li><li>Fixed status line not updating when vim mode is toggled on or off</li><li>Fixed hyperlinks opening twice on Cmd+click in VS Code, Cursor, and other xterm.js-based terminals</li><li>Fixed background colors rendering as terminal-default inside tmux with default configuration</li><li>Fixed iTerm2 session crash when selecting text inside tmux over SSH</li><li>Fixed clipboard copy silently failing in tmux sessions; copy toast now indicates whether to paste with `⌘V` or tmux `prefix+]`</li><li>Fixed `←`/`→` accidentally switching tabs in settings, permissions, and sandbox dialogs while navigating lists</li><li>Fixed IDE integration not auto-connecting when Claude Code is launched inside tmux or screen</li><li>Fixed CJK characters visually bleeding into adjacent UI elements when clipped at the right edge</li><li>Fixed teammate panes not closing when the leader exits</li><li>Fixed iTerm2 auto mode not detecting iTerm2 for native split-pane teammates</li><li>Faster startup on macOS (~60ms) by reading keychain credentials in parallel with module loading</li><li>Faster `--resume` on fork-heavy and very large sessions — up to 45% faster loading and ~100-150MB less peak memory</li><li>Improved Esc to abort in-flight non-streaming API requests</li><li>Improved `claude plugin validate` to check skill, agent, and command frontmatter plus `hooks/hooks.json`, catching YAML parse errors and schema violations</li><li>Background bash tasks are now killed if output exceeds 5GB, preventing runaway processes from filling disk</li><li>Sessions are now auto-named from plan content when you accept a plan</li><li>Improved headless mode plugin installation to compose correctly with `CLAUDE_CODE_PLUGIN_SEED_DIR`</li><li>Show a notice when `apiKeyHelper` takes longer than 10s, preventing it from blocking the main loop</li><li>The Agent tool no longer accepts a `resume` parameter — use `SendMessage({to: agentId})` to continue a previously spawned agent</li><li>`SendMessage` now auto-resumes stopped agents in the background instead of returning an error</li><li>Renamed `/fork` to `/branch` (`/fork` still works as an alias)</li><li>[VSCode] Improved plan preview tab titles to use the plan's heading instead of "Claude's Plan"</li><li>[VSCode] When option+click doesn't trigger native selection on macOS, the footer now points to the `macOptionClickForcesSelection` setting</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2177 Changelog v2.1.76 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2176 <ul><li>Added MCP elicitation support — MCP servers can now request structured input mid-task via an interactive dialog (form fields or browser URL)</li><li>Added new `Elicitation` and `ElicitationResult` hooks to intercept and override responses before they're sent back</li><li>Added `-n` / `--name <name>` CLI flag to set a display name for the session at startup</li><li>Added `worktree.sparsePaths` setting for `claude --worktree` in large monorepos to check out only the directories you need via git sparse-checkout</li><li>Added `PostCompact` hook that fires after compaction completes</li><li>Added `/effort` slash command to set model effort level</li><li>Added session quality survey — enterprise admins can configure the sample rate via the `feedbackSurveyRate` setting</li><li>Fixed deferred tools (loaded via `ToolSearch`) losing their input schemas after conversation compaction, causing array and number parameters to be rejected with type errors</li><li>Fixed slash commands showing "Unknown skill"</li><li>Fixed plan mode asking for re-approval after the plan was already accepted</li><li>Fixed voice mode swallowing keypresses while a permission dialog or plan editor was open</li><li>Fixed `/voice` not working on Windows when installed via npm</li><li>Fixed spurious "Context limit reached" when invoking a skill with `model:` frontmatter on a 1M-context session</li><li>Fixed "adaptive thinking is not supported on this model" error when using non-standard model strings</li><li>Fixed `Bash(cmd:*)` permission rules not matching when a quoted argument contains `#`</li><li>Fixed "don't ask again" in the Bash permission dialog showing the full raw command for pipes and compound commands</li><li>Fixed auto-compaction retrying indefinitely after consecutive failures — a circuit breaker now stops after 3 attempts</li><li>Fixed MCP reconnect spinner persisting after successful reconnection</li><li>Fixed LSP plugins not registering servers when the LSP Manager initialized before marketplaces were reconciled</li><li>Fixed clipboard copying in tmux over SSH — now attempts both direct terminal write and tmux clipboard integration</li><li>Fixed `/export` showing only the filename instead of the full file path in the success message</li><li>Fixed transcript not auto-scrolling to new messages after selecting text</li><li>Fixed Escape key not working to exit the login method selection screen</li><li>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</li><li>Fixed bridge sessions failing to recover after extended WebSocket disconnects</li><li>Fixed slash commands not found when typing the exact name of a soft-hidden command</li><li>Improved `--worktree` startup performance by reading git refs directly and skipping redundant `git fetch` when the remote branch is already available locally</li><li>Improved background agent behavior — killing a background agent now preserves its partial results in the conversation context</li><li>Improved model fallback notifications — now always visible instead of hidden behind verbose mode, with human-friendly model names</li><li>Improved blockquote readability on dark terminal themes — text is now italic with a left bar instead of dim</li><li>Improved stale worktree cleanup — worktrees left behind after an interrupted parallel run are now automatically cleaned up</li><li>Improved Remote Control session titles — now derived from your first prompt instead of showing "Interactive session"</li><li>Improved `/voice` to show your dictation language on enable and warn when your `language` setting isn't supported for voice input</li><li>Updated `--plugin-dir` to only accept one path to support subcommands — use repeated `--plugin-dir` for multiple directories</li><li>[VSCode] Fixed gitignore patterns containing commas silently excluding entire filetypes from the @-mention file picker</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2176 Changelog v2.1.75 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2175 <ul><li>Added 1M context window for Opus 4.6 by default for Max, Team, and Enterprise plans (previously required extra usage)</li><li>Added `/color` command for all users to set a prompt-bar color for your session</li><li>Added session name display on the prompt bar when using `/rename`</li><li>Added last-modified timestamps to memory files, helping Claude reason about which memories are fresh vs. stale</li><li>Added hook source display (settings/plugin/skill) in permission prompts when a hook requires confirmation</li><li>Fixed voice mode not activating correctly on fresh installs without toggling `/voice` twice</li><li>Fixed the Claude Code header not updating the displayed model name after switching models with `/model` or Option+P</li><li>Fixed session crash when an attachment message computation returns undefined values</li><li>Fixed Bash tool mangling `!` in piped commands (e.g., `jq 'select(.x != .y)'` now works correctly)</li><li>Fixed managed-disabled plugins showing up in the `/plugin` Installed tab — plugins force-disabled by your organization are now hidden</li><li>Fixed token estimation over-counting for thinking and `tool_use` blocks, preventing premature context compaction</li><li>Fixed corrupted marketplace config path handling</li><li>Fixed `/resume` losing session names after resuming a forked or continued session</li><li>Fixed Esc not closing the `/status` dialog after visiting the Config tab</li><li>Fixed input handling when accepting or rejecting a plan</li><li>Fixed footer hint in agent teams showing "↓ to expand" instead of the correct "shift + ↓ to expand"</li><li>Improved startup performance on macOS non-MDM machines by skipping unnecessary subprocess spawns</li><li>Suppressed async hook completion messages by default (visible with `--verbose` or transcript mode)</li><li>Breaking change: Removed deprecated Windows managed settings fallback at `C:\ProgramData\ClaudeCode\managed-settings.json` — use `C:\Program Files\ClaudeCode\managed-settings.json`</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2175 Changelog v2.1.74 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2174 <ul><li>Added actionable suggestions to `/context` command — identifies context-heavy tools, memory bloat, and capacity warnings with specific optimization tips</li><li>Added `autoMemoryDirectory` setting to configure a custom directory for auto-memory storage</li><li>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</li><li>Fixed managed policy `ask` rules being bypassed by user `allow` rules or skill `allowed-tools`</li><li>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`</li><li>Fixed MCP OAuth authentication hanging when the callback port is already in use</li><li>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)</li><li>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</li><li>Fixed `SessionEnd` hooks being killed after 1.5 s on exit regardless of `hook.timeout` — now configurable via `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`</li><li>Fixed `/plugin install` failing inside the REPL for marketplace plugins with local sources</li><li>Fixed marketplace update not syncing git submodules — plugin sources in submodules no longer break after update</li><li>Fixed unknown slash commands with arguments silently dropping input — now shows your input as a warning</li><li>Fixed Hebrew, Arabic, and other RTL text not rendering correctly in Windows Terminal, conhost, and VS Code integrated terminal</li><li>Fixed LSP servers not working on Windows due to malformed file URIs</li><li>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)</li><li>[VSCode] Fixed delete button not working for Untitled sessions</li><li>[VSCode] Improved scroll wheel responsiveness in the integrated terminal with terminal-aware acceleration</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2174 Changelog v2.1.73 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2173 <ul><li>Added `modelOverrides` setting to map model picker entries to custom provider model IDs (e.g. Bedrock inference profile ARNs)</li><li>Added actionable guidance when OAuth login or connectivity checks fail due to SSL certificate errors (corporate proxies, `NODE_EXTRA_CA_CERTS`)</li><li>Fixed freezes and 100% CPU loops triggered by permission prompts for complex bash commands</li><li>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)</li><li>Fixed Bash tool output being lost when running multiple Claude Code sessions in the same project directory</li><li>Fixed subagents with `model: opus`/`sonnet`/`haiku` being silently downgraded to older model versions on Bedrock, Vertex, and Microsoft Foundry</li><li>Fixed background bash processes spawned by subagents not being cleaned up when the agent exits</li><li>Fixed `/resume` showing the current session in the picker</li><li>Fixed `/ide` crashing with `onInstall is not defined` when auto-installing the extension</li><li>Fixed `/loop` not being available on Bedrock/Vertex/Foundry and when telemetry was disabled</li><li>Fixed SessionStart hooks firing twice when resuming a session via `--resume` or `--continue`</li><li>Fixed JSON-output hooks injecting no-op system-reminder messages into the model's context on every turn</li><li>Fixed voice mode session corruption when a slow connection overlaps a new recording</li><li>Fixed Linux sandbox failing to start with "ripgrep (rg) not found" on native builds</li><li>Fixed Linux native modules not loading on Amazon Linux 2 and other glibc 2.26 systems</li><li>Fixed "media_type: Field required" API error when receiving images via Remote Control</li><li>Fixed `/heapdump` failing on Windows with `EEXIST` error when the Desktop folder already exists</li><li>Improved Up arrow after interrupting Claude — now restores the interrupted prompt and rewinds the conversation in one step</li><li>Improved IDE detection speed at startup</li><li>Improved clipboard image pasting performance on macOS</li><li>Improved `/effort` to work while Claude is responding, matching `/model` behavior</li><li>Improved voice mode to automatically retry transient connection failures during rapid push-to-talk re-press</li><li>Improved the Remote Control spawn mode selection prompt with better context</li><li>Changed default Opus model on Bedrock, Vertex, and Microsoft Foundry to Opus 4.6 (was Opus 4.1)</li><li>Deprecated `/output-style` command — use `/config` instead. Output style is now fixed at session start for better prompt caching</li><li>VSCode: Fixed HTTP 400 errors for users behind proxies or on Bedrock/Vertex with Claude 4.5 models</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2173 Changelog v2.1.72 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2172 <ul><li>Fixed tool search to activate even with `ANTHROPIC_BASE_URL` as long as `ENABLE_TOOL_SEARCH` is set.</li><li>Added `w` key in `/copy` to write the focused selection directly to a file, bypassing the clipboard (useful over SSH)</li><li>Added optional description argument to `/plan` (e.g., `/plan fix the auth bug`) that enters plan mode and immediately starts</li><li>Added `ExitWorktree` tool to leave an `EnterWorktree` session</li><li>Added `CLAUDE_CODE_DISABLE_CRON` environment variable to immediately stop scheduled cron jobs mid-session</li><li>Added `lsof`, `pgrep`, `tput`, `ss`, `fd`, and `fdfind` to the bash auto-approval allowlist, reducing permission prompts for common read-only operations</li><li>Restored the `model` parameter on the Agent tool for per-invocation model overrides</li><li>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</li><li>Improved `/config` — Escape now cancels changes, Enter saves and closes, Space toggles settings</li><li>Improved up-arrow history to show current session's messages first when running multiple concurrent sessions</li><li>Improved voice input transcription accuracy for repo names and common dev terms (regex, OAuth, JSON)</li><li>Improved bash command parsing by switching to a native module — faster initialization and no memory leak</li><li>Reduced bundle size by ~510 KB</li><li>Changed CLAUDE.md HTML comments (`<!-- ... -->`) to be hidden from Claude when auto-injected. Comments remain visible when read with the Read tool</li><li>Fixed slow exits when background tasks or hooks were slow to respond</li><li>Fixed agent task progress stuck on "Initializing…"</li><li>Fixed skill hooks firing twice per event when a hooks-enabled skill is invoked by the model</li><li>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</li><li>Fixed `--continue` not resuming from the most recent point after `--compact`</li><li>Fixed bash security parsing edge cases</li><li>Added support for marketplace git URLs without `.git` suffix (Azure DevOps, AWS CodeCommit)</li><li>Improved marketplace clone failure messages to show diagnostic info even when git produces no stderr</li><li>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</li><li>Fixed feedback survey appearing too frequently in long sessions</li><li>Fixed `--effort` CLI flag being reset by unrelated settings writes on startup</li><li>Fixed backgrounded Ctrl+B queries losing their transcript or corrupting the new conversation after `/clear`</li><li>Fixed `/clear` killing background agent/bash tasks — only foreground tasks are now cleared</li><li>Fixed worktree isolation issues: Task tool resume not restoring cwd, and background task notifications missing `worktreePath` and `worktreeBranch`</li><li>Fixed `/model` not displaying results when run while Claude is working</li><li>Fixed digit keys selecting menu options instead of typing in plan mode permission prompt's text input</li><li>Fixed sandbox permission issues: certain file write operations incorrectly allowed without prompting, and output redirections to allowlisted directories (like `/tmp/claude/`) prompting unnecessarily</li><li>Improved CPU utilization in long sessions</li><li>Fixed prompt cache invalidation in SDK `query()` calls, reducing input token costs up to 12x</li><li>Fixed Escape key becoming unresponsive after cancelling a query</li><li>Fixed double Ctrl+C not exiting when background agents or tasks are running</li><li>Fixed team agents to inherit the leader's model</li><li>Fixed "Always Allow" saving permission rules that never match again</li><li>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</li><li>Fixed session crashes in Desktop/SDK when Read returned files containing U+2028/U+2029 characters</li><li>Fixed terminal title being cleared on exit even when `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` was set</li><li>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</li><li>Fixed oversized and truncated images from Bash data-URL output</li><li>Fixed a crash when resuming sessions that contained Bedrock API errors</li><li>Fixed intermittent "expected boolean, received string" validation errors on Edit, Bash, and Grep tool inputs</li><li>Fixed multi-line session titles when forking from a conversation whose first message contained newlines</li><li>Fixed queued messages not showing attached images, and images being lost when pressing ↑ to edit a queued message</li><li>Fixed parallel tool calls where a failed Read/WebFetch/Glob would cancel its siblings — only Bash errors now cascade</li><li>VSCode: Fixed scroll speed in integrated terminals not matching native terminals</li><li>VSCode: Fixed Shift+Enter submitting input instead of inserting a newline for users with older keybindings</li><li>VSCode: Added effort level indicator on the input border</li><li>VSCode: Added `vscode://anthropic.claude-code/open` URI handler to open a new Claude Code tab programmatically, with optional `prompt` and `session` query parameters</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2172 Changelog v2.1.71 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2171 <ul><li>Added `/loop` command to run a prompt or slash command on a recurring interval (e.g. `/loop 5m check the deploy`)</li><li>Added cron scheduling tools for recurring prompts within a session</li><li>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</li><li>Added `fmt`, `comm`, `cmp`, `numfmt`, `expr`, `test`, `printf`, `getconf`, `seq`, `tsort`, and `pr` to the bash auto-approval allowlist</li><li>Fixed stdin freeze in long-running sessions where keystrokes stop being processed but the process stays alive</li><li>Fixed a 5–8 second startup freeze for users with voice mode enabled, caused by CoreAudio initialization blocking the main thread after system wake</li><li>Fixed startup UI freeze when many claude.ai proxy connectors refresh an expired OAuth token simultaneously</li><li>Fixed forked conversations (`/fork`) sharing the same plan file, which caused plan edits in one fork to overwrite the other</li><li>Fixed the Read tool putting oversized images into context when image processing failed, breaking subsequent turns in long image-heavy sessions</li><li>Fixed false-positive permission prompts for compound bash commands containing heredoc commit messages</li><li>Fixed plugin installations being lost when running multiple Claude Code instances</li><li>Fixed claude.ai connectors failing to reconnect after OAuth token refresh</li><li>Fixed claude.ai MCP connector startup notifications appearing for every org-configured connector instead of only previously connected ones</li><li>Fixed background agent completion notifications missing the output file path, which made it difficult for parent agents to recover agent results after context compaction</li><li>Fixed duplicate output in Bash tool error messages when commands exit with non-zero status</li><li>Fixed Chrome extension auto-detection getting permanently stuck on "not installed" after running on a machine without local Chrome</li><li>Fixed `/plugin marketplace update` failing with merge conflicts when the marketplace is pinned to a branch/tag ref</li><li>Fixed `/plugin marketplace add owner/repo@ref` incorrectly parsing `@` — previously only `#` worked as a ref separator, causing undiagnosable errors with `strictKnownMarketplaces`</li><li>Fixed duplicate entries in `/permissions` Workspace tab when the same directory is added with and without a trailing slash</li><li>Fixed `--print` hanging forever when team agents are configured — the exit loop no longer waits on long-lived `in_process_teammate` tasks</li><li>Fixed "❯ Tool loaded." appearing in the REPL after every `ToolSearch` call</li><li>Fixed prompting for `cd <cwd> && git ...` on Windows when the model uses a mingw-style path</li><li>Improved startup time by deferring native image processor loading to first use</li><li>Improved bridge session reconnection to complete within seconds after laptop wake from sleep, instead of waiting up to 10 minutes</li><li>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</li><li>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.</li><li>Updated `/debug` to toggle debug logging on mid-session, since debug logs are no longer written by default</li><li>Removed startup notification noise for unauthenticated org-registered claude.ai connectors</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2171 Changelog v2.1.70 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2170 <ul><li>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</li><li>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</li><li>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</li><li>Fixed prompt-cache bust when an MCP server with `instructions` connects after the first turn</li><li>Fixed Enter inserting a newline instead of submitting when typing over a slow SSH connection</li><li>Fixed clipboard corrupting non-ASCII text (CJK, emoji) on Windows/WSL by using PowerShell `Set-Clipboard`</li><li>Fixed extra VS Code windows opening at startup on Windows when running from the VS Code integrated terminal</li><li>Fixed voice mode failing on Windows native binary with "native audio module could not be loaded"</li><li>Fixed push-to-talk not activating on session start when `voiceEnabled: true` was set in settings</li><li>Fixed markdown links containing `#NNN` references incorrectly pointing to the current repository instead of the linked URL</li><li>Fixed repeated "Model updated to Opus 4.6" notification when a project's `.claude/settings.json` has a legacy Opus model string pinned</li><li>Fixed plugins showing as inaccurately installed in `/plugin`</li><li>Fixed plugins showing "not found in marketplace" errors on fresh startup by auto-refreshing after marketplace installation</li><li>Fixed `/security-review` command failing with `unknown option merge-base` on older git versions</li><li>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</li><li>Fixed a performance regression in the `AskUserQuestion` preview dialog that re-ran markdown rendering on every keystroke in the notes input</li><li>Fixed feature flags read during early startup never refreshing their disk cache, causing stale values to persist across sessions</li><li>Fixed `permissions.defaultMode` settings values other than `acceptEdits` or `plan` being applied in Claude Code Remote environments — they are now ignored</li><li>Fixed skill listing being re-injected on every `--resume` (~600 tokens saved per resume)</li><li>Fixed teleport marker not rendering in VS Code teleported sessions</li><li>Improved error message when microphone captures silence to distinguish from "no speech detected"</li><li>Improved compaction to preserve images in the summarizer request, allowing prompt cache reuse for faster and cheaper compaction</li><li>Improved `/rename` to work while Claude is processing, instead of being silently queued</li><li>Reduced prompt input re-renders during turns by ~74%</li><li>Reduced startup memory by ~426KB for users without custom CA certificates</li><li>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.</li><li>[VSCode] Added spark icon in VS Code activity bar that lists all Claude Code sessions, with sessions opening as full editors</li><li>[VSCode] Added full markdown document view for plans in VS Code, with support for adding comments to provide feedback</li><li>[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</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2170 Changelog v2.1.69 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2169 <ul><li>Added the `/claude-api` skill for building applications with the Claude API and Anthropic SDK</li><li>Added Ctrl+U on an empty bash prompt (`!`) to exit bash mode, matching `escape` and `backspace`</li><li>Added numeric keypad support for selecting options in Claude's interview questions (previously only the number row above QWERTY worked)</li><li>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</li><li>Added Voice STT support for 10 new languages (20 total) — Russian, Polish, Turkish, Dutch, Ukrainian, Greek, Czech, Danish, Swedish, Norwegian</li><li>Added effort level display (e.g., "with low effort") to the logo and spinner, making it easier to see which effort setting is active</li><li>Added agent name display in terminal title when using `claude --agent`</li><li>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`</li><li>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</li><li>Added `/reload-plugins` command to activate pending plugin changes without restarting</li><li>Added a one-time startup prompt suggesting Claude Code Desktop on macOS and Windows (max 3 showings, dismissible)</li><li>Added `${CLAUDE_SKILL_DIR}` variable for skills to reference their own directory in SKILL.md content</li><li>Added `InstructionsLoaded` hook event that fires when CLAUDE.md or `.claude/rules/*.md` files are loaded into context</li><li>Added `agent_id` (for subagents) and `agent_type` (for subagents and `--agent`) to hook events</li><li>Added `worktree` field to status line hook commands with name, path, branch, and original repo directory when running in a `--worktree` session</li><li>Added `pluginTrustMessage` in managed settings to append organization-specific context to the plugin trust warning shown before installation</li><li>Added policy limit fetching (e.g., remote control restrictions) for Team plan OAuth users, not just Enterprise</li><li>Added `pathPattern` to `strictKnownMarketplaces` for regex-matching file/directory marketplace sources alongside `hostPattern` restrictions</li><li>Added plugin source type `git-subdir` to point to a subdirectory within a git repo</li><li>Added `oauth.authServerMetadataUrl` config option for MCP servers to specify a custom OAuth metadata discovery URL when standard discovery fails</li><li>Fixed a security issue where nested skill discovery could load skills from gitignored directories like `node_modules`</li><li>Fixed trust dialog silently enabling all `.mcp.json` servers on first run. You'll now see the per-server approval dialog as expected</li><li>Fixed `claude remote-control` crashing immediately on npm installs with "bad option: --sdk-url" (anthropics/claude-code#28334)</li><li>Fixed `--model claude-opus-4-0` and `--model claude-opus-4-1` resolving to deprecated Opus versions instead of current</li><li>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.</li><li>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)</li><li>Fixed ghost dotfiles (`.bashrc`, `HEAD`, etc.) appearing as untracked files in the working directory after sandboxed Bash commands on Linux</li><li>Fixed Shift+Enter printing `[27;2;13~` instead of inserting a newline in Ghostty over SSH</li><li>Fixed stash (Ctrl+S) being cleared when submitting a message while Claude is working</li><li>Fixed ctrl+o (transcript toggle) freezing for many seconds in long sessions with lots of file edits</li><li>Fixed plan mode feedback input not supporting multi-line text entry (backslash+Enter and Shift+Enter now insert newlines)</li><li>Fixed cursor not moving down into blank lines at the top of the input box</li><li>Fixed `/stats` crash when transcript files contain entries with missing or malformed timestamps</li><li>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)</li><li>Fixed `--setting-sources user` not blocking dynamically discovered project skills</li><li>Fixed duplicate CLAUDE.md, slash commands, agents, and rules when running from a worktree nested inside its main repo (e.g. `claude -w`)</li><li>Fixed plugin Stop/SessionEnd/etc hooks not firing after any `/plugin` operation</li><li>Fixed plugin hooks being silently dropped when two plugins use the same `${CLAUDE_PLUGIN_ROOT}/...` command template</li><li>Fixed memory leak in long-running SDK/CCR sessions where conversation messages were retained unnecessarily</li><li>Fixed API 400 errors in forked agents (autocompact, summarization) when resuming sessions that were interrupted mid-tool-batch</li><li>Fixed "unexpected tool_use_id found in tool_result blocks" error when resuming conversations that start with an orphaned tool result</li><li>Fixed teammates accidentally spawning nested teammates via the Agent tool's `name` parameter</li><li>Fixed `CLAUDE_CODE_MAX_OUTPUT_TOKENS` being ignored during conversation compaction</li><li>Fixed `/compact` summary rendering as a user bubble in SDK consumers (Claude Code Remote web UI, VSCode extension)</li><li>Fixed voice space bar getting stuck after a failed voice activation (module loading race, cold GrowthBook)</li><li>Fixed worktree file copy on Windows</li><li>Fixed global `.claude` folder detection on Windows</li><li>Fixed symlink bypass where writing new files through a symlinked parent directory could escape the working directory in `acceptEdits` mode</li><li>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</li><li>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</li><li>Fixed multi-GB memory spike when committing with large untracked binary files in the working tree</li><li>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.</li><li>Fixed Android app crash when running local slash commands (`/voice`, `/cost`) in Remote Control sessions</li><li>Fixed a memory leak where old message array versions accumulated in React Compiler `memoCache` over long sessions</li><li>Fixed a memory leak where REPL render scopes accumulated over long sessions (~35MB over 1000 turns)</li><li>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</li><li>Fixed a memory leak in interactive mode where hook events could accumulate unboundedly during long sessions</li><li>Fixed hang when `--mcp-config` points to a corrupted file</li><li>Fixed slow startup when many skills/plugins are installed</li><li>Fixed `cd <outside-dir> && <cmd>` permission prompt to surface the chained command instead of only showing "Yes, allow reading from <dir>/"</li><li>Fixed conditional `.claude/rules/*.md` files (with `paths:` frontmatter) and nested CLAUDE.md files not loading in print mode (`claude -p`)</li><li>Fixed `/clear` not fully clearing all session caches, reducing memory retention in long sessions</li><li>Fixed terminal flicker caused by animated elements at the scrollback boundary</li><li>Fixed UI frame drops on macOS when using MCP servers with OAuth (regression from 2.1.x)</li><li>Fixed occasional frame stalls during typing caused by synchronous debug log flushes</li><li>Fixed `TeammateIdle` and `TaskCompleted` hooks to support `{"continue": false, "stopReason": "..."}` to stop the teammate, matching `Stop` hook behavior</li><li>Fixed `WorktreeCreate` and `WorktreeRemove` plugin hooks being silently ignored</li><li>Fixed skill descriptions with colons (e.g., "Triggers include: X, Y, Z") failing to load from SKILL.md frontmatter</li><li>Fixed project skills without a `description:` frontmatter field not appearing in Claude's available skills list</li><li>Fixed `/context` showing identical token counts for all MCP tools from a server</li><li>Fixed literal `nul` file creation on Windows when the model uses CMD-style `2>nul` redirection in Git Bash</li><li>Fixed extra blank lines appearing below each tool call in the expanded subagent transcript view (Ctrl+O)</li><li>Fixed Tab/arrow keys not cycling Settings tabs when `/config` search box is focused but empty</li><li>Fixed service key OAuth sessions (CCR containers) spamming `[ERROR]` logs with 403s from profile-scoped endpoints</li><li>Fixed inconsistent color for "Remote Control active" status indicator</li><li>Fixed Voice waveform cursor covering the first suffix letter when dictating mid-input</li><li>Fixed Voice input showing all 5 spaces during warmup instead of capping at ~2 (aligning with the "keep holding…" hint)</li><li>Improved spinner performance by isolating the 50ms animation loop from the surrounding shell, reducing render and CPU overhead during turns</li><li>Improved UI rendering performance in native binaries with React Compiler</li><li>Improved `--worktree` startup by eliminating a git subprocess on the startup path</li><li>Improved macOS startup by eliminating redundant settings-file reloads when managed settings resolve</li><li>Improved macOS startup for Claude.ai enterprise/team users by skipping an unnecessary keychain lookup</li><li>Improved MCP `-p` startup by pipelining claude.ai config fetch with local connections and using a concurrency pool instead of sequential batching</li><li>Improved voice startup by removing imperceptible warmup pulse animations that were causing re-render stutter</li><li>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.</li><li>Improved memory usage in long sessions by stabilizing `onSubmit` across message updates</li><li>Improved LSP tool rendering and memory context building to no longer read entire files</li><li>Improved session upload and memory sync to avoid reading large files into memory before size/binary checks</li><li>Improved file operation performance by avoiding reading file contents for existence checks (6 sites)</li><li>Improved documentation to clarify that `--append-system-prompt-file` and `--system-prompt-file` work in interactive mode (the docs previously said print mode only)</li><li>Reduced baseline memory by ~16MB by deferring Yoga WASM preloading</li><li>Reduced memory footprint for SDK and CCR sessions using stream-json output</li><li>Reduced memory usage when resuming large sessions (including compacted history)</li><li>Reduced token usage on multi-agent tasks with more concise subagent final reports</li><li>Changed Sonnet 4.5 users on Pro/Max/Team Premium to be automatically migrated to Sonnet 4.6</li><li>Changed the `/resume` picker to show your most recent prompt instead of the first one. This also resolves some titles appearing as `(session)`.</li><li>Changed claude.ai MCP connector failures to show a notification instead of silently disappearing from the tool list</li><li>Changed example command suggestions to be generated deterministically instead of calling Haiku</li><li>Changed resuming after compaction to no longer produce a preamble recap before continuing</li><li>[SDK] Changed task creation to no longer require the `activeForm` field — the spinner falls back to the task subject</li><li>[VSCode] Added compaction display as a collapsible "Compacted chat" card with the summary inside</li><li>[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</li><li>[VSCode] Fixed RTL text (Arabic, Hebrew, Persian) rendering reversed in the chat panel (regression in v2.1.63)</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2169 Changelog v2.1.68 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2168 <ul><li>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`</li><li>Re-introduced the "ultrathink" keyword to enable high effort for the next turn</li><li>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</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2168 Changelog v2.1.66 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2166 <ul><li>Reduced spurious error logging</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2166 Changelog v2.1.63 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163 <ul><li>Added `/simplify` and `/batch` bundled slash commands</li><li>Fixed local slash command output like /cost appearing as user-sent messages instead of system messages in the UI</li><li>Project configs & auto memory now shared across git worktrees of the same repository</li><li>Added `ENABLE_CLAUDEAI_MCP_SERVERS=false` env var to opt out from making claude.ai MCP servers available</li><li>Improved `/model` command to show the currently active model in the slash command menu</li><li>Added HTTP hooks, which can POST JSON to a URL and receive JSON instead of running a shell command</li><li>Fixed listener leak in bridge polling loop</li><li>Fixed listener leak in MCP OAuth flow cleanup</li><li>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.</li><li>Fixed memory leak when navigating hooks configuration menu</li><li>Fixed listener leak in interactive permission handler during auto-approvals</li><li>Fixed file count cache ignoring glob ignore patterns</li><li>Fixed memory leak in bash command prefix cache</li><li>Fixed MCP tool/resource cache leak on server reconnect</li><li>Fixed IDE host IP detection cache incorrectly sharing results across ports</li><li>Fixed WebSocket listener leak on transport reconnect</li><li>Fixed memory leak in git root detection cache that could cause unbounded growth in long-running sessions</li><li>Fixed memory leak in JSON parsing cache that grew unbounded over long sessions</li><li>VSCode: Fixed remote sessions not appearing in conversation history</li><li>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.</li><li>Fixed memory leak where long-running teammates retained all messages in AppState even after conversation compaction</li><li>Fixed a memory leak where MCP server fetch caches were not cleared on disconnect, causing growing memory usage with servers that reconnect frequently</li><li>Improved memory usage in long sessions with subagents by stripping heavy progress message payloads during context compaction</li><li>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.</li><li>VSCode: Added session rename and remove actions to the sessions list</li><li>Fixed `/clear` not resetting cached skills, which could cause stale skill content to persist in the new conversation</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2163 Changelog v2.1.62 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2162 <ul><li>Fixed prompt suggestion cache regression that reduced cache hit rates</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2162 Changelog v2.1.61 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2161 <ul><li>Fixed concurrent writes corrupting config file on Windows</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2161 Changelog v2.1.59 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2159 <ul><li>Claude automatically saves useful context to auto-memory. Manage with /memory</li><li>Added `/copy` command to show an interactive picker when code blocks are present, allowing selection of individual code blocks or the full response.</li><li>Improved "always allow" prefix suggestions for compound bash commands (e.g. `cd /tmp && git fetch && git push`) to compute smarter per-subcommand prefixes instead of treating the whole command as one</li><li>Improved ordering of short task lists</li><li>Improved memory usage in multi-agent sessions by releasing completed subagent task state</li><li>Fixed MCP OAuth token refresh race condition when running multiple Claude Code instances simultaneously</li><li>Fixed shell commands not showing a clear error message when the working directory has been deleted</li><li>Fixed config file corruption that could wipe authentication when multiple Claude Code instances ran simultaneously</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2159 Changelog v2.1.58 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2158 <ul><li>Expand Remote Control to more users</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2158 Changelog v2.1.56 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2156 <ul><li>VS Code: Fixed another cause of "command 'claude-vscode.editor.openLast' not found" crashes</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2156 Changelog v2.1.55 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2155 <ul><li>Fixed BashTool failing on Windows with EINVAL error</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2155 Changelog v2.1.53 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2153 <ul><li>Fixed a UI flicker where user input would briefly disappear after submission before the message rendered</li><li>Fixed bulk agent kill (ctrl+f) to send a single aggregate notification instead of one per agent, and to properly clear the command queue</li><li>Fixed graceful shutdown sometimes leaving stale sessions when using Remote Control by parallelizing teardown network calls</li><li>Fixed `--worktree` sometimes being ignored on first launch</li><li>Fixed a panic ("switch on corrupted value") on Windows</li><li>Fixed a crash that could occur when spawning many processes on Windows</li><li>Fixed a crash in the WebAssembly interpreter on Linux x64 & Windows x64</li><li>Fixed a crash that sometimes occurred after 2 minutes on Windows ARM64</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2153 Changelog v2.1.52 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2152 <ul><li>VS Code: Fixed extension crash on Windows ("command 'claude-vscode.editor.openLast' not found")</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2152 Changelog v2.1.51 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2151 <ul><li>Added `claude remote-control` subcommand for external builds, enabling local environment serving for all users.</li><li>Updated plugin marketplace default git timeout from 30s to 120s and added `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` to configure.</li><li>Added support for custom npm registries and specific version pinning when installing plugins from npm sources</li><li>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`.</li><li>Fixed a security issue where `statusLine` and `fileSuggestion` hook commands could execute without workspace trust acceptance in interactive mode.</li><li>Tool results larger than 50K characters are now persisted to disk (previously 100K). This reduces context window usage and improves conversation longevity.</li><li>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.</li><li>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.</li><li>Fixed slash command autocomplete crashing when a plugin's SKILL.md description is a YAML array or other non-string type</li><li>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.</li><li>Managed settings can now be set via macOS plist or Windows Registry. Learn more at https://code.claude.com/docs/en/settings#settings-files</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2151 Changelog v2.1.50 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2150 <ul><li>Added support for `startupTimeout` configuration for LSP servers</li><li>Added `WorktreeCreate` and `WorktreeRemove` hook events, enabling custom VCS setup and teardown when agent worktree isolation creates or removes worktrees.</li><li>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.</li><li>Linux: Fixed native modules not loading on systems with glibc older than 2.30 (e.g., RHEL 8)</li><li>Fixed memory leak in agent teams where completed teammate tasks were never garbage collected from session state</li><li>Fixed `CLAUDE_CODE_SIMPLE` to fully strip down skills, session memory, custom agents, and CLAUDE.md token counting</li><li>Fixed `/mcp reconnect` freezing the CLI when given a server name that doesn't exist</li><li>Fixed memory leak where completed task state objects were never removed from AppState</li><li>Added support for `isolation: worktree` in agent definitions, allowing agents to declaratively run in isolated git worktrees.</li><li>`CLAUDE_CODE_SIMPLE` mode now also disables MCP tools, attachments, hooks, and CLAUDE.md file loading for a fully minimal experience.</li><li>Fixed bug where MCP tools were not discovered when tool search is enabled and a prompt is passed in as a launch argument</li><li>Improved memory usage during long sessions by clearing internal caches after compaction</li><li>Added `claude agents` CLI command to list all configured agents</li><li>Improved memory usage during long sessions by clearing large tool results after they have been processed</li><li>Fixed a memory leak where LSP diagnostic data was never cleaned up after delivery, causing unbounded memory growth in long sessions</li><li>Fixed a memory leak where completed task output was not freed from memory, reducing memory usage in long sessions with many tasks</li><li>Improved startup performance for headless mode (`-p` flag) by deferring Yoga WASM and UI component imports</li><li>Fixed prompt suggestion cache regression that reduced cache hit rates</li><li>Fixed unbounded memory growth in long sessions by capping file history snapshots</li><li>Added `CLAUDE_CODE_DISABLE_1M_CONTEXT` environment variable to disable 1M context window support</li><li>Opus 4.6 (fast mode) now includes the full 1M context window</li><li>VSCode: Added `/extra-usage` command support in VS Code sessions</li><li>Fixed memory leak where TaskOutput retained recent lines after cleanup</li><li>Fixed memory leak in CircularBuffer where cleared items were retained in the backing array</li><li>Fixed memory leak in shell command execution where ChildProcess and AbortController references were retained after cleanup</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2150 Changelog v2.1.49 https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2149 <ul><li>Improved MCP OAuth authentication with step-up auth support and discovery caching, reducing redundant network requests during server connections</li><li>Added `--worktree` (`-w`) flag to start Claude in an isolated git worktree</li><li>Subagents support `isolation: "worktree"` for working in a temporary git worktree</li><li>Added Ctrl+F keybinding to kill background agents (two-press confirmation)</li><li>Agent definitions support `background: true` to always run as a background task</li><li>Plugins can ship `settings.json` for default configuration</li><li>Fixed file-not-found errors to suggest corrected paths when the model drops the repo folder</li><li>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.</li><li>Fixed prompt suggestion cache regression that reduced cache hit rates.</li><li>Fixed `plugin enable` and `plugin disable` to auto-detect the correct scope when `--scope` is not specified, instead of always defaulting to user scope</li><li>Simple mode (`CLAUDE_CODE_SIMPLE`) now includes the file edit tool in addition to the Bash tool, allowing direct file editing in simple mode.</li><li>Permission suggestions are now populated when safety checks trigger an ask response, enabling SDK consumers to display permission options</li><li>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.</li><li>Fixed verbose mode not updating thinking block display when toggled via `/config` — memo comparators now correctly detect verbose changes</li><li>Fixed unbounded WASM memory growth during long sessions by periodically resetting the tree-sitter parser</li><li>Fixed potential rendering issues caused by stale yoga layout references</li><li>Improved performance in non-interactive mode (`-p`) by skipping unnecessary API calls during startup</li><li>Improved performance by caching authentication failures for HTTP and SSE MCP servers, avoiding repeated connection attempts to servers requiring auth</li><li>Fixed unbounded memory growth during long-running sessions caused by Yoga WASM linear memory never shrinking</li><li>SDK model info now includes `supportsEffort`, `supportedEffortLevels`, and `supportsAdaptiveThinking` fields so consumers can discover model capabilities.</li><li>Added `ConfigChange` hook event that fires when configuration files change during a session, enabling enterprise security auditing and optional blocking of settings changes.</li><li>Improved startup performance by caching MCP auth failures to avoid redundant connection attempts</li><li>Improved startup performance by reducing HTTP calls for analytics token counting</li><li>Improved startup performance by batching MCP tool token counting into a single API call</li><li>Fixed `disableAllHooks` setting to respect managed settings hierarchy — non-managed settings can no longer disable managed hooks set by policy (#26637)</li><li>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.</li><li>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</li></ul> https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md#2149 Changelog ================================================ FILE: feeds/feed_anthropic_engineering.xml ================================================ Anthropic Engineering Blog https://www.anthropic.com/engineering Inside the team building reliable AI systems http://www.rssboard.org/rss-specification python-feedgen https://www.anthropic.com/images/icons/apple-touch-icon.png Anthropic Engineering Blog https://www.anthropic.com/engineering en Wed, 13 May 2026 10:50:22 +0000 An update on recent Claude Code quality reports https://www.anthropic.com/engineering/april-23-postmortem We traced recent reports of Claude Code quality issues to three separate changes. Here's what happened and what we're changing. https://www.anthropic.com/engineering/april-23-postmortem Engineering Thu, 23 Apr 2026 00:00:00 +0000 Scaling Managed Agents: Decoupling the brain from the hands https://www.anthropic.com/engineering/managed-agents 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. https://www.anthropic.com/engineering/managed-agents Engineering Wed, 08 Apr 2026 00:00:00 +0000 Claude Code auto mode: a safer way to skip permissions https://www.anthropic.com/engineering/claude-code-auto-mode 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 https://www.anthropic.com/engineering/claude-code-auto-mode Engineering Wed, 25 Mar 2026 00:00:00 +0000 Harness design for long-running application development https://www.anthropic.com/engineering/harness-design-long-running-apps 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. https://www.anthropic.com/engineering/harness-design-long-running-apps Engineering Tue, 24 Mar 2026 00:00:00 +0000 Eval awareness in Claude Opus 4.6’s BrowseComp performance https://www.anthropic.com/engineering/eval-awareness-browsecomp 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. https://www.anthropic.com/engineering/eval-awareness-browsecomp Engineering Fri, 06 Mar 2026 00:00:00 +0000 Building a C compiler with a team of parallel Claudes https://www.anthropic.com/engineering/building-c-compiler 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. https://www.anthropic.com/engineering/building-c-compiler Engineering Thu, 05 Feb 2026 00:00:00 +0000 Quantifying infrastructure noise in agentic coding evals https://www.anthropic.com/engineering/infrastructure-noise Infrastructure configuration can swing agentic coding benchmarks by several percentage points—sometimes more than the leaderboard gap between top models.\n\n https://www.anthropic.com/engineering/infrastructure-noise Engineering Thu, 05 Feb 2026 00:00:00 +0000 Designing AI-resistant technical evaluations https://www.anthropic.com/engineering/AI-resistant-technical-evaluations What we learned from three iterations of a performance engineering take-home that Claude keeps beating. https://www.anthropic.com/engineering/AI-resistant-technical-evaluations Engineering Wed, 21 Jan 2026 00:00:00 +0000 Demystifying evals for AI agents https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents 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 https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents Engineering Fri, 09 Jan 2026 00:00:00 +0000 Effective harnesses for long-running agents https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents 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. https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents Engineering Wed, 26 Nov 2025 00:00:00 +0000 Introducing advanced tool use on the Claude Developer Platform https://www.anthropic.com/engineering/advanced-tool-use We’ve added three new beta features that let Claude discover, learn, and execute tools dynamically. Here’s how they work. https://www.anthropic.com/engineering/advanced-tool-use Engineering Mon, 24 Nov 2025 00:00:00 +0000 Code execution with MCP: Building more efficient agents https://www.anthropic.com/engineering/code-execution-with-mcp 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. https://www.anthropic.com/engineering/code-execution-with-mcp Engineering Tue, 04 Nov 2025 00:00:00 +0000 Beyond permission prompts: making Claude Code more secure and autonomous https://www.anthropic.com/engineering/claude-code-sandboxing 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. https://www.anthropic.com/engineering/claude-code-sandboxing Engineering Mon, 20 Oct 2025 00:00:00 +0000 Equipping agents for the real world with Agent Skills https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills 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. https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills Engineering Thu, 16 Oct 2025 00:00:00 +0000 Effective context engineering for AI agents https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents 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. https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents Engineering Mon, 29 Sep 2025 00:00:00 +0000 A postmortem of three recent issues https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues 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. https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues Engineering Wed, 17 Sep 2025 00:00:00 +0000 Writing effective tools for agents — with agents https://www.anthropic.com/engineering/writing-tools-for-agents 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. https://www.anthropic.com/engineering/writing-tools-for-agents Engineering Thu, 11 Sep 2025 00:00:00 +0000 Desktop Extensions: One-click MCP server installation for Claude Desktop https://www.anthropic.com/engineering/desktop-extensions Desktop Extensions make installing MCP servers as easy as clicking a button. We share the technical architecture and tips for creating good extensions. https://www.anthropic.com/engineering/desktop-extensions Engineering Thu, 26 Jun 2025 00:00:00 +0000 How we built our multi-agent research system https://www.anthropic.com/engineering/multi-agent-research-system 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. https://www.anthropic.com/engineering/multi-agent-research-system Engineering Fri, 13 Jun 2025 00:00:00 +0000 Claude Code: Best practices for agentic coding https://www.anthropic.com/engineering/claude-code-best-practices 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. https://www.anthropic.com/engineering/claude-code-best-practices Engineering Fri, 18 Apr 2025 00:00:00 +0000 The \"think\" tool: Enabling Claude to stop and think in complex tool use situations https://www.anthropic.com/engineering/claude-think-tool A new tool that improves Claude's complex problem-solving performance https://www.anthropic.com/engineering/claude-think-tool Engineering Thu, 20 Mar 2025 00:00:00 +0000 Raising the bar on SWE-bench Verified with Claude 3.5 Sonnet https://www.anthropic.com/engineering/swe-bench-sonnet SWE-bench is an AI evaluation benchmark that assesses a model's ability to complete real-world software engineering tasks. https://www.anthropic.com/engineering/swe-bench-sonnet Engineering Mon, 06 Jan 2025 00:00:00 +0000 Building effective agents https://www.anthropic.com/engineering/building-effective-agents 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. https://www.anthropic.com/engineering/building-effective-agents Engineering Thu, 19 Dec 2024 00:00:00 +0000 Introducing Contextual Retrieval https://www.anthropic.com/engineering/contextual-retrieval For an AI model to be useful in specific contexts, it often needs access to background knowledge. https://www.anthropic.com/engineering/contextual-retrieval Engineering Thu, 19 Sep 2024 00:00:00 +0000 ================================================ FILE: feeds/feed_anthropic_news.xml ================================================ Anthropic News https://www.anthropic.com/news Latest updates from Anthropic's newsroom http://www.rssboard.org/rss-specification python-feedgen https://www.anthropic.com/images/icons/apple-touch-icon.png Anthropic News https://www.anthropic.com/news en Wed, 13 May 2026 11:20:32 +0000 Higher usage limits for Claude and a compute deal with SpaceX https://www.anthropic.com/news/higher-limits-spacex Higher usage limits for Claude and a compute deal with SpaceX https://www.anthropic.com/news/higher-limits-spacex Announcements Wed, 06 May 2026 00:00:00 +0000 Agents for financial services https://www.anthropic.com/news/finance-agents Agents for financial services https://www.anthropic.com/news/finance-agents Announcements Tue, 05 May 2026 00:00:00 +0000 Building a new enterprise AI services company with Blackstone, Hellman & Friedman, and Goldman Sachs https://www.anthropic.com/news/enterprise-ai-services-company Building a new enterprise AI services company with Blackstone, Hellman & Friedman, and Goldman Sachs https://www.anthropic.com/news/enterprise-ai-services-company Announcements Mon, 04 May 2026 00:00:00 +0000 Claude for Creative Work https://www.anthropic.com/news/claude-for-creative-work Claude for Creative Work https://www.anthropic.com/news/claude-for-creative-work Announcements Tue, 28 Apr 2026 00:00:00 +0000 Anthropic names Theo Hourmouzis General Manager of Australia & New Zealand and officially opens Sydney office https://www.anthropic.com/news/theo-hourmouzis-general-manager-australia-new-zealand Anthropic names Theo Hourmouzis General Manager of Australia & New Zealand and officially opens Sydney office https://www.anthropic.com/news/theo-hourmouzis-general-manager-australia-new-zealand Announcements Mon, 27 Apr 2026 00:00:00 +0000 Anthropic and NEC collaborate to build Japan’s largest AI engineering workforce https://www.anthropic.com/news/anthropic-nec Anthropic and NEC collaborate to build Japan’s largest AI engineering workforce https://www.anthropic.com/news/anthropic-nec Announcements Fri, 24 Apr 2026 00:00:00 +0000 An update on our election safeguards https://www.anthropic.com/news/election-safeguards-update An update on our election safeguards https://www.anthropic.com/news/election-safeguards-update Announcements Fri, 24 Apr 2026 00:00:00 +0000 Anthropic and Amazon expand collaboration for up to 5 gigawatts of new compute https://www.anthropic.com/news/anthropic-amazon-compute Anthropic and Amazon expand collaboration for up to 5 gigawatts of new compute https://www.anthropic.com/news/anthropic-amazon-compute Announcements Mon, 20 Apr 2026 00:00:00 +0000 Introducing Claude Design by Anthropic Labs https://www.anthropic.com/news/claude-design-anthropic-labs Introducing Claude Design by Anthropic Labs https://www.anthropic.com/news/claude-design-anthropic-labs Product Fri, 17 Apr 2026 00:00:00 +0000 Introducing Claude Opus 4.7 https://www.anthropic.com/news/claude-opus-4-7 Introducing Claude Opus 4.7 https://www.anthropic.com/news/claude-opus-4-7 Product Thu, 16 Apr 2026 00:00:00 +0000 Anthropic’s Long-Term Benefit Trust appoints Vas Narasimhan to Board of Directors https://www.anthropic.com/news/narasimhan-board Anthropic’s Long-Term Benefit Trust appoints Vas Narasimhan to Board of Directors https://www.anthropic.com/news/narasimhan-board Announcements Tue, 14 Apr 2026 00:00:00 +0000 Anthropic expands partnership with Google and Broadcom for multiple gigawatts of next-generation compute https://www.anthropic.com/news/google-broadcom-partnership-compute Anthropic expands partnership with Google and Broadcom for multiple gigawatts of next-generation compute https://www.anthropic.com/news/google-broadcom-partnership-compute Announcements Mon, 06 Apr 2026 00:00:00 +0000 Australian government and Anthropic sign MOU for AI safety and research https://www.anthropic.com/news/australia-MOU Australian government and Anthropic sign MOU for AI safety and research https://www.anthropic.com/news/australia-MOU Announcements Tue, 31 Mar 2026 00:00:00 +0000 Anthropic invests $100 million into the Claude Partner Network https://www.anthropic.com/news/claude-partner-network Anthropic invests $100 million into the Claude Partner Network https://www.anthropic.com/news/claude-partner-network Announcements Thu, 12 Mar 2026 00:00:00 +0000 Introducing The Anthropic Institute https://www.anthropic.com/news/the-anthropic-institute Introducing The Anthropic Institute https://www.anthropic.com/news/the-anthropic-institute Announcements Wed, 11 Mar 2026 00:00:00 +0000 Sydney will become Anthropic’s fourth office in Asia-Pacific https://www.anthropic.com/news/sydney-fourth-office-asia-pacific Sydney will become Anthropic’s fourth office in Asia-Pacific https://www.anthropic.com/news/sydney-fourth-office-asia-pacific Announcements Tue, 10 Mar 2026 00:00:00 +0000 Partnering with Mozilla to improve Firefox’s security https://www.anthropic.com/news/mozilla-firefox-security Partnering with Mozilla to improve Firefox’s security https://www.anthropic.com/news/mozilla-firefox-security Policy Fri, 06 Mar 2026 00:00:00 +0000 Where things stand with the Department of War https://www.anthropic.com/news/where-stand-department-war Where things stand with the Department of War https://www.anthropic.com/news/where-stand-department-war Announcements Thu, 05 Mar 2026 00:00:00 +0000 Statement on the comments from Secretary of War Pete Hegseth https://www.anthropic.com/news/statement-comments-secretary-war Statement on the comments from Secretary of War Pete Hegseth https://www.anthropic.com/news/statement-comments-secretary-war Announcements Fri, 27 Feb 2026 00:00:00 +0000 Statement from Dario Amodei on our discussions with the Department of War https://www.anthropic.com/news/statement-department-of-war Statement from Dario Amodei on our discussions with the Department of War https://www.anthropic.com/news/statement-department-of-war Announcements Thu, 26 Feb 2026 00:00:00 +0000 Anthropic acquires Vercept to advance Claude's computer use capabilities https://www.anthropic.com/news/acquires-vercept Anthropic acquires Vercept to advance Claude's computer use capabilities https://www.anthropic.com/news/acquires-vercept Announcements Wed, 25 Feb 2026 00:00:00 +0000 Anthropic’s Responsible Scaling Policy: Version 3.0 https://www.anthropic.com/news/responsible-scaling-policy-v3 Anthropic’s Responsible Scaling Policy: Version 3.0 https://www.anthropic.com/news/responsible-scaling-policy-v3 Policy Tue, 24 Feb 2026 00:00:00 +0000 Detecting and preventing distillation attacks https://www.anthropic.com/news/detecting-and-preventing-distillation-attacks Detecting and preventing distillation attacks https://www.anthropic.com/news/detecting-and-preventing-distillation-attacks Announcements Mon, 23 Feb 2026 00:00:00 +0000 Making frontier cybersecurity capabilities available to defenders https://www.anthropic.com/news/claude-code-security Making frontier cybersecurity capabilities available to defenders https://www.anthropic.com/news/claude-code-security Announcements Fri, 20 Feb 2026 00:00:00 +0000 Anthropic and Infosys collaborate to build AI agents for telecommunications and other regulated industries https://www.anthropic.com/news/anthropic-infosys Anthropic and Infosys collaborate to build AI agents for telecommunications and other regulated industries https://www.anthropic.com/news/anthropic-infosys Announcements Tue, 17 Feb 2026 00:00:00 +0000 Introducing Claude Sonnet 4.6 https://www.anthropic.com/news/claude-sonnet-4-6 Introducing Claude Sonnet 4.6 https://www.anthropic.com/news/claude-sonnet-4-6 Product Tue, 17 Feb 2026 00:00:00 +0000 Anthropic and the Government of Rwanda sign MOU for AI in health and education https://www.anthropic.com/news/anthropic-rwanda-mou Anthropic and the Government of Rwanda sign MOU for AI in health and education https://www.anthropic.com/news/anthropic-rwanda-mou Announcements Tue, 17 Feb 2026 00:00:00 +0000 Anthropic opens Bengaluru office and announces new partnerships across India https://www.anthropic.com/news/bengaluru-office-partnerships-across-india Anthropic opens Bengaluru office and announces new partnerships across India https://www.anthropic.com/news/bengaluru-office-partnerships-across-india Announcements Mon, 16 Feb 2026 00:00:00 +0000 Chris Liddell appointed to Anthropic’s board of directors https://www.anthropic.com/news/chris-liddell-appointed-anthropic-board Chris Liddell appointed to Anthropic’s board of directors https://www.anthropic.com/news/chris-liddell-appointed-anthropic-board Announcements Fri, 13 Feb 2026 00:00:00 +0000 Anthropic partners with CodePath to bring Claude to the US’s largest collegiate computer science program https://www.anthropic.com/news/anthropic-codepath-partnership Anthropic partners with CodePath to bring Claude to the US’s largest collegiate computer science program https://www.anthropic.com/news/anthropic-codepath-partnership Announcements Fri, 13 Feb 2026 00:00:00 +0000 Anthropic is donating $20 million to Public First Action https://www.anthropic.com/news/donate-public-first-action Anthropic is donating $20 million to Public First Action https://www.anthropic.com/news/donate-public-first-action Policy Thu, 12 Feb 2026 00:00:00 +0000 Anthropic raises $30 billion in Series G funding at $380 billion post-money valuation https://www.anthropic.com/news/anthropic-raises-30-billion-series-g-funding-380-billion-post-money-valuation Anthropic raises $30 billion in Series G funding at $380 billion post-money valuation https://www.anthropic.com/news/anthropic-raises-30-billion-series-g-funding-380-billion-post-money-valuation Announcements Thu, 12 Feb 2026 00:00:00 +0000 Covering electricity price increases from our data centers https://www.anthropic.com/news/covering-electricity-price-increases Covering electricity price increases from our data centers https://www.anthropic.com/news/covering-electricity-price-increases Policy Wed, 11 Feb 2026 00:00:00 +0000 Introducing Claude Opus 4.6 https://www.anthropic.com/news/claude-opus-4-6 Introducing Claude Opus 4.6 https://www.anthropic.com/news/claude-opus-4-6 Announcements Thu, 05 Feb 2026 00:00:00 +0000 Claude is a space to think https://www.anthropic.com/news/claude-is-a-space-to-think Claude is a space to think https://www.anthropic.com/news/claude-is-a-space-to-think Announcements Wed, 04 Feb 2026 00:00:00 +0000 Apple’s Xcode now supports the Claude Agent SDK https://www.anthropic.com/news/apple-xcode-claude-agent-sdk Apple’s Xcode now supports the Claude Agent SDK https://www.anthropic.com/news/apple-xcode-claude-agent-sdk Product Tue, 03 Feb 2026 00:00:00 +0000 Anthropic partners with Allen Institute and Howard Hughes Medical Institute to accelerate scientific discovery https://www.anthropic.com/news/anthropic-partners-with-allen-institute-and-howard-hughes-medical-institute Anthropic partners with Allen Institute and Howard Hughes Medical Institute to accelerate scientific discovery https://www.anthropic.com/news/anthropic-partners-with-allen-institute-and-howard-hughes-medical-institute Societal Impacts Mon, 02 Feb 2026 00:00:00 +0000 ServiceNow chooses Claude to power customer apps and increase internal productivity https://www.anthropic.com/news/servicenow-anthropic-claude ServiceNow chooses Claude to power customer apps and increase internal productivity https://www.anthropic.com/news/servicenow-anthropic-claude Announcements Wed, 28 Jan 2026 00:00:00 +0000 Anthropic partners with the UK Government to bring AI assistance to GOV.UK services https://www.anthropic.com/news/gov-UK-partnership Anthropic partners with the UK Government to bring AI assistance to GOV.UK services https://www.anthropic.com/news/gov-UK-partnership Announcements Tue, 27 Jan 2026 00:00:00 +0000 Claude's new constitution https://www.anthropic.com/news/claude-new-constitution Claude's new constitution https://www.anthropic.com/news/claude-new-constitution Announcements Thu, 22 Jan 2026 00:00:00 +0000 Anthropic and Teach For All launch global AI training initiative for educators https://www.anthropic.com/news/anthropic-teach-for-all Anthropic and Teach For All launch global AI training initiative for educators https://www.anthropic.com/news/anthropic-teach-for-all Announcements Wed, 21 Jan 2026 00:00:00 +0000 Mariano-Florentino Cuéllar appointed to Anthropic’s Long-Term Benefit Trust https://www.anthropic.com/news/mariano-florentino-long-term-benefit-trust Mariano-Florentino Cuéllar appointed to Anthropic’s Long-Term Benefit Trust https://www.anthropic.com/news/mariano-florentino-long-term-benefit-trust Announcements Wed, 21 Jan 2026 00:00:00 +0000 Anthropic appoints Irina Ghose as Managing Director of India ahead of Bengaluru office opening https://www.anthropic.com/news/anthropic-appoints-irina-ghose-as-managing-director-of-india Anthropic appoints Irina Ghose as Managing Director of India ahead of Bengaluru office opening https://www.anthropic.com/news/anthropic-appoints-irina-ghose-as-managing-director-of-india Announcements Fri, 16 Jan 2026 00:00:00 +0000 How scientists are using Claude to accelerate research and discovery https://www.anthropic.com/news/accelerating-scientific-research How scientists are using Claude to accelerate research and discovery https://www.anthropic.com/news/accelerating-scientific-research Case Study Thu, 15 Jan 2026 00:00:00 +0000 Introducing Labs https://www.anthropic.com/news/introducing-anthropic-labs Introducing Labs https://www.anthropic.com/news/introducing-anthropic-labs Announcements Tue, 13 Jan 2026 00:00:00 +0000 Advancing Claude in healthcare and the life sciences https://www.anthropic.com/news/healthcare-life-sciences Advancing Claude in healthcare and the life sciences https://www.anthropic.com/news/healthcare-life-sciences Announcements Sun, 11 Jan 2026 00:00:00 +0000 Sharing our compliance framework for California's Transparency in Frontier AI Act https://www.anthropic.com/news/compliance-framework-SB53 Sharing our compliance framework for California's Transparency in Frontier AI Act https://www.anthropic.com/news/compliance-framework-SB53 Policy Fri, 19 Dec 2025 00:00:00 +0000 Protecting the wellbeing of our users https://www.anthropic.com/news/protecting-well-being-of-users Protecting the wellbeing of our users https://www.anthropic.com/news/protecting-well-being-of-users Announcements Thu, 18 Dec 2025 00:00:00 +0000 Working with the US Department of Energy to unlock the next era of scientific discovery https://www.anthropic.com/news/genesis-mission-partnership Working with the US Department of Energy to unlock the next era of scientific discovery https://www.anthropic.com/news/genesis-mission-partnership Announcements Thu, 18 Dec 2025 00:00:00 +0000 Accenture and Anthropic launch multi-year partnership to move enterprises from AI pilots to production https://www.anthropic.com/news/anthropic-accenture-partnership Accenture and Anthropic launch multi-year partnership to move enterprises from AI pilots to production https://www.anthropic.com/news/anthropic-accenture-partnership Announcements Tue, 09 Dec 2025 00:00:00 +0000 Donating the Model Context Protocol and establishing the Agentic AI Foundation https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation Donating the Model Context Protocol and establishing the Agentic AI Foundation https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation Announcements Tue, 09 Dec 2025 00:00:00 +0000 Anthropic acquires Bun as Claude Code reaches $1B milestone https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone Anthropic acquires Bun as Claude Code reaches $1B milestone https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone Announcements Wed, 03 Dec 2025 00:00:00 +0000 Snowflake and Anthropic announce $200 million partnership to bring agentic AI to global enterprises https://www.anthropic.com/news/snowflake-anthropic-expanded-partnership Snowflake and Anthropic announce $200 million partnership to bring agentic AI to global enterprises https://www.anthropic.com/news/snowflake-anthropic-expanded-partnership Announcements Wed, 03 Dec 2025 00:00:00 +0000 Claude for Nonprofits https://www.anthropic.com/news/claude-for-nonprofits Claude for Nonprofits https://www.anthropic.com/news/claude-for-nonprofits Announcements Tue, 02 Dec 2025 00:00:00 +0000 Introducing Claude Opus 4.5 https://www.anthropic.com/news/claude-opus-4-5 Introducing Claude Opus 4.5 https://www.anthropic.com/news/claude-opus-4-5 Announcements Mon, 24 Nov 2025 00:00:00 +0000 Anthropic partners with Rwandan Government and ALX to bring AI education to hundreds of thousands of learners across Africa https://www.anthropic.com/news/rwandan-government-partnership-ai-education Anthropic partners with Rwandan Government and ALX to bring AI education to hundreds of thousands of learners across Africa https://www.anthropic.com/news/rwandan-government-partnership-ai-education Announcements Tue, 18 Nov 2025 00:00:00 +0000 Microsoft, NVIDIA, and Anthropic announce strategic partnerships https://www.anthropic.com/news/microsoft-nvidia-anthropic-announce-strategic-partnerships Microsoft, NVIDIA, and Anthropic announce strategic partnerships https://www.anthropic.com/news/microsoft-nvidia-anthropic-announce-strategic-partnerships Announcements Tue, 18 Nov 2025 00:00:00 +0000 Claude now available in Microsoft Foundry and Microsoft 365 Copilot https://www.anthropic.com/news/claude-in-microsoft-foundry Claude now available in Microsoft Foundry and Microsoft 365 Copilot https://www.anthropic.com/news/claude-in-microsoft-foundry Product Tue, 18 Nov 2025 00:00:00 +0000 Measuring political bias in Claude https://www.anthropic.com/news/political-even-handedness Measuring political bias in Claude https://www.anthropic.com/news/political-even-handedness Product Thu, 13 Nov 2025 00:00:00 +0000 The state of Maryland partners with Anthropic to better serve residents https://www.anthropic.com/news/maryland-partnership The state of Maryland partners with Anthropic to better serve residents https://www.anthropic.com/news/maryland-partnership Announcements Thu, 13 Nov 2025 00:00:00 +0000 Disrupting the first reported AI-orchestrated cyber espionage campaign https://www.anthropic.com/news/disrupting-AI-espionage Disrupting the first reported AI-orchestrated cyber espionage campaign https://www.anthropic.com/news/disrupting-AI-espionage Policy Thu, 13 Nov 2025 00:00:00 +0000 Anthropic invests $50 billion in American AI infrastructure https://www.anthropic.com/news/anthropic-invests-50-billion-in-american-ai-infrastructure Anthropic invests $50 billion in American AI infrastructure https://www.anthropic.com/news/anthropic-invests-50-billion-in-american-ai-infrastructure Announcements Wed, 12 Nov 2025 00:00:00 +0000 New offices in Paris and Munich expand Anthropic’s European presence https://www.anthropic.com/news/new-offices-in-paris-and-munich-expand-european-presence New offices in Paris and Munich expand Anthropic’s European presence https://www.anthropic.com/news/new-offices-in-paris-and-munich-expand-european-presence Announcements Fri, 07 Nov 2025 00:00:00 +0000 Launching the Anthropic Economic Futures Programme in the UK and Europe https://www.anthropic.com/news/economic-futures-uk-europe Launching the Anthropic Economic Futures Programme in the UK and Europe https://www.anthropic.com/news/economic-futures-uk-europe Economic Research Wed, 05 Nov 2025 00:00:00 +0000 Cognizant will make Claude available to 350,000 employees, accelerating enterprise AI adoption and internal transformation https://www.anthropic.com/news/cognizant-partnership Cognizant will make Claude available to 350,000 employees, accelerating enterprise AI adoption and internal transformation https://www.anthropic.com/news/cognizant-partnership Announcements Tue, 04 Nov 2025 00:00:00 +0000 Anthropic and Iceland announce one of the world’s first national AI education pilots https://www.anthropic.com/news/anthropic-and-iceland-announce-one-of-the-world-s-first-national-ai-education-pilots Anthropic and Iceland announce one of the world’s first national AI education pilots https://www.anthropic.com/news/anthropic-and-iceland-announce-one-of-the-world-s-first-national-ai-education-pilots Announcements Tue, 04 Nov 2025 00:00:00 +0000 Anthropic officially opens Tokyo office, signs Memorandum of Cooperation with the Japan AI Safety Institute https://www.anthropic.com/news/opening-our-tokyo-office Anthropic officially opens Tokyo office, signs Memorandum of Cooperation with the Japan AI Safety Institute https://www.anthropic.com/news/opening-our-tokyo-office Announcements Wed, 29 Oct 2025 00:00:00 +0000 Advancing Claude for Financial Services https://www.anthropic.com/news/advancing-claude-for-financial-services Advancing Claude for Financial Services https://www.anthropic.com/news/advancing-claude-for-financial-services Announcements Mon, 27 Oct 2025 00:00:00 +0000 Expanding our use of Google Cloud TPUs and Services https://www.anthropic.com/news/expanding-our-use-of-google-cloud-tpus-and-services Expanding our use of Google Cloud TPUs and Services https://www.anthropic.com/news/expanding-our-use-of-google-cloud-tpus-and-services Announcements Thu, 23 Oct 2025 00:00:00 +0000 Seoul becomes Anthropic’s third office in Asia-Pacific as we continue our international growth https://www.anthropic.com/news/seoul-becomes-third-anthropic-office-in-asia-pacific Seoul becomes Anthropic’s third office in Asia-Pacific as we continue our international growth https://www.anthropic.com/news/seoul-becomes-third-anthropic-office-in-asia-pacific Announcements Thu, 23 Oct 2025 00:00:00 +0000 A statement from Dario Amodei on Anthropic's commitment to American AI leadership https://www.anthropic.com/news/statement-dario-amodei-american-ai-leadership A statement from Dario Amodei on Anthropic's commitment to American AI leadership https://www.anthropic.com/news/statement-dario-amodei-american-ai-leadership Announcements Tue, 21 Oct 2025 00:00:00 +0000 Claude for Life Sciences https://www.anthropic.com/news/claude-for-life-sciences Claude for Life Sciences https://www.anthropic.com/news/claude-for-life-sciences Announcements Mon, 20 Oct 2025 00:00:00 +0000 Introducing Claude Haiku 4.5 https://www.anthropic.com/news/claude-haiku-4-5 Introducing Claude Haiku 4.5 https://www.anthropic.com/news/claude-haiku-4-5 Product Wed, 15 Oct 2025 00:00:00 +0000 Anthropic and Salesforce expand partnership to bring Claude to regulated industries https://www.anthropic.com/news/salesforce-anthropic-expanded-partnership Anthropic and Salesforce expand partnership to bring Claude to regulated industries https://www.anthropic.com/news/salesforce-anthropic-expanded-partnership Announcements Tue, 14 Oct 2025 00:00:00 +0000 Rahul Patil joins Anthropic as Chief Technology Officer https://www.anthropic.com/news/rahul-patil-joins-anthropic Rahul Patil joins Anthropic as Chief Technology Officer https://www.anthropic.com/news/rahul-patil-joins-anthropic Announcements Tue, 07 Oct 2025 00:00:00 +0000 Expanding our global operations to India with our second Asia Pacific office https://www.anthropic.com/news/expanding-global-operations-to-india Expanding our global operations to India with our second Asia Pacific office https://www.anthropic.com/news/expanding-global-operations-to-india Announcements Tue, 07 Oct 2025 00:00:00 +0000 Deloitte will make Claude available to 470,000 people across its global network https://www.anthropic.com/news/deloitte-anthropic-partnership Deloitte will make Claude available to 470,000 people across its global network https://www.anthropic.com/news/deloitte-anthropic-partnership Announcements Mon, 06 Oct 2025 00:00:00 +0000 Introducing Claude Sonnet 4.5 https://www.anthropic.com/news/claude-sonnet-4-5 Introducing Claude Sonnet 4.5 https://www.anthropic.com/news/claude-sonnet-4-5 Announcements Mon, 29 Sep 2025 00:00:00 +0000 Enabling Claude Code to work more autonomously https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously Enabling Claude Code to work more autonomously https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously Product Mon, 29 Sep 2025 00:00:00 +0000 Anthropic expands global leadership in enterprise AI, naming Chris Ciauri as Managing Director of International https://www.anthropic.com/news/anthropic-expands-global-leadership-in-enterprise-ai-naming-chris-ciauri-as-managing-director-of Anthropic expands global leadership in enterprise AI, naming Chris Ciauri as Managing Director of International https://www.anthropic.com/news/anthropic-expands-global-leadership-in-enterprise-ai-naming-chris-ciauri-as-managing-director-of Announcements Fri, 26 Sep 2025 00:00:00 +0000 Claude is now generally available in Xcode https://www.anthropic.com/news/claude-in-xcode Claude is now generally available in Xcode https://www.anthropic.com/news/claude-in-xcode Product Mon, 15 Sep 2025 00:00:00 +0000 Strengthening our safeguards through collaboration with US CAISI and UK AISI https://www.anthropic.com/news/strengthening-our-safeguards-through-collaboration-with-us-caisi-and-uk-aisi Strengthening our safeguards through collaboration with US CAISI and UK AISI https://www.anthropic.com/news/strengthening-our-safeguards-through-collaboration-with-us-caisi-and-uk-aisi Announcements Fri, 12 Sep 2025 00:00:00 +0000 Anthropic is endorsing SB 53 https://www.anthropic.com/news/anthropic-is-endorsing-sb-53 Anthropic is endorsing SB 53 https://www.anthropic.com/news/anthropic-is-endorsing-sb-53 Announcements Mon, 08 Sep 2025 00:00:00 +0000 Anthropic Signs White House Pledge to America's Youth: Investing in AI Education https://www.anthropic.com/news/anthropic-signs-pledge-to-americas-youth-investing-in-ai-education Anthropic Signs White House Pledge to America's Youth: Investing in AI Education https://www.anthropic.com/news/anthropic-signs-pledge-to-americas-youth-investing-in-ai-education Announcements Thu, 04 Sep 2025 00:00:00 +0000 Updating restrictions of sales to unsupported regions https://www.anthropic.com/news/updating-restrictions-of-sales-to-unsupported-regions Updating restrictions of sales to unsupported regions https://www.anthropic.com/news/updating-restrictions-of-sales-to-unsupported-regions Announcements Thu, 04 Sep 2025 00:00:00 +0000 Anthropic raises $13B Series F at $183B post-money valuation https://www.anthropic.com/news/anthropic-raises-series-f-at-usd183b-post-money-valuation Anthropic raises $13B Series F at $183B post-money valuation https://www.anthropic.com/news/anthropic-raises-series-f-at-usd183b-post-money-valuation Announcements Tue, 02 Sep 2025 00:00:00 +0000 Updates to Consumer Terms and Privacy Policy https://www.anthropic.com/news/updates-to-our-consumer-terms Updates to Consumer Terms and Privacy Policy https://www.anthropic.com/news/updates-to-our-consumer-terms Product Thu, 28 Aug 2025 00:00:00 +0000 Anthropic Education Report: How educators use Claude https://www.anthropic.com/news/anthropic-education-report-how-educators-use-claude Anthropic Education Report: How educators use Claude https://www.anthropic.com/news/anthropic-education-report-how-educators-use-claude Societal Impacts Wed, 27 Aug 2025 00:00:00 +0000 Introducing the Anthropic National Security and Public Sector Advisory Council https://www.anthropic.com/news/introducing-the-anthropic-national-security-and-public-sector-advisory-council Introducing the Anthropic National Security and Public Sector Advisory Council https://www.anthropic.com/news/introducing-the-anthropic-national-security-and-public-sector-advisory-council Announcements Wed, 27 Aug 2025 00:00:00 +0000 Detecting and countering misuse of AI: August 2025 https://www.anthropic.com/news/detecting-countering-misuse-aug-2025 Detecting and countering misuse of AI: August 2025 https://www.anthropic.com/news/detecting-countering-misuse-aug-2025 Announcements Wed, 27 Aug 2025 00:00:00 +0000 Developing nuclear safeguards for AI through public-private partnership https://www.anthropic.com/news/developing-nuclear-safeguards-for-ai-through-public-private-partnership Developing nuclear safeguards for AI through public-private partnership https://www.anthropic.com/news/developing-nuclear-safeguards-for-ai-through-public-private-partnership Announcements Thu, 21 Aug 2025 00:00:00 +0000 Anthropic launches higher education advisory board and AI Fluency courses https://www.anthropic.com/news/anthropic-higher-education-initiatives Anthropic launches higher education advisory board and AI Fluency courses https://www.anthropic.com/news/anthropic-higher-education-initiatives Announcements Thu, 21 Aug 2025 00:00:00 +0000 Claude Code and new admin controls for business plans https://www.anthropic.com/news/claude-code-on-team-and-enterprise Claude Code and new admin controls for business plans https://www.anthropic.com/news/claude-code-on-team-and-enterprise Product Wed, 20 Aug 2025 00:00:00 +0000 Usage policy update https://www.anthropic.com/news/usage-policy-update Usage policy update https://www.anthropic.com/news/usage-policy-update Policy Fri, 15 Aug 2025 00:00:00 +0000 Offering expanded Claude access across all three branches of the U.S. government https://www.anthropic.com/news/offering-expanded-claude-access-across-all-three-branches-of-government Offering expanded Claude access across all three branches of the U.S. government https://www.anthropic.com/news/offering-expanded-claude-access-across-all-three-branches-of-government Announcements Tue, 12 Aug 2025 00:00:00 +0000 Building safeguards for Claude https://www.anthropic.com/news/building-safeguards-for-claude Building safeguards for Claude https://www.anthropic.com/news/building-safeguards-for-claude Product Tue, 12 Aug 2025 00:00:00 +0000 Anthropic appoints Hidetoshi Tojo as Head of Japan and announces hiring plans https://www.anthropic.com/news/head-of-japan-hiring-plans Anthropic appoints Hidetoshi Tojo as Head of Japan and announces hiring plans https://www.anthropic.com/news/head-of-japan-hiring-plans Announcements Wed, 06 Aug 2025 00:00:00 +0000 Federal government departments and agencies can now purchase Claude through the GSA schedule https://www.anthropic.com/news/federal-government-departments-and-agencies-can-now-purchase-claude-through-the-gsa-schedule Federal government departments and agencies can now purchase Claude through the GSA schedule https://www.anthropic.com/news/federal-government-departments-and-agencies-can-now-purchase-claude-through-the-gsa-schedule Announcements Tue, 05 Aug 2025 00:00:00 +0000 Claude Opus 4.1 https://www.anthropic.com/news/claude-opus-4-1 Claude Opus 4.1 https://www.anthropic.com/news/claude-opus-4-1 Announcements Tue, 05 Aug 2025 00:00:00 +0000 Our framework for developing safe and trustworthy agents https://www.anthropic.com/news/our-framework-for-developing-safe-and-trustworthy-agents Our framework for developing safe and trustworthy agents https://www.anthropic.com/news/our-framework-for-developing-safe-and-trustworthy-agents Policy Mon, 04 Aug 2025 00:00:00 +0000 Anthropic Signs CMS Health Tech Ecosystem Pledge to Advance Healthcare Interoperability https://www.anthropic.com/news/anthropic-signs-cms-health-tech-ecosystem-pledge-to-advance-healthcare-interoperability Anthropic Signs CMS Health Tech Ecosystem Pledge to Advance Healthcare Interoperability https://www.anthropic.com/news/anthropic-signs-cms-health-tech-ecosystem-pledge-to-advance-healthcare-interoperability Policy Wed, 30 Jul 2025 00:00:00 +0000 Anthropic partners with the University of Chicago’s Becker Friedman Institute on AI economic research https://www.anthropic.com/news/anthropic-partners-with-the-university-of-chicago-s-becker-friedman-institute-on-ai-economic Anthropic partners with the University of Chicago’s Becker Friedman Institute on AI economic research https://www.anthropic.com/news/anthropic-partners-with-the-university-of-chicago-s-becker-friedman-institute-on-ai-economic Announcements Wed, 23 Jul 2025 00:00:00 +0000 Thoughts on America’s AI Action Plan https://www.anthropic.com/news/thoughts-on-america-s-ai-action-plan Thoughts on America’s AI Action Plan https://www.anthropic.com/news/thoughts-on-america-s-ai-action-plan Policy Wed, 23 Jul 2025 00:00:00 +0000 Anthropic to sign the EU Code of Practice https://www.anthropic.com/news/eu-code-practice Anthropic to sign the EU Code of Practice https://www.anthropic.com/news/eu-code-practice Policy Mon, 21 Jul 2025 00:00:00 +0000 Build AI in America https://www.anthropic.com/news/build-ai-in-america Build AI in America https://www.anthropic.com/news/build-ai-in-america Policy Mon, 21 Jul 2025 00:00:00 +0000 Investing in energy to secure America's AI future https://www.anthropic.com/news/investing-in-energy-to-secure-america-s-ai-future Investing in energy to secure America's AI future https://www.anthropic.com/news/investing-in-energy-to-secure-america-s-ai-future Alignment Tue, 15 Jul 2025 00:00:00 +0000 Claude for Financial Services https://www.anthropic.com/news/claude-for-financial-services Claude for Financial Services https://www.anthropic.com/news/claude-for-financial-services Product Tue, 15 Jul 2025 00:00:00 +0000 Paul Smith to join Anthropic as Chief Commercial Officer https://www.anthropic.com/news/paul-smith-to-join-anthropic Paul Smith to join Anthropic as Chief Commercial Officer https://www.anthropic.com/news/paul-smith-to-join-anthropic Announcements Tue, 15 Jul 2025 00:00:00 +0000 Anthropic and the Department of Defense to advance responsible AI in defense operations https://www.anthropic.com/news/anthropic-and-the-department-of-defense-to-advance-responsible-ai-in-defense-operations Anthropic and the Department of Defense to advance responsible AI in defense operations https://www.anthropic.com/news/anthropic-and-the-department-of-defense-to-advance-responsible-ai-in-defense-operations Announcements Mon, 14 Jul 2025 00:00:00 +0000 Lawrence Livermore National Laboratory expands Claude for Enterprise use to empower scientists and researchers https://www.anthropic.com/news/lawrence-livermore-national-laboratory-expands-claude-for-enterprise-to-empower-scientists-and Lawrence Livermore National Laboratory expands Claude for Enterprise use to empower scientists and researchers https://www.anthropic.com/news/lawrence-livermore-national-laboratory-expands-claude-for-enterprise-to-empower-scientists-and Announcements Wed, 09 Jul 2025 00:00:00 +0000 Advancing Claude for Education https://www.anthropic.com/news/advancing-claude-for-education Advancing Claude for Education https://www.anthropic.com/news/advancing-claude-for-education Product Wed, 09 Jul 2025 00:00:00 +0000 The need for transparency in Frontier AI https://www.anthropic.com/news/the-need-for-transparency-in-frontier-ai The need for transparency in Frontier AI https://www.anthropic.com/news/the-need-for-transparency-in-frontier-ai Policy Mon, 07 Jul 2025 00:00:00 +0000 How people use Claude for support, advice, and companionship https://www.anthropic.com/news/how-people-use-claude-for-support-advice-and-companionship How people use Claude for support, advice, and companionship https://www.anthropic.com/news/how-people-use-claude-for-support-advice-and-companionship Societal Impacts Fri, 27 Jun 2025 00:00:00 +0000 Introducing the Anthropic Economic Futures Program https://www.anthropic.com/news/introducing-the-anthropic-economic-futures-program Introducing the Anthropic Economic Futures Program https://www.anthropic.com/news/introducing-the-anthropic-economic-futures-program Announcements Fri, 27 Jun 2025 00:00:00 +0000 Claude in Amazon Bedrock: Approved for use in FedRAMP High and DoD IL4/5 workloads https://www.anthropic.com/news/claude-in-amazon-bedrock-fedramp-high Claude in Amazon Bedrock: Approved for use in FedRAMP High and DoD IL4/5 workloads https://www.anthropic.com/news/claude-in-amazon-bedrock-fedramp-high Announcements Wed, 11 Jun 2025 00:00:00 +0000 National security expert Richard Fontaine appointed to Anthropic’s long-term benefit trust https://www.anthropic.com/news/national-security-expert-richard-fontaine-appointed-to-anthropic-s-long-term-benefit-trust National security expert Richard Fontaine appointed to Anthropic’s long-term benefit trust https://www.anthropic.com/news/national-security-expert-richard-fontaine-appointed-to-anthropic-s-long-term-benefit-trust Announcements Sat, 07 Jun 2025 00:00:00 +0000 Claude Gov models for U.S. national security customers https://www.anthropic.com/news/claude-gov-models-for-u-s-national-security-customers Claude Gov models for U.S. national security customers https://www.anthropic.com/news/claude-gov-models-for-u-s-national-security-customers Announcements Fri, 06 Jun 2025 00:00:00 +0000 Reed Hastings appointed to Anthropic’s board of directors https://www.anthropic.com/news/reed-hastings Reed Hastings appointed to Anthropic’s board of directors https://www.anthropic.com/news/reed-hastings Announcements Wed, 28 May 2025 00:00:00 +0000 Introducing Claude 4 https://www.anthropic.com/news/claude-4 Introducing Claude 4 https://www.anthropic.com/news/claude-4 Announcements Thu, 22 May 2025 00:00:00 +0000 Activating AI Safety Level 3 protections https://www.anthropic.com/news/activating-asl3-protections Activating AI Safety Level 3 protections https://www.anthropic.com/news/activating-asl3-protections Policy Thu, 22 May 2025 00:00:00 +0000 Testing our safety defenses with a new bug bounty program https://www.anthropic.com/news/testing-our-safety-defenses-with-a-new-bug-bounty-program Testing our safety defenses with a new bug bounty program https://www.anthropic.com/news/testing-our-safety-defenses-with-a-new-bug-bounty-program Announcements Wed, 14 May 2025 00:00:00 +0000 Introducing Anthropic's AI for Science Program https://www.anthropic.com/news/ai-for-science-program Introducing Anthropic's AI for Science Program https://www.anthropic.com/news/ai-for-science-program Announcements Mon, 05 May 2025 00:00:00 +0000 Securing America's compute advantage: Anthropic’s position on the diffusion rule https://www.anthropic.com/news/securing-america-s-compute-advantage-anthropic-s-position-on-the-diffusion-rule Securing America's compute advantage: Anthropic’s position on the diffusion rule https://www.anthropic.com/news/securing-america-s-compute-advantage-anthropic-s-position-on-the-diffusion-rule Policy Wed, 30 Apr 2025 00:00:00 +0000 Introducing the Anthropic Economic Advisory Council https://www.anthropic.com/news/introducing-the-anthropic-economic-advisory-council Introducing the Anthropic Economic Advisory Council https://www.anthropic.com/news/introducing-the-anthropic-economic-advisory-council Announcements Mon, 28 Apr 2025 00:00:00 +0000 Detecting and countering malicious uses of Claude: March 2025 https://www.anthropic.com/news/detecting-and-countering-malicious-uses-of-claude-march-2025 Detecting and countering malicious uses of Claude: March 2025 https://www.anthropic.com/news/detecting-and-countering-malicious-uses-of-claude-march-2025 Societal Impacts Wed, 23 Apr 2025 00:00:00 +0000 Our approach to understanding and addressing AI harms https://www.anthropic.com/news/our-approach-to-understanding-and-addressing-ai-harms Our approach to understanding and addressing AI harms https://www.anthropic.com/news/our-approach-to-understanding-and-addressing-ai-harms Policy Mon, 21 Apr 2025 00:00:00 +0000 Anthropic appoints Guillaume Princen as Head of EMEA and announces 100+ new roles across the region https://www.anthropic.com/news/head-of-EMEA-new-roles Anthropic appoints Guillaume Princen as Head of EMEA and announces 100+ new roles across the region https://www.anthropic.com/news/head-of-EMEA-new-roles Announcements Tue, 08 Apr 2025 00:00:00 +0000 Anthropic Education Report: How university students use Claude https://www.anthropic.com/news/anthropic-education-report-how-university-students-use-claude Anthropic Education Report: How university students use Claude https://www.anthropic.com/news/anthropic-education-report-how-university-students-use-claude Announcements Tue, 08 Apr 2025 00:00:00 +0000 Introducing Anthropic's first developer conference: Code with Claude https://www.anthropic.com/news/Introducing-code-with-claude Introducing Anthropic's first developer conference: Code with Claude https://www.anthropic.com/news/Introducing-code-with-claude Event Thu, 03 Apr 2025 00:00:00 +0000 Introducing Claude for Education https://www.anthropic.com/news/introducing-claude-for-education Introducing Claude for Education https://www.anthropic.com/news/introducing-claude-for-education Education Wed, 02 Apr 2025 00:00:00 +0000 Anthropic Economic Index: Insights from Claude 3.7 Sonnet https://www.anthropic.com/news/anthropic-economic-index-insights-from-claude-sonnet-3-7 Anthropic Economic Index: Insights from Claude 3.7 Sonnet https://www.anthropic.com/news/anthropic-economic-index-insights-from-claude-sonnet-3-7 Societal Impacts Thu, 27 Mar 2025 00:00:00 +0000 Progress from our Frontier Red Team https://www.anthropic.com/news/strategic-warning-for-ai-risk-progress-and-insights-from-our-frontier-red-team Progress from our Frontier Red Team https://www.anthropic.com/news/strategic-warning-for-ai-risk-progress-and-insights-from-our-frontier-red-team Policy Wed, 19 Mar 2025 00:00:00 +0000 Anthropic’s response to Governor Newsom’s AI working group draft report https://www.anthropic.com/news/anthropic-s-response-to-governor-newsom-s-ai-working-group-draft-report Anthropic’s response to Governor Newsom’s AI working group draft report https://www.anthropic.com/news/anthropic-s-response-to-governor-newsom-s-ai-working-group-draft-report Societal Impacts Wed, 19 Mar 2025 00:00:00 +0000 Anthropic’s recommendations to OSTP for the U.S. AI action plan https://www.anthropic.com/news/anthropic-s-recommendations-ostp-u-s-ai-action-plan Anthropic’s recommendations to OSTP for the U.S. AI action plan https://www.anthropic.com/news/anthropic-s-recommendations-ostp-u-s-ai-action-plan Societal Impacts Thu, 06 Mar 2025 00:00:00 +0000 Anthropic raises Series E at $61.5B post-money valuation https://www.anthropic.com/news/anthropic-raises-series-e-at-usd61-5b-post-money-valuation Anthropic raises Series E at $61.5B post-money valuation https://www.anthropic.com/news/anthropic-raises-series-e-at-usd61-5b-post-money-valuation Announcements Mon, 03 Mar 2025 00:00:00 +0000 Anthropic partners with U.S. National Labs for first 1,000 Scientist AI Jam https://www.anthropic.com/news/anthropic-partners-with-u-s-national-labs-for-first-1-000-scientist-ai-jam Anthropic partners with U.S. National Labs for first 1,000 Scientist AI Jam https://www.anthropic.com/news/anthropic-partners-with-u-s-national-labs-for-first-1-000-scientist-ai-jam Announcements Fri, 28 Feb 2025 00:00:00 +0000 Introducing Anthropic's Transparency Hub https://www.anthropic.com/news/introducing-anthropic-transparency-hub Introducing Anthropic's Transparency Hub https://www.anthropic.com/news/introducing-anthropic-transparency-hub Societal Impacts Thu, 27 Feb 2025 00:00:00 +0000 Claude and Alexa+ https://www.anthropic.com/news/claude-and-alexa-plus Claude and Alexa+ https://www.anthropic.com/news/claude-and-alexa-plus Announcements Wed, 26 Feb 2025 00:00:00 +0000 Claude 3.7 Sonnet and Claude Code https://www.anthropic.com/news/claude-3-7-sonnet Claude 3.7 Sonnet and Claude Code https://www.anthropic.com/news/claude-3-7-sonnet Announcements Mon, 24 Feb 2025 00:00:00 +0000 Anthropic signs MOU with UK Government to explore how AI can transform UK public services https://www.anthropic.com/news/mou-uk-government Anthropic signs MOU with UK Government to explore how AI can transform UK public services https://www.anthropic.com/news/mou-uk-government Announcements Fri, 14 Feb 2025 00:00:00 +0000 Statement from Dario Amodei on the Paris AI Action Summit https://www.anthropic.com/news/paris-ai-summit Statement from Dario Amodei on the Paris AI Action Summit https://www.anthropic.com/news/paris-ai-summit Announcements Tue, 11 Feb 2025 00:00:00 +0000 The Anthropic Economic Index https://www.anthropic.com/news/the-anthropic-economic-index The Anthropic Economic Index https://www.anthropic.com/news/the-anthropic-economic-index Societal Impacts Mon, 10 Feb 2025 00:00:00 +0000 Lyft to bring Claude to more than 40 million riders and over 1 million drivers https://www.anthropic.com/news/lyft-announcement Lyft to bring Claude to more than 40 million riders and over 1 million drivers https://www.anthropic.com/news/lyft-announcement Announcements Thu, 06 Feb 2025 00:00:00 +0000 Anthropic achieves ISO 42001 certification for responsible AI https://www.anthropic.com/news/anthropic-achieves-iso-42001-certification-for-responsible-ai Anthropic achieves ISO 42001 certification for responsible AI https://www.anthropic.com/news/anthropic-achieves-iso-42001-certification-for-responsible-ai Announcements Mon, 13 Jan 2025 00:00:00 +0000 Elections and AI in 2024: observations and learnings https://www.anthropic.com/news/elections-ai-2024 Elections and AI in 2024: observations and learnings https://www.anthropic.com/news/elections-ai-2024 Societal Impacts Thu, 12 Dec 2024 00:00:00 +0000 Introducing the Model Context Protocol https://www.anthropic.com/news/model-context-protocol Introducing the Model Context Protocol https://www.anthropic.com/news/model-context-protocol Announcements Mon, 25 Nov 2024 00:00:00 +0000 Powering the next generation of AI development with AWS https://www.anthropic.com/news/anthropic-amazon-trainium Powering the next generation of AI development with AWS https://www.anthropic.com/news/anthropic-amazon-trainium Announcements Fri, 22 Nov 2024 00:00:00 +0000 The case for targeted regulation https://www.anthropic.com/news/the-case-for-targeted-regulation The case for targeted regulation https://www.anthropic.com/news/the-case-for-targeted-regulation Policy Thu, 31 Oct 2024 00:00:00 +0000 Claude 3.5 Sonnet on GitHub Copilot https://www.anthropic.com/news/github-copilot Claude 3.5 Sonnet on GitHub Copilot https://www.anthropic.com/news/github-copilot Announcements Tue, 29 Oct 2024 00:00:00 +0000 Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Haiku https://www.anthropic.com/news/3-5-models-and-computer-use Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Haiku https://www.anthropic.com/news/3-5-models-and-computer-use Announcements Tue, 22 Oct 2024 00:00:00 +0000 Developing a computer use model https://www.anthropic.com/news/developing-computer-use Developing a computer use model https://www.anthropic.com/news/developing-computer-use Announcements Tue, 22 Oct 2024 00:00:00 +0000 Announcing our updated Responsible Scaling Policy https://www.anthropic.com/news/announcing-our-updated-responsible-scaling-policy Announcing our updated Responsible Scaling Policy https://www.anthropic.com/news/announcing-our-updated-responsible-scaling-policy Announcements Tue, 15 Oct 2024 00:00:00 +0000 U.S. Elections Readiness https://www.anthropic.com/news/us-elections-readiness U.S. Elections Readiness https://www.anthropic.com/news/us-elections-readiness Societal Impacts Tue, 08 Oct 2024 00:00:00 +0000 Introducing Contextual Retrieval https://www.anthropic.com/news/contextual-retrieval Introducing Contextual Retrieval https://www.anthropic.com/news/contextual-retrieval Product Thu, 19 Sep 2024 00:00:00 +0000 Salesforce teams up with Anthropic to enhance Einstein capabilities with Claude https://www.anthropic.com/news/salesforce-partnership Salesforce teams up with Anthropic to enhance Einstein capabilities with Claude https://www.anthropic.com/news/salesforce-partnership Announcements Tue, 03 Sep 2024 00:00:00 +0000 Expanding our model safety bug bounty program https://www.anthropic.com/news/model-safety-bug-bounty Expanding our model safety bug bounty program https://www.anthropic.com/news/model-safety-bug-bounty Announcements Thu, 08 Aug 2024 00:00:00 +0000 Claude is now available in Brazil https://www.anthropic.com/news/claude-brazil Claude is now available in Brazil https://www.anthropic.com/news/claude-brazil Announcements Thu, 01 Aug 2024 00:00:00 +0000 Anthropic partners with Menlo Ventures to launch Anthology Fund https://www.anthropic.com/news/anthropic-partners-with-menlo-ventures-to-launch-anthology-fund Anthropic partners with Menlo Ventures to launch Anthology Fund https://www.anthropic.com/news/anthropic-partners-with-menlo-ventures-to-launch-anthology-fund Announcements Wed, 17 Jul 2024 00:00:00 +0000 Fine-tune Claude 3 Haiku in Amazon Bedrock https://www.anthropic.com/news/fine-tune-claude-3-haiku Fine-tune Claude 3 Haiku in Amazon Bedrock https://www.anthropic.com/news/fine-tune-claude-3-haiku Product Thu, 11 Jul 2024 00:00:00 +0000 A new initiative for developing third-party model evaluations https://www.anthropic.com/news/a-new-initiative-for-developing-third-party-model-evaluations A new initiative for developing third-party model evaluations https://www.anthropic.com/news/a-new-initiative-for-developing-third-party-model-evaluations Announcements Mon, 01 Jul 2024 00:00:00 +0000 Expanding access to Claude for government https://www.anthropic.com/news/expanding-access-to-claude-for-government Expanding access to Claude for government https://www.anthropic.com/news/expanding-access-to-claude-for-government Announcements Wed, 26 Jun 2024 00:00:00 +0000 Collaborate with Claude on Projects https://www.anthropic.com/news/projects Collaborate with Claude on Projects https://www.anthropic.com/news/projects Product Tue, 25 Jun 2024 00:00:00 +0000 Claude 3.5 Sonnet https://www.anthropic.com/news/claude-3-5-sonnet Claude 3.5 Sonnet https://www.anthropic.com/news/claude-3-5-sonnet Announcements Fri, 21 Jun 2024 00:00:00 +0000 Challenges in red teaming AI systems https://www.anthropic.com/news/challenges-in-red-teaming-ai-systems Challenges in red teaming AI systems https://www.anthropic.com/news/challenges-in-red-teaming-ai-systems Policy Wed, 12 Jun 2024 00:00:00 +0000 Testing and mitigating elections-related risks https://www.anthropic.com/news/testing-and-mitigating-elections-related-risks Testing and mitigating elections-related risks https://www.anthropic.com/news/testing-and-mitigating-elections-related-risks Policy Thu, 06 Jun 2024 00:00:00 +0000 Introducing Claude to Canada https://www.anthropic.com/news/introducing-claude-to-canada Introducing Claude to Canada https://www.anthropic.com/news/introducing-claude-to-canada Announcements Wed, 05 Jun 2024 00:00:00 +0000 Jay Kreps appointed to Anthropic's Board of Directors https://www.anthropic.com/news/jay-kreps-appointed-to-board-of-directors Jay Kreps appointed to Anthropic's Board of Directors https://www.anthropic.com/news/jay-kreps-appointed-to-board-of-directors Announcements Wed, 29 May 2024 00:00:00 +0000 Golden Gate Claude https://www.anthropic.com/news/golden-gate-claude Golden Gate Claude https://www.anthropic.com/news/golden-gate-claude Product Thu, 23 May 2024 00:00:00 +0000 Krishna Rao joins Anthropic as Chief Financial Officer https://www.anthropic.com/news/krishna-rao-joins-anthropic Krishna Rao joins Anthropic as Chief Financial Officer https://www.anthropic.com/news/krishna-rao-joins-anthropic Announcements Tue, 21 May 2024 00:00:00 +0000 Reflections on our Responsible Scaling Policy https://www.anthropic.com/news/reflections-on-our-responsible-scaling-policy Reflections on our Responsible Scaling Policy https://www.anthropic.com/news/reflections-on-our-responsible-scaling-policy Policy Mon, 20 May 2024 00:00:00 +0000 Mike Krieger joins Anthropic as Chief Product Officer https://www.anthropic.com/news/mike-krieger-joins-anthropic Mike Krieger joins Anthropic as Chief Product Officer https://www.anthropic.com/news/mike-krieger-joins-anthropic Announcements Wed, 15 May 2024 00:00:00 +0000 Claude is now available in Europe https://www.anthropic.com/news/claude-europe Claude is now available in Europe https://www.anthropic.com/news/claude-europe Announcements Tue, 14 May 2024 00:00:00 +0000 Updating our Usage Policy https://www.anthropic.com/news/updating-our-usage-policy Updating our Usage Policy https://www.anthropic.com/news/updating-our-usage-policy Announcements Fri, 10 May 2024 00:00:00 +0000 Aligning on child safety principles https://www.anthropic.com/news/child-safety-principles Aligning on child safety principles https://www.anthropic.com/news/child-safety-principles Announcements Tue, 23 Apr 2024 00:00:00 +0000 Third-party testing as a key ingredient of AI policy https://www.anthropic.com/news/third-party-testing Third-party testing as a key ingredient of AI policy https://www.anthropic.com/news/third-party-testing Policy Mon, 25 Mar 2024 00:00:00 +0000 Anthropic, AWS, and Accenture team up to build trusted solutions for enterprises https://www.anthropic.com/news/accenture-aws-anthropic Anthropic, AWS, and Accenture team up to build trusted solutions for enterprises https://www.anthropic.com/news/accenture-aws-anthropic Announcements Wed, 20 Mar 2024 00:00:00 +0000 Claude 3 models on Vertex AI https://www.anthropic.com/news/google-vertex-general-availability Claude 3 models on Vertex AI https://www.anthropic.com/news/google-vertex-general-availability Announcements Tue, 19 Mar 2024 00:00:00 +0000 Claude 3 Haiku: our fastest model yet https://www.anthropic.com/news/claude-3-haiku Claude 3 Haiku: our fastest model yet https://www.anthropic.com/news/claude-3-haiku Announcements Wed, 13 Mar 2024 00:00:00 +0000 Introducing the next generation of Claude https://www.anthropic.com/news/claude-3-family Introducing the next generation of Claude https://www.anthropic.com/news/claude-3-family Announcements Mon, 04 Mar 2024 00:00:00 +0000 Prompt engineering for business performance https://www.anthropic.com/news/prompt-engineering-for-business-performance Prompt engineering for business performance https://www.anthropic.com/news/prompt-engineering-for-business-performance Product Thu, 29 Feb 2024 00:00:00 +0000 Preparing for global elections in 2024 https://www.anthropic.com/news/preparing-for-global-elections-in-2024 Preparing for global elections in 2024 https://www.anthropic.com/news/preparing-for-global-elections-in-2024 Policy Fri, 16 Feb 2024 00:00:00 +0000 Expanded legal protections and improvements to our API https://www.anthropic.com/news/expanded-legal-protections-api-improvements Expanded legal protections and improvements to our API https://www.anthropic.com/news/expanded-legal-protections-api-improvements Announcements Tue, 19 Dec 2023 00:00:00 +0000 Introducing Claude 2.1 https://www.anthropic.com/news/claude-2-1 Introducing Claude 2.1 https://www.anthropic.com/news/claude-2-1 Product Tue, 21 Nov 2023 00:00:00 +0000 Thoughts on the US Executive Order, G7 Code of Conduct, and Bletchley Park Summit https://www.anthropic.com/news/policy-recap-q4-2023 Thoughts on the US Executive Order, G7 Code of Conduct, and Bletchley Park Summit https://www.anthropic.com/news/policy-recap-q4-2023 Policy Sun, 05 Nov 2023 00:00:00 +0000 Dario Amodei’s prepared remarks from the AI Safety Summit on Anthropic’s Responsible Scaling Policy https://www.anthropic.com/news/uk-ai-safety-summit Dario Amodei’s prepared remarks from the AI Safety Summit on Anthropic’s Responsible Scaling Policy https://www.anthropic.com/news/uk-ai-safety-summit Policy Wed, 01 Nov 2023 00:00:00 +0000 Expanding access to safer AI with Amazon https://www.anthropic.com/news/anthropic-amazon Expanding access to safer AI with Amazon https://www.anthropic.com/news/anthropic-amazon Announcements Mon, 25 Sep 2023 00:00:00 +0000 Prompt engineering for Claude's long context window https://www.anthropic.com/news/prompting-long-context Prompt engineering for Claude's long context window https://www.anthropic.com/news/prompting-long-context Product Sat, 23 Sep 2023 00:00:00 +0000 The Long-Term Benefit Trust https://www.anthropic.com/news/the-long-term-benefit-trust The Long-Term Benefit Trust https://www.anthropic.com/news/the-long-term-benefit-trust Announcements Tue, 19 Sep 2023 00:00:00 +0000 Anthropic's Responsible Scaling Policy https://www.anthropic.com/news/anthropics-responsible-scaling-policy Anthropic's Responsible Scaling Policy https://www.anthropic.com/news/anthropics-responsible-scaling-policy Announcements Tue, 19 Sep 2023 00:00:00 +0000 Anthropic partners with BCG https://www.anthropic.com/news/anthropic-bcg Anthropic partners with BCG https://www.anthropic.com/news/anthropic-bcg Announcements Thu, 14 Sep 2023 00:00:00 +0000 Introducing Claude Pro https://www.anthropic.com/news/claude-pro Introducing Claude Pro https://www.anthropic.com/news/claude-pro Announcements Thu, 07 Sep 2023 00:00:00 +0000 SKT Partnership Announcement https://www.anthropic.com/news/skt-partnership-announcement SKT Partnership Announcement https://www.anthropic.com/news/skt-partnership-announcement Announcements Tue, 15 Aug 2023 00:00:00 +0000 Releasing Claude Instant 1.2 https://www.anthropic.com/news/releasing-claude-instant-1-2 Releasing Claude Instant 1.2 https://www.anthropic.com/news/releasing-claude-instant-1-2 Announcements Wed, 09 Aug 2023 00:00:00 +0000 Frontier Threats Red Teaming for AI Safety https://www.anthropic.com/news/frontier-threats-red-teaming-for-ai-safety Frontier Threats Red Teaming for AI Safety https://www.anthropic.com/news/frontier-threats-red-teaming-for-ai-safety Announcements Wed, 26 Jul 2023 00:00:00 +0000 Frontier Model Security https://www.anthropic.com/news/frontier-model-security Frontier Model Security https://www.anthropic.com/news/frontier-model-security Announcements Tue, 25 Jul 2023 00:00:00 +0000 Claude 2 https://www.anthropic.com/news/claude-2 Claude 2 https://www.anthropic.com/news/claude-2 Announcements Tue, 11 Jul 2023 00:00:00 +0000 Charting a Path to AI Accountability https://www.anthropic.com/news/charting-a-path-to-ai-accountability Charting a Path to AI Accountability https://www.anthropic.com/news/charting-a-path-to-ai-accountability Announcements Tue, 13 Jun 2023 00:00:00 +0000 Anthropic Raises $450 Million in Series C Funding to Scale Reliable AI Products https://www.anthropic.com/news/anthropic-series-c Anthropic Raises $450 Million in Series C Funding to Scale Reliable AI Products https://www.anthropic.com/news/anthropic-series-c Announcements Tue, 23 May 2023 00:00:00 +0000 Zoom Partnership and Investment in Anthropic https://www.anthropic.com/news/zoom-partnership-and-investment Zoom Partnership and Investment in Anthropic https://www.anthropic.com/news/zoom-partnership-and-investment Announcements Tue, 16 May 2023 00:00:00 +0000 Introducing 100K Context Windows https://www.anthropic.com/news/100k-context-windows Introducing 100K Context Windows https://www.anthropic.com/news/100k-context-windows Announcements Thu, 11 May 2023 00:00:00 +0000 Claude’s Constitution https://www.anthropic.com/news/claudes-constitution Claude’s Constitution https://www.anthropic.com/news/claudes-constitution Announcements Tue, 09 May 2023 00:00:00 +0000 Partnering with Scale to Bring Generative AI to Enterprises https://www.anthropic.com/news/partnering-with-scale Partnering with Scale to Bring Generative AI to Enterprises https://www.anthropic.com/news/partnering-with-scale Announcements Wed, 26 Apr 2023 00:00:00 +0000 An AI Policy Tool for Today: Ambitiously Invest in NIST https://www.anthropic.com/news/an-ai-policy-tool-for-today-ambitiously-invest-in-nist An AI Policy Tool for Today: Ambitiously Invest in NIST https://www.anthropic.com/news/an-ai-policy-tool-for-today-ambitiously-invest-in-nist Announcements Thu, 20 Apr 2023 00:00:00 +0000 Introducing Claude https://www.anthropic.com/news/introducing-claude Introducing Claude https://www.anthropic.com/news/introducing-claude Announcements Tue, 14 Mar 2023 00:00:00 +0000 Core Views on AI Safety: When, Why, What, and How https://www.anthropic.com/news/core-views-on-ai-safety Core Views on AI Safety: When, Why, What, and How https://www.anthropic.com/news/core-views-on-ai-safety Announcements Wed, 08 Mar 2023 00:00:00 +0000 Anthropic Partners with Google Cloud https://www.anthropic.com/news/anthropic-partners-with-google-cloud Anthropic Partners with Google Cloud https://www.anthropic.com/news/anthropic-partners-with-google-cloud Announcements Fri, 03 Feb 2023 00:00:00 +0000 Anthropic Raises Series B to build steerable, interpretable, robust AI systems https://www.anthropic.com/news/anthropic-raises-series-b-to-build-safe-reliable-ai Anthropic Raises Series B to build steerable, interpretable, robust AI systems https://www.anthropic.com/news/anthropic-raises-series-b-to-build-safe-reliable-ai Announcements Fri, 29 Apr 2022 00:00:00 +0000 Anthropic raises $124 million to build more reliable, general AI systems https://www.anthropic.com/news/anthropic-raises-124-million-to-build-more-reliable-general-ai-systems Anthropic raises $124 million to build more reliable, general AI systems https://www.anthropic.com/news/anthropic-raises-124-million-to-build-more-reliable-general-ai-systems Announcements Fri, 28 May 2021 00:00:00 +0000 ================================================ FILE: feeds/feed_anthropic_red.xml ================================================ Anthropic Frontier Red Team Blog https://red.anthropic.com/ Evidence-based analysis about AI's implications for cybersecurity, biosecurity, and autonomous systems http://www.rssboard.org/rss-specification python-feedgen https://www.anthropic.com/images/icons/apple-touch-icon.png Anthropic Frontier Red Team Blog https://red.anthropic.com/ en Wed, 13 May 2026 10:50:24 +0000 Assessing Claude Mythos Preview’s cybersecurity capabilities https://red.anthropic.com/2026/mythos-preview/ Claude Mythos Preview is a new general-purpose language model that is strikingly capable at computer security tasks. This post provides technical details for researchers and practitioners who want to understand exactly how we have been testing this model, and what we have found over the past month. We hope this will show why we view this as a watershed moment for security, and why we have chosen to begin a coordinated effort to reinforce the world’s cyber defenses. https://red.anthropic.com/2026/mythos-preview/ Tue, 07 Apr 2026 00:00:00 +0000 Partnering with Mozilla to improve Firefox’s security https://red.anthropic.com/2026/firefox/ In a collaboration with researchers at Mozilla, Claude Opus 4.6 discovered 22 Firefox vulnerabilities over the course of two weeks. https://red.anthropic.com/2026/firefox/ Fri, 06 Mar 2026 00:00:00 +0000 Reverse engineering Claude's CVE-2026-2796 exploit https://red.anthropic.com/2026/exploit/ This post dives deep into how Claude wrote an exploit for one of the vulnerabilities it found in Firefox. https://red.anthropic.com/2026/exploit/ Fri, 06 Mar 2026 00:00:00 +0000 LLM-discovered 0-days https://red.anthropic.com/2026/zero-days/ AI models can now find high-severity vulnerabilities at scale. This is a moment to empower defenders. We're now using Claude to find and help fix vulnerabilities in open source software. https://red.anthropic.com/2026/zero-days/ Thu, 05 Feb 2026 00:00:00 +0000 AI Models on Realistic Cyber Ranges https://red.anthropic.com/2026/cyber-toolkits-update/ In a recent evaluation of AI models’ cyber capabilities, current Claude models can now succeed at multistage attacks on networks with dozens of hosts using only standard, open-source tools, instead of the custom tools needed by previous generations. https://red.anthropic.com/2026/cyber-toolkits-update/ Fri, 16 Jan 2026 00:00:00 +0000 Finding Bugs with Claude and Property-based Testing https://red.anthropic.com/2026/property-based-testing/ Ensuring that programs are bug-free is one of the most challenging aspects of software engineering. We developed an agent that can efficiently identify bugs in large software projects. Our agent infers general properties of code that should be true, and then applies property-based testing. After extensive manual validation, we are in the process of reporting bugs in top Python packages to their developers, several of which have already been patched. https://red.anthropic.com/2026/property-based-testing/ Wed, 14 Jan 2026 00:00:00 +0000 Experimenting with AI to Defend Critical Infrastructure https://red.anthropic.com/2026/critical-infrastructure-defense/ AI could help defenders of critical infrastructure identify the vulnerabilities that attackers might exploit—and close them before they are exploited. Anthropic has partnered with Pacific Northwest National Laboratory (PNNL) to explore this defensive application of AI, demonstrating both the potential of AI-accelerated defense and the value of public-private partnerships in harnessing AI for national security. https://red.anthropic.com/2026/critical-infrastructure-defense/ Thu, 08 Jan 2026 00:00:00 +0000 Project Vend: Phase Two https://red.anthropic.com/2025/project-vend-2/ In June, we revealed that we'd set up a small shop in our San Francisco office run by an AI shopkeeper. It did not do particularly well. We made some adjustments for phase two of Project Vend. The idea of an AI running a business doesn't seem as far-fetched as it once did. But the gap between 'capable' and 'completely robust' remains wide. https://red.anthropic.com/2025/project-vend-2/ Thu, 18 Dec 2025 00:00:00 +0000 AI Agents Find Smart Contract Exploits https://red.anthropic.com/2025/smart-contracts/ We evaluated AI agents' ability to exploit smart contracts using a new benchmark comprising contracts that were actually exploited. On contracts exploited after the latest knowledge cutoffs, Claude Opus 4.5, Claude Sonnet 4.5, and GPT-5 found vulnerabilities worth a combined $4.6 million, a finding that underscores the need for proactive adoption of AI for defense. https://red.anthropic.com/2025/smart-contracts/ Mon, 01 Dec 2025 00:00:00 +0000 Project Fetch https://red.anthropic.com/2025/project-fetch/ How could frontier AI models like Claude reach beyond computers and affect the physical world? One path is through robots. We ran an experiment to see how much Claude helped Anthropic staff perform complex tasks with a robot dog. https://red.anthropic.com/2025/project-fetch/ Wed, 12 Nov 2025 00:00:00 +0000 Building AI for Cyber Defenders https://red.anthropic.com/2025/ai-for-cyber-defenders/ We invested in improving Claude's ability to help defenders detect, analyze, and remediate vulnerabilities in code and deployed systems. This work allowed Claude Sonnet 4.5 to match or eclipse Opus 4.1 in discovering code vulnerabilities and other cyber skills. Adopting and experimenting with AI will be key for defenders to keep pace. https://red.anthropic.com/2025/ai-for-cyber-defenders/ Mon, 29 Sep 2025 00:00:00 +0000 LLMs and Biorisk https://red.anthropic.com/2025/biorisk/ Our work at Anthropic is animated by the potential for AI to advance scientific discovery—especially in biology and medicine. At the same time, AI is fundamentally a dual-use technology. This article explains why we believe that evaluating biorisk and safeguarding against it is a critical element of responsible AI development. https://red.anthropic.com/2025/biorisk/ Fri, 05 Sep 2025 00:00:00 +0000 Developing Nuclear Safeguards for AI https://red.anthropic.com/2025/nuclear-safeguards/ Together with the NNSA and DOE national laboratories, we have co-developed a classifier—an AI system that automatically categorizes content—that distinguishes between concerning and benign nuclear-related conversations with high accuracy in preliminary testing. https://red.anthropic.com/2025/nuclear-safeguards/ Thu, 21 Aug 2025 00:00:00 +0000 Claude Does Cyber Competitions https://red.anthropic.com/2025/cyber-competitions/ Throughout 2025, we have been quietly entering Claude in cybersecurity competitions designed primarily for humans. In many of these competitions Claude did pretty well, often placing in the top 25% of competitors. However, it lagged behind the best human teams at the toughest challenges. https://red.anthropic.com/2025/cyber-competitions/ Sat, 09 Aug 2025 00:00:00 +0000 Cyber Evaluations of Claude 4 https://red.anthropic.com/2025/claude-4-cyber/ We partnered with Pattern Labs on a range of cybersecurity evaluations of Claude Opus 4 and Claude Sonnet 4, with Opus demonstrating especially notable improvement over previous models. https://red.anthropic.com/2025/claude-4-cyber/ Tue, 15 Jul 2025 00:00:00 +0000 Project Vend https://red.anthropic.com/2025/project-vend/index.html We let Claude manage an automated store in our office as a small business for about a month. We learned a lot about the plausible, strange, not-too-distant future in which AI models are autonomously running things in the real economy. https://red.anthropic.com/2025/project-vend/index.html Fri, 27 Jun 2025 00:00:00 +0000 Cyber Toolkits for LLMs https://red.anthropic.com/2025/cyber-toolkits/index.html Large Language Models (LLMs) that are not fine-tuned for cybersecurity can succeed in multistage attacks on networks with dozens of hosts when equipped with a novel toolkit. https://red.anthropic.com/2025/cyber-toolkits/index.html Fri, 13 Jun 2025 00:00:00 +0000 ================================================ FILE: feeds/feed_anthropic_research.xml ================================================ Anthropic Research https://www.anthropic.com/research Latest research from Anthropic http://www.rssboard.org/rss-specification python-feedgen https://www.anthropic.com/images/icons/apple-touch-icon.png Anthropic Research https://www.anthropic.com/research en Wed, 13 May 2026 11:20:34 +0000 AlignmentMay 8, 2026Teaching Claude whyNew research on how we've reduced agentic misalignment. https://www.anthropic.com/research/teaching-claude-why AlignmentMay 8, 2026Teaching Claude whyNew research on how we've reduced agentic misalignment. https://www.anthropic.com/research/teaching-claude-why Research Fri, 08 May 2026 00:00:00 +0000 May 7, 2026PolicyFocus areas for The Anthropic Institute https://www.anthropic.com/research/anthropic-institute-agenda May 7, 2026PolicyFocus areas for The Anthropic Institute https://www.anthropic.com/research/anthropic-institute-agenda Research Thu, 07 May 2026 00:00:00 +0000 May 7, 2026AlignmentDonating our open-source alignment tool https://www.anthropic.com/research/donating-open-source-petri May 7, 2026AlignmentDonating our open-source alignment tool https://www.anthropic.com/research/donating-open-source-petri Research Thu, 07 May 2026 00:00:00 +0000 Natural Language Autoencoders: Turning Claude’s thoughts into text https://www.anthropic.com/research/natural-language-autoencoders Natural Language Autoencoders: Turning Claude’s thoughts into text https://www.anthropic.com/research/natural-language-autoencoders Research Thu, 07 May 2026 00:00:00 +0000 Apr 30, 2026Societal ImpactsHow people ask Claude for personal guidance https://www.anthropic.com/research/claude-personal-guidance Apr 30, 2026Societal ImpactsHow people ask Claude for personal guidance https://www.anthropic.com/research/claude-personal-guidance Research Thu, 30 Apr 2026 00:00:00 +0000 Apr 29, 2026ScienceEvaluating Claude’s bioinformatics research capabilities with BioMysteryBench https://www.anthropic.com/research/Evaluating-Claude-For-Bioinformatics-With-BioMysteryBench Apr 29, 2026ScienceEvaluating Claude’s bioinformatics research capabilities with BioMysteryBench https://www.anthropic.com/research/Evaluating-Claude-For-Bioinformatics-With-BioMysteryBench Research Wed, 29 Apr 2026 00:00:00 +0000 Apr 22, 2026Economic ResearchWhat 81,000 people told us about the economics of AI https://www.anthropic.com/research/81k-economics Apr 22, 2026Economic ResearchWhat 81,000 people told us about the economics of AI https://www.anthropic.com/research/81k-economics Research Wed, 22 Apr 2026 00:00:00 +0000 Apr 22, 2026Economic ResearchAnnouncing the Anthropic Economic Index Survey https://www.anthropic.com/research/economic-index-survey-announcement Apr 22, 2026Economic ResearchAnnouncing the Anthropic Economic Index Survey https://www.anthropic.com/research/economic-index-survey-announcement Research Wed, 22 Apr 2026 00:00:00 +0000 Apr 14, 2026AlignmentAutomated Alignment Researchers: Using large language models to scale scalable oversight https://www.anthropic.com/research/automated-alignment-researchers Apr 14, 2026AlignmentAutomated Alignment Researchers: Using large language models to scale scalable oversight https://www.anthropic.com/research/automated-alignment-researchers Research Tue, 14 Apr 2026 00:00:00 +0000 Apr 9, 2026PolicyTrustworthy agents in practice https://www.anthropic.com/research/trustworthy-agents Apr 9, 2026PolicyTrustworthy agents in practice https://www.anthropic.com/research/trustworthy-agents Research Thu, 09 Apr 2026 00:00:00 +0000 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? https://www.anthropic.com/research/project-vend-2 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? https://www.anthropic.com/research/project-vend-2 Research Thu, 18 Dec 2025 00:00:00 +0000 Economic Research https://www.anthropic.com/research/team/economic-research Economic Research https://www.anthropic.com/research/team/economic-research Research Thu, 28 Nov 2024 00:00:00 +0000 Societal Impacts https://www.anthropic.com/research/team/societal-impacts Societal Impacts https://www.anthropic.com/research/team/societal-impacts Research Thu, 23 May 2024 00:00:00 +0000 Alignment https://www.anthropic.com/research/team/alignment Alignment https://www.anthropic.com/research/team/alignment Research Fri, 09 Feb 2024 00:00:00 +0000 Interpretability https://www.anthropic.com/research/team/interpretability Interpretability https://www.anthropic.com/research/team/interpretability Research Thu, 25 Jan 2024 00:00:00 +0000 ================================================ FILE: feeds/feed_blogsurgeai.xml ================================================ Surge AI Blog https://www.surgehq.ai/blog New methods, current trends & software infrastructure for NLP. Articles written by our senior engineering leads from Google, Facebook, Twitter, Harvard, MIT, and Y Combinator http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:50:24 +0000 The AI Bottleneck: High-Quality, Human-Powered Data https://www.surgehq.ai/blog/the-ai-bottleneck-high-quality-human-powered-data 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 https://www.surgehq.ai/blog/the-ai-bottleneck-high-quality-human-powered-data Mon, 02 Aug 2021 00:00:00 +0000 5 Examples of the Importance of Context-Sensitivity in Data-Centric AI https://www.surgehq.ai/blog/why-context-aware-datasets-are-crucial-for-data-centric-ai 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. https://www.surgehq.ai/blog/why-context-aware-datasets-are-crucial-for-data-centric-ai Fri, 19 Nov 2021 00:00:00 +0000 Is Google Search Deteriorating? Measuring Google's Search Quality in 2022 https://www.surgehq.ai/blog/is-google-search-deteriorating-measuring-search-quality-in-2022 Has Google's Search Quality deteriorated in recent years? This post measures Google Search using human evaluation. https://www.surgehq.ai/blog/is-google-search-deteriorating-measuring-search-quality-in-2022 Mon, 10 Jan 2022 00:00:00 +0000 Holy $#!t: Are popular toxicity models simply profanity detectors? https://www.surgehq.ai/blog/are-popular-toxicity-models-simply-profanity-detectors 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. https://www.surgehq.ai/blog/are-popular-toxicity-models-simply-profanity-detectors Sat, 22 Jan 2022 00:00:00 +0000 Moving Beyond Engagement: Optimizing Facebook's Algorithms for Human Values https://www.surgehq.ai/blog/what-if-social-media-optimized-for-human-values 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. https://www.surgehq.ai/blog/what-if-social-media-optimized-for-human-values Thu, 10 Feb 2022 00:00:00 +0000 Google Search is Falling Behind https://www.surgehq.ai/blog/google-search-is-falling-behind 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. https://www.surgehq.ai/blog/google-search-is-falling-behind Tue, 12 Apr 2022 00:00:00 +0000 We asked 100 humans to draw the DALL·E prompts https://www.surgehq.ai/blog/humans-vs-dall-e Where do human artists fit in a world of rich, creative AI? We asked 100 Surgers to draw the DALL-E prompts. https://www.surgehq.ai/blog/humans-vs-dall-e Thu, 12 May 2022 00:00:00 +0000 How Surge AI Built OpenAI's GSM8K Dataset of 8,500 Math Problems https://www.surgehq.ai/blog/how-we-built-it-openais-gsm8k-dataset-of-8500-math-problems 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! https://www.surgehq.ai/blog/how-we-built-it-openais-gsm8k-dataset-of-8500-math-problems Mon, 13 Jun 2022 00:00:00 +0000 Humans vs. Gary Marcus vs. Slate Star Codex: When is an AI failure actually a failure? https://www.surgehq.ai/blog/humans-vs-gary-marcus 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. https://www.surgehq.ai/blog/humans-vs-gary-marcus Wed, 22 Jun 2022 00:00:00 +0000 AI Red Teams and Adversarial Data Labeling with Redwood Research https://www.surgehq.ai/blog/ai-red-teams-and-adversarial-data-labeling-with-redwood-research Our mission at Surge AI is to inject human values and intelligence into AI. We want to build a world where AI https://www.surgehq.ai/blog/ai-red-teams-and-adversarial-data-labeling-with-redwood-research Tue, 28 Jun 2022 00:00:00 +0000 30% of Google's Emotions Dataset is Mislabeled https://www.surgehq.ai/blog/30-percent-of-googles-reddit-emotions-dataset-is-mislabeled 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 https://www.surgehq.ai/blog/30-percent-of-googles-reddit-emotions-dataset-is-mislabeled Mon, 11 Jul 2022 00:00:00 +0000 Human Evaluation of Large Language Models: How Good is Hugging Face’s BLOOM? https://www.surgehq.ai/blog/how-good-is-hugging-faces-bloom-a-real-world-human-evaluation-of-language-models 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. https://www.surgehq.ai/blog/how-good-is-hugging-faces-bloom-a-real-world-human-evaluation-of-language-models Tue, 19 Jul 2022 00:00:00 +0000 Search Behind-the-Scenes: How Neeva Uses Human Evaluation to Measure Search Quality https://www.surgehq.ai/blog/beyond-clicks-how-neeva-uses-human-evaluation-of-search-quality-to-take-on-google 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. https://www.surgehq.ai/blog/beyond-clicks-how-neeva-uses-human-evaluation-of-search-quality-to-take-on-google Fri, 29 Jul 2022 00:00:00 +0000 The $250K Inverse Scaling Prize and Human-AI Alignment https://www.surgehq.ai/blog/the-250k-inverse-scaling-prize-and-human-ai-alignment 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. https://www.surgehq.ai/blog/the-250k-inverse-scaling-prize-and-human-ai-alignment Mon, 15 Aug 2022 00:00:00 +0000 Why Instagram is Losing Gen Z: We Asked 100 Users to Compare TikTok vs. Reels https://www.surgehq.ai/blog/tiktok-vs-instagram-reels-personalized-human-evaluation 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. https://www.surgehq.ai/blog/tiktok-vs-instagram-reels-personalized-human-evaluation Wed, 31 Aug 2022 00:00:00 +0000 Evaluating Generative AI: Did Astral Codex Ten Win His Bet on AI Progress? https://www.surgehq.ai/blog/dall-e-vs-imagen-and-evaluating-astral-codex-tens-3000-ai-bet 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! https://www.surgehq.ai/blog/dall-e-vs-imagen-and-evaluating-astral-codex-tens-3000-ai-bet Thu, 29 Sep 2022 00:00:00 +0000 How TikTok is Evolving the Next Generation of Search https://www.surgehq.ai/blog/how-tiktok-is-evolving-the-next-generation-of-search 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 <query, TikTok> pairs to find out. https://www.surgehq.ai/blog/how-tiktok-is-evolving-the-next-generation-of-search Tue, 25 Oct 2022 00:00:00 +0000 HellaSwag or HellaBad? 36% of this popular LLM benchmark contains errors https://www.surgehq.ai/blog/hellaswag-or-hellabad-36-of-this-popular-llm-benchmark-contains-errors We analyzed HellaSwag, a popular LLM benchmark, and found errors in 36% of its rows. https://www.surgehq.ai/blog/hellaswag-or-hellabad-36-of-this-popular-llm-benchmark-contains-errors Sun, 04 Dec 2022 00:00:00 +0000 AI Red Teams for Adversarial Training: How to Make ChatGPT and LLMs Adversarially Robust https://www.surgehq.ai/blog/ai-red-teams-for-adversarial-training-making-chatgpt-and-large-language-models-adversarially-robust 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. https://www.surgehq.ai/blog/ai-red-teams-for-adversarial-training-making-chatgpt-and-large-language-models-adversarially-robust Mon, 12 Dec 2022 00:00:00 +0000 We Evaluated ChatGPT vs. Google on 500 Search Queries https://www.surgehq.ai/blog/googles-existential-threat-chatgpt-matches-googles-performance-on-informational-search-queries-and-smashes-it-on-coding 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. https://www.surgehq.ai/blog/googles-existential-threat-chatgpt-matches-googles-performance-on-informational-search-queries-and-smashes-it-on-coding Wed, 21 Dec 2022 00:00:00 +0000 How Anthropic uses Surge AI to Train and Evaluate Claude https://www.surgehq.ai/blog/anthropic-surge-ai-rlhf-platform-train-llm-assistant-human-feedback 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. https://www.surgehq.ai/blog/anthropic-surge-ai-rlhf-platform-train-llm-assistant-human-feedback Thu, 09 Mar 2023 00:00:00 +0000 DALL·E 3 and Midjourney Fail Astral Codex Ten's Image Generation Bet https://www.surgehq.ai/blog/dalle-3-and-midjourney-fail-astral-codex-tens-image-generation-bet An update on Astral Codex Ten's Image Generation Bet: close, but no dice. DALL·E 3 and Midjourney fail. https://www.surgehq.ai/blog/dalle-3-and-midjourney-fail-astral-codex-tens-image-generation-bet Thu, 01 Aug 2024 00:00:00 +0000 Bringing light to the GPT-4o vs. GPT-5 personality controversy https://www.surgehq.ai/blog/bringing-light-to-the-gpt-4o-vs-gpt-5-personality-controversy 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: https://www.surgehq.ai/blog/bringing-light-to-the-gpt-4o-vs-gpt-5-personality-controversy Fri, 15 Aug 2025 00:00:00 +0000 Unsexy AI Failures: The PDF That Broke ChatGPT https://www.surgehq.ai/blog/the-pdf-that-broke-chatgpt 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. https://www.surgehq.ai/blog/the-pdf-that-broke-chatgpt Mon, 25 Aug 2025 00:00:00 +0000 Benchmarks are broken https://www.surgehq.ai/blog/benchmarks-are-broken Academic benchmarks make great headlines, and terrible AI. https://www.surgehq.ai/blog/benchmarks-are-broken Sun, 07 Sep 2025 00:00:00 +0000 SWE-Bench Failures: When Coding Agents Spiral Into 693 Lines of Hallucinations https://www.surgehq.ai/blog/when-coding-agents-spiral-into-693-lines-of-hallucinations 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. https://www.surgehq.ai/blog/when-coding-agents-spiral-into-693-lines-of-hallucinations Mon, 15 Sep 2025 00:00:00 +0000 The Human/AI Frontier: A Conversation with Bogdan Grechuk https://www.surgehq.ai/blog/the-human-frontier-bogdan-grechuk 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. https://www.surgehq.ai/blog/the-human-frontier-bogdan-grechuk Mon, 29 Sep 2025 00:00:00 +0000 Is Sonnet 4.5 the best coding model in the world? https://www.surgehq.ai/blog/sonnet-4-5-coding-model-evaluation 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. https://www.surgehq.ai/blog/sonnet-4-5-coding-model-evaluation Wed, 08 Oct 2025 00:00:00 +0000 A Product Take on Sonnet 4.5 https://www.surgehq.ai/blog/sonnet-4-5-product-take 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. https://www.surgehq.ai/blog/sonnet-4-5-product-take Fri, 10 Oct 2025 00:00:00 +0000 How do frontier models perform on real-world finance problems? https://www.surgehq.ai/blog/finance-eval-real-world 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. https://www.surgehq.ai/blog/finance-eval-real-world Mon, 03 Nov 2025 00:00:00 +0000 RL Environments and the Hierarchy of Agentic Capabilities https://www.surgehq.ai/blog/rl-envs-real-world Our RL environment run on 9 models revealed the core capabilities all agents need to master: tool use, planning, adaptability, groundedness, and common sense. https://www.surgehq.ai/blog/rl-envs-real-world Mon, 03 Nov 2025 00:00:00 +0000 LMArena is a cancer on AI https://www.surgehq.ai/blog/lmarena-is-a-plague-on-ai 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. https://www.surgehq.ai/blog/lmarena-is-a-plague-on-ai Mon, 01 Dec 2025 00:00:00 +0000 Building AdvancedIF: Evolving Instruction Following Beyond IFEval and “Avoid the Letter C” https://www.surgehq.ai/blog/advancedif-and-the-evolution-of-instruction-following-benchmarks 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. https://www.surgehq.ai/blog/advancedif-and-the-evolution-of-instruction-following-benchmarks Sat, 06 Dec 2025 00:00:00 +0000 Hemingway-bench Leaderboard: Because Good Writing Isn't a Checklist of Vibes https://www.surgehq.ai/blog/hemingway-bench-ai-writing-leaderboard 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. https://www.surgehq.ai/blog/hemingway-bench-ai-writing-leaderboard Wed, 04 Feb 2026 00:00:00 +0000 EnterpriseBench: CoreCraft – Measuring AI Agents in Chaotic, Enterprise RL Environments https://www.surgehq.ai/blog/enterprisebench-corecraft 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. https://www.surgehq.ai/blog/enterprisebench-corecraft Thu, 19 Feb 2026 00:00:00 +0000 Riemann-bench: A Benchmark for Moonshot Mathematics https://www.surgehq.ai/blog/riemann-bench-a-benchmark-for-moonshot-mathematics Riemann-bench is a verifiable benchmark of extreme-tier mathematical problems where even frontier models score <10%. https://www.surgehq.ai/blog/riemann-bench-a-benchmark-for-moonshot-mathematics Tue, 24 Mar 2026 00:00:00 +0000 GDP.pdf: Can $100B AI Models Master the Documents that Run the World? https://www.surgehq.ai/blog/gdp-pdf-can-100b-ai-models-master-the-documents-that-run-the-world 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. https://www.surgehq.ai/blog/gdp-pdf-can-100b-ai-models-master-the-documents-that-run-the-world Tue, 14 Apr 2026 00:00:00 +0000 ================================================ FILE: feeds/feed_chanderramesh.xml ================================================ Chander Ramesh - Writing https://chanderramesh.com/writing Essays covering software, startups, investing, and philosophy http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:50:25 +0000 Golden Ages https://chanderramesh.com/writing/golden-ages 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? https://chanderramesh.com/writing/golden-ages Thu, 12 Jun 2025 00:00:00 +0000 Everything You Call Life https://chanderramesh.com/writing/everything-you-call-life "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 https://chanderramesh.com/writing/everything-you-call-life Sat, 08 Feb 2025 00:00:00 +0000 Core Values https://chanderramesh.com/writing/core-values Institutions rot. Empires decay. And companies that once seemed like behemoths wither and die. The average age of a company in the S&P 500 is only 21 years. But why is this? https://chanderramesh.com/writing/core-values Mon, 03 Feb 2025 00:00:00 +0000 How London Lost Fashion https://chanderramesh.com/writing/how-london-lost-fashion 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? https://chanderramesh.com/writing/how-london-lost-fashion Wed, 01 Jan 2025 00:00:00 +0000 Why Are Startups Hard? https://chanderramesh.com/writing/why-are-startups-hard 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? https://chanderramesh.com/writing/why-are-startups-hard Fri, 15 Nov 2024 00:00:00 +0000 Product Market Fit https://chanderramesh.com/writing/pmf If your company cannot withstand a competitor giving away your product FOR FREE, you do not have product market fit. https://chanderramesh.com/writing/pmf Mon, 30 Sep 2024 00:00:00 +0000 On Venting https://chanderramesh.com/writing/on-venting 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. https://chanderramesh.com/writing/on-venting Tue, 25 Jun 2024 00:00:00 +0000 Stop Thinking with IF Statements! https://chanderramesh.com/writing/stop-if-statements 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. https://chanderramesh.com/writing/stop-if-statements Mon, 01 Jan 2024 00:00:00 +0000 ================================================ FILE: feeds/feed_claude.xml ================================================ Claude Blog https://claude.com/blog Latest updates from Claude Blog http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:50:30 +0000 How Anthropic's cybersecurity team built a threat detection platform with Claude Code https://claude.com/blog/how-anthropic-uses-claude-cybersecurity How Anthropic's cybersecurity team built a threat detection platform with Claude Code https://claude.com/blog/how-anthropic-uses-claude-cybersecurity Claude Code Tue, 12 May 2026 00:00:00 +0000 Claude for the legal industry https://claude.com/blog/claude-for-the-legal-industry Claude for the legal industry https://claude.com/blog/claude-for-the-legal-industry Product announcements Tue, 12 May 2026 00:00:00 +0000 Code w/ Claude SF 2026: Building on the AI exponential https://claude.com/blog/code-w-claude-sf-2026-sf Code w/ Claude SF 2026: Building on the AI exponential https://claude.com/blog/code-w-claude-sf-2026-sf Tue, 12 May 2026 00:00:00 +0000 Introducing the Claude Platform on AWS https://claude.com/blog/claude-platform-on-aws Introducing the Claude Platform on AWS https://claude.com/blog/claude-platform-on-aws Product announcements Mon, 11 May 2026 00:00:00 +0000 Agent view in Claude Code https://claude.com/blog/agent-view-in-claude-code Agent view in Claude Code https://claude.com/blog/agent-view-in-claude-code Product announcements Mon, 11 May 2026 00:00:00 +0000 Collaborate with Claude across Excel, PowerPoint, Word and Outlook https://claude.com/blog/collaborate-with-claude-across-excel-powerpoint-word-and-outlook Collaborate with Claude across Excel, PowerPoint, Word and Outlook https://claude.com/blog/collaborate-with-claude-across-excel-powerpoint-word-and-outlook Product announcements Thu, 07 May 2026 00:00:00 +0000 New in Claude Managed Agents: dreaming, outcomes, and multiagent orchestration https://claude.com/blog/new-in-claude-managed-agents New in Claude Managed Agents: dreaming, outcomes, and multiagent orchestration https://claude.com/blog/new-in-claude-managed-agents Wed, 06 May 2026 00:00:00 +0000 Deploying Claude across financial services https://claude.com/blog/deploying-claude-across-financial-services Deploying Claude across financial services https://claude.com/blog/deploying-claude-across-financial-services Enterprise AI Tue, 05 May 2026 00:00:00 +0000 How a non-technical project manager built and shipped a stress management app with Claude Code in six weeks https://claude.com/blog/how-a-non-technical-project-manager-built-and-shipped-a-stress-management-app-with-claude-code-in-six-weeks How a non-technical project manager built and shipped a stress management app with Claude Code in six weeks https://claude.com/blog/how-a-non-technical-project-manager-built-and-shipped-a-stress-management-app-with-claude-code-in-six-weeks Claude Code Fri, 01 May 2026 00:00:00 +0000 How Kepler built verifiable AI for financial services with Claude https://claude.com/blog/how-kepler-built-verifiable-ai-for-financial-services-with-claude How Kepler built verifiable AI for financial services with Claude https://claude.com/blog/how-kepler-built-verifiable-ai-for-financial-services-with-claude Enterprise AI Thu, 30 Apr 2026 00:00:00 +0000 Lessons from building Claude Code: Prompt caching is everything https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything Lessons from building Claude Code: Prompt caching is everything https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything Claude Code Thu, 30 Apr 2026 00:00:00 +0000 Claude Security is now in public beta https://claude.com/blog/claude-security-public-beta Claude Security is now in public beta https://claude.com/blog/claude-security-public-beta Product announcements Thu, 30 Apr 2026 00:00:00 +0000 Building AI agents for the enterprise https://claude.com/blog/building-ai-agents-for-the-enterprise Building AI agents for the enterprise https://claude.com/blog/building-ai-agents-for-the-enterprise Agents Thu, 30 Apr 2026 00:00:00 +0000 Product development in the agentic era https://claude.com/blog/product-development-in-the-agentic-era Product development in the agentic era https://claude.com/blog/product-development-in-the-agentic-era Agents Wed, 29 Apr 2026 00:00:00 +0000 Claude API skill now in CodeRabbit, JetBrains, Resolve AI, and Warp https://claude.com/blog/claude-api-skill Claude API skill now in CodeRabbit, JetBrains, Resolve AI, and Warp https://claude.com/blog/claude-api-skill Agents Wed, 29 Apr 2026 00:00:00 +0000 Deploying agentic AI across the enterprise with Claude Cowork https://claude.com/blog/new-guide-deploying-claude-across-the-enterprise-with-claude-cowork Deploying agentic AI across the enterprise with Claude Cowork https://claude.com/blog/new-guide-deploying-claude-across-the-enterprise-with-claude-cowork Wed, 29 Apr 2026 00:00:00 +0000 Onboarding Claude Code like a new developer: Lessons from 17 years of development https://claude.com/blog/onboarding-claude-code-like-a-new-developer-lessons-from-17-years-of-development Onboarding Claude Code like a new developer: Lessons from 17 years of development https://claude.com/blog/onboarding-claude-code-like-a-new-developer-lessons-from-17-years-of-development Claude Code Tue, 28 Apr 2026 00:00:00 +0000 Built-in memory for Claude Managed Agents https://claude.com/blog/claude-managed-agents-memory Built-in memory for Claude Managed Agents https://claude.com/blog/claude-managed-agents-memory Thu, 23 Apr 2026 00:00:00 +0000 New connectors in Claude for everyday life https://claude.com/blog/connectors-for-everyday-life New connectors in Claude for everyday life https://claude.com/blog/connectors-for-everyday-life Thu, 23 Apr 2026 00:00:00 +0000 Building agents that reach production systems with MCP https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp Building agents that reach production systems with MCP https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp Agents Wed, 22 Apr 2026 00:00:00 +0000 Meet the winners of our Built with Opus 4.6 Claude Code hackathon https://claude.com/blog/meet-the-winners-of-our-built-with-opus-4-6-claude-code-hackathon Meet the winners of our Built with Opus 4.6 Claude Code hackathon https://claude.com/blog/meet-the-winners-of-our-built-with-opus-4-6-claude-code-hackathon Claude Code Mon, 20 Apr 2026 00:00:00 +0000 Best practices for using Claude Opus 4.7 with Claude Code https://claude.com/blog/best-practices-for-using-claude-opus-4-7-with-claude-code Best practices for using Claude Opus 4.7 with Claude Code https://claude.com/blog/best-practices-for-using-claude-opus-4-7-with-claude-code Claude Code Thu, 16 Apr 2026 00:00:00 +0000 Using Claude Code: session management and 1M context https://claude.com/blog/using-claude-code-session-management-and-1m-context Using Claude Code: session management and 1M context https://claude.com/blog/using-claude-code-session-management-and-1m-context Claude Code Wed, 15 Apr 2026 00:00:00 +0000 Introducing routines in Claude Code https://claude.com/blog/introducing-routines-in-claude-code Introducing routines in Claude Code https://claude.com/blog/introducing-routines-in-claude-code Product announcements Tue, 14 Apr 2026 00:00:00 +0000 Redesigning Claude Code on desktop for parallel agents https://claude.com/blog/claude-code-desktop-redesign Redesigning Claude Code on desktop for parallel agents https://claude.com/blog/claude-code-desktop-redesign Tue, 14 Apr 2026 00:00:00 +0000 Multi-agent coordination patterns: Five approaches and when to use them https://claude.com/blog/multi-agent-coordination-patterns Multi-agent coordination patterns: Five approaches and when to use them https://claude.com/blog/multi-agent-coordination-patterns Agents Fri, 10 Apr 2026 00:00:00 +0000 Seeing like an agent: how we design tools in Claude Code https://claude.com/blog/seeing-like-an-agent Seeing like an agent: how we design tools in Claude Code https://claude.com/blog/seeing-like-an-agent Claude Code Fri, 10 Apr 2026 00:00:00 +0000 Preparing your security program for AI-accelerated offense https://claude.com/blog/preparing-your-security-program-for-ai-accelerated-offense Preparing your security program for AI-accelerated offense https://claude.com/blog/preparing-your-security-program-for-ai-accelerated-offense Fri, 10 Apr 2026 00:00:00 +0000 Making Claude Cowork ready for enterprise https://claude.com/blog/cowork-for-enterprise Making Claude Cowork ready for enterprise https://claude.com/blog/cowork-for-enterprise Product announcements Thu, 09 Apr 2026 00:00:00 +0000 The advisor strategy: Give agents an intelligence boost https://claude.com/blog/the-advisor-strategy The advisor strategy: Give agents an intelligence boost https://claude.com/blog/the-advisor-strategy Product announcements Thu, 09 Apr 2026 00:00:00 +0000 How Carta Healthcare gets AI to reason like a clinical abstractor https://claude.com/blog/carta-healthcare-clinical-abstractor How Carta Healthcare gets AI to reason like a clinical abstractor https://claude.com/blog/carta-healthcare-clinical-abstractor Enterprise AI Wed, 08 Apr 2026 00:00:00 +0000 Claude Managed Agents: get to production 10x faster https://claude.com/blog/claude-managed-agents Claude Managed Agents: get to production 10x faster https://claude.com/blog/claude-managed-agents Wed, 08 Apr 2026 00:00:00 +0000 How and when to use subagents in Claude Code https://claude.com/blog/subagents-in-claude-code How and when to use subagents in Claude Code https://claude.com/blog/subagents-in-claude-code Claude Code Tue, 07 Apr 2026 00:00:00 +0000 Harnessing Claude’s intelligence https://claude.com/blog/harnessing-claudes-intelligence Harnessing Claude’s intelligence https://claude.com/blog/harnessing-claudes-intelligence Thu, 02 Apr 2026 00:00:00 +0000 Audit Claude Platform activity with the Compliance API https://claude.com/blog/claude-platform-compliance-api Audit Claude Platform activity with the Compliance API https://claude.com/blog/claude-platform-compliance-api Product announcements Mon, 30 Mar 2026 00:00:00 +0000 Auto mode for Claude Code https://claude.com/blog/auto-mode Auto mode for Claude Code https://claude.com/blog/auto-mode Claude Code Tue, 24 Mar 2026 00:00:00 +0000 Put Claude to work on your computer https://claude.com/blog/dispatch-and-computer-use Put Claude to work on your computer https://claude.com/blog/dispatch-and-computer-use Product announcements Mon, 23 Mar 2026 00:00:00 +0000 Product management on the AI exponential https://claude.com/blog/product-management-on-the-ai-exponential Product management on the AI exponential https://claude.com/blog/product-management-on-the-ai-exponential Claude Code Thu, 19 Mar 2026 00:00:00 +0000 Code with Claude comes to San Francisco, London, and Tokyo https://claude.com/blog/code-with-claude-san-francisco-london-tokyo Code with Claude comes to San Francisco, London, and Tokyo https://claude.com/blog/code-with-claude-san-francisco-london-tokyo Claude Code Wed, 18 Mar 2026 00:00:00 +0000 1M context is now generally available for Opus 4.6 and Sonnet 4.6 https://claude.com/blog/1m-context-ga 1M context is now generally available for Opus 4.6 and Sonnet 4.6 https://claude.com/blog/1m-context-ga Product announcements Fri, 13 Mar 2026 00:00:00 +0000 Claude now creates interactive charts, diagrams and visualizations https://claude.com/blog/claude-builds-visuals Claude now creates interactive charts, diagrams and visualizations https://claude.com/blog/claude-builds-visuals Thu, 12 Mar 2026 00:00:00 +0000 Advancing Claude for Excel and PowerPoint https://claude.com/blog/claude-excel-powerpoint-updates Advancing Claude for Excel and PowerPoint https://claude.com/blog/claude-excel-powerpoint-updates Enterprise AI Wed, 11 Mar 2026 00:00:00 +0000 Bringing Code Review to Claude Code https://claude.com/blog/code-review Bringing Code Review to Claude Code https://claude.com/blog/code-review Claude Code Mon, 09 Mar 2026 00:00:00 +0000 Common workflow patterns for AI agents—and when to use them https://claude.com/blog/common-workflow-patterns-for-ai-agents-and-when-to-use-them Common workflow patterns for AI agents—and when to use them https://claude.com/blog/common-workflow-patterns-for-ai-agents-and-when-to-use-them Agents Thu, 05 Mar 2026 00:00:00 +0000 Improving skill-creator: Test, measure, and refine Agent Skills https://claude.com/blog/improving-skill-creator-test-measure-and-refine-agent-skills Improving skill-creator: Test, measure, and refine Agent Skills https://claude.com/blog/improving-skill-creator-test-measure-and-refine-agent-skills Claude Code Tue, 03 Mar 2026 00:00:00 +0000 Cowork and plugins for teams across the enterprise https://claude.com/blog/cowork-plugins-across-enterprise Cowork and plugins for teams across the enterprise https://claude.com/blog/cowork-plugins-across-enterprise Agents Tue, 24 Feb 2026 00:00:00 +0000 Cowork and plugins for finance https://claude.com/blog/cowork-plugins-finance Cowork and plugins for finance https://claude.com/blog/cowork-plugins-finance Enterprise AI Tue, 24 Feb 2026 00:00:00 +0000 How AI helps break the cost barrier to COBOL modernization https://claude.com/blog/how-ai-helps-break-cost-barrier-cobol-modernization How AI helps break the cost barrier to COBOL modernization https://claude.com/blog/how-ai-helps-break-cost-barrier-cobol-modernization Claude Code Mon, 23 Feb 2026 00:00:00 +0000 Bringing automated preview, review, and merge to Claude Code on desktop https://claude.com/blog/preview-review-and-merge-with-claude-code Bringing automated preview, review, and merge to Claude Code on desktop https://claude.com/blog/preview-review-and-merge-with-claude-code Claude Code Fri, 20 Feb 2026 00:00:00 +0000 Increase web search accuracy and efficiency with dynamic filtering https://claude.com/blog/improved-web-search-with-dynamic-filtering Increase web search accuracy and efficiency with dynamic filtering https://claude.com/blog/improved-web-search-with-dynamic-filtering Product announcements Tue, 17 Feb 2026 00:00:00 +0000 Claude Enterprise, now available self-serve https://claude.com/blog/self-serve-enterprise Claude Enterprise, now available self-serve https://claude.com/blog/self-serve-enterprise Enterprise AI Thu, 12 Feb 2026 00:00:00 +0000 Behind the model launch: What customers discovered testing Claude Opus 4.6 early https://claude.com/blog/behind-model-launch-what-customers-discovered-testing-claude-opus-4-6-early Behind the model launch: What customers discovered testing Claude Opus 4.6 early https://claude.com/blog/behind-model-launch-what-customers-discovered-testing-claude-opus-4-6-early Enterprise AI Mon, 09 Feb 2026 00:00:00 +0000 Advancing finance with Claude Opus 4.6 https://claude.com/blog/opus-4-6-finance Advancing finance with Claude Opus 4.6 https://claude.com/blog/opus-4-6-finance Enterprise AI Thu, 05 Feb 2026 00:00:00 +0000 Customize Cowork with plugins https://claude.com/blog/cowork-plugins Customize Cowork with plugins https://claude.com/blog/cowork-plugins Product announcements Fri, 30 Jan 2026 00:00:00 +0000 Understand Claude Code’s impact with contribution metrics https://claude.com/blog/contribution-metrics Understand Claude Code’s impact with contribution metrics https://claude.com/blog/contribution-metrics Claude Code Thu, 29 Jan 2026 00:00:00 +0000 A complete guide to building skills for Claude https://claude.com/blog/complete-guide-to-building-skills-for-claude A complete guide to building skills for Claude https://claude.com/blog/complete-guide-to-building-skills-for-claude Claude Code Thu, 29 Jan 2026 00:00:00 +0000 Updates to Claude Team https://claude.com/blog/claude-team-updates Updates to Claude Team https://claude.com/blog/claude-team-updates Product announcements Wed, 28 Jan 2026 00:00:00 +0000 How leading retailers are turning AI pilots into enterprise-wide transformation https://claude.com/blog/how-leading-retailers-are-turning-ai-pilots-into-enterprise-wide-transformation How leading retailers are turning AI pilots into enterprise-wide transformation https://claude.com/blog/how-leading-retailers-are-turning-ai-pilots-into-enterprise-wide-transformation Enterprise AI Wed, 28 Jan 2026 00:00:00 +0000 How Anthropic's Growth Marketing team cut ad creation time from 30 minutes to 30 seconds with Claude Code https://claude.com/blog/how-anthropic-uses-claude-marketing How Anthropic's Growth Marketing team cut ad creation time from 30 minutes to 30 seconds with Claude Code https://claude.com/blog/how-anthropic-uses-claude-marketing Enterprise AI Mon, 26 Jan 2026 00:00:00 +0000 Your favorite work tools are now interactive connectors inside Claude https://claude.com/blog/interactive-tools-in-claude Your favorite work tools are now interactive connectors inside Claude https://claude.com/blog/interactive-tools-in-claude Product announcements Mon, 26 Jan 2026 00:00:00 +0000 Building multi-agent systems: When and how to use them https://claude.com/blog/building-multi-agent-systems-when-and-how-to-use-them Building multi-agent systems: When and how to use them https://claude.com/blog/building-multi-agent-systems-when-and-how-to-use-them Agents Fri, 23 Jan 2026 00:00:00 +0000 Building agents with Skills: Equipping agents for specialized work https://claude.com/blog/building-agents-with-skills-equipping-agents-for-specialized-work Building agents with Skills: Equipping agents for specialized work https://claude.com/blog/building-agents-with-skills-equipping-agents-for-specialized-work Agents Thu, 22 Jan 2026 00:00:00 +0000 Eight trends defining how software gets built in 2026 https://claude.com/blog/eight-trends-defining-how-software-gets-built-in-2026 Eight trends defining how software gets built in 2026 https://claude.com/blog/eight-trends-defining-how-software-gets-built-in-2026 Agents Wed, 21 Jan 2026 00:00:00 +0000 Extending Claude’s capabilities with skills and MCP servers https://claude.com/blog/extending-claude-capabilities-with-skills-mcp-servers Extending Claude’s capabilities with skills and MCP servers https://claude.com/blog/extending-claude-capabilities-with-skills-mcp-servers Agents Fri, 19 Dec 2025 00:00:00 +0000 Skills for organizations, partners, the ecosystem https://claude.com/blog/organization-skills-and-directory Skills for organizations, partners, the ecosystem https://claude.com/blog/organization-skills-and-directory Product announcements Thu, 18 Dec 2025 00:00:00 +0000 Making Claude a better electrical engineer https://claude.com/blog/making-claude-a-better-electrical-engineer Making Claude a better electrical engineer https://claude.com/blog/making-claude-a-better-electrical-engineer Enterprise AI Fri, 12 Dec 2025 00:00:00 +0000 Claude Code power user customization: How to configure hooks https://claude.com/blog/how-to-configure-hooks Claude Code power user customization: How to configure hooks https://claude.com/blog/how-to-configure-hooks Claude Code Thu, 11 Dec 2025 00:00:00 +0000 How enterprises are building AI agents in 2026 https://claude.com/blog/how-enterprises-are-building-ai-agents-in-2026 How enterprises are building AI agents in 2026 https://claude.com/blog/how-enterprises-are-building-ai-agents-in-2026 Tue, 09 Dec 2025 00:00:00 +0000 Claude Code and Slack https://claude.com/blog/claude-code-and-slack Claude Code and Slack https://claude.com/blog/claude-code-and-slack Product announcements Mon, 08 Dec 2025 00:00:00 +0000 How Anthropic's legal team cut review times from days to hours with Claude https://claude.com/blog/how-anthropic-uses-claude-legal How Anthropic's legal team cut review times from days to hours with Claude https://claude.com/blog/how-anthropic-uses-claude-legal Enterprise AI Mon, 08 Dec 2025 00:00:00 +0000 What are the key benefits of transitioning to agentic coding for software development? https://claude.com/blog/key-benefits-transitioning-agentic-coding What are the key benefits of transitioning to agentic coding for software development? https://claude.com/blog/key-benefits-transitioning-agentic-coding Claude Code Mon, 01 Dec 2025 00:00:00 +0000 Using CLAUDE.md files: Customizing Claude Code for your codebase https://claude.com/blog/using-claude-md-files Using CLAUDE.md files: Customizing Claude Code for your codebase https://claude.com/blog/using-claude-md-files Claude Code Tue, 25 Nov 2025 00:00:00 +0000 What’s new in Claude: Turning Claude into your thinking partner https://claude.com/blog/your-thinking-partner What’s new in Claude: Turning Claude into your thinking partner https://claude.com/blog/your-thinking-partner Product announcements Thu, 20 Nov 2025 00:00:00 +0000 How to create Skills: Key steps, limitations, and examples https://claude.com/blog/how-to-create-skills-key-steps-limitations-and-examples How to create Skills: Key steps, limitations, and examples https://claude.com/blog/how-to-create-skills-key-steps-limitations-and-examples Claude Code Wed, 19 Nov 2025 00:00:00 +0000 How three YC startups built their companies with Claude Code https://claude.com/blog/building-companies-with-claude-code How three YC startups built their companies with Claude Code https://claude.com/blog/building-companies-with-claude-code Claude Code Mon, 17 Nov 2025 00:00:00 +0000 Structured outputs on the Claude Developer Platform https://claude.com/blog/structured-outputs-on-the-claude-developer-platform Structured outputs on the Claude Developer Platform https://claude.com/blog/structured-outputs-on-the-claude-developer-platform Product announcements Fri, 14 Nov 2025 00:00:00 +0000 Skills explained: How Skills compares to prompts, Projects, MCP, and subagents https://claude.com/blog/skills-explained Skills explained: How Skills compares to prompts, Projects, MCP, and subagents https://claude.com/blog/skills-explained Agents Thu, 13 Nov 2025 00:00:00 +0000 Improving frontend design through Skills https://claude.com/blog/improving-frontend-design-through-skills Improving frontend design through Skills https://claude.com/blog/improving-frontend-design-through-skills Wed, 12 Nov 2025 00:00:00 +0000 Best practices for prompt engineering https://claude.com/blog/best-practices-for-prompt-engineering Best practices for prompt engineering https://claude.com/blog/best-practices-for-prompt-engineering Agents Mon, 10 Nov 2025 00:00:00 +0000 Building AI agents for startups https://claude.com/blog/building-ai-agents-for-startups Building AI agents for startups https://claude.com/blog/building-ai-agents-for-startups Enterprise AI Mon, 03 Nov 2025 00:00:00 +0000 What is Model Context Protocol? Connect AI to your world https://claude.com/blog/what-is-model-context-protocol What is Model Context Protocol? Connect AI to your world https://claude.com/blog/what-is-model-context-protocol Agents Fri, 31 Oct 2025 00:00:00 +0000 How Brex improves code quality and productivity with Claude Code https://claude.com/blog/how-brex-improves-code-quality-and-productivity-with-claude-code How Brex improves code quality and productivity with Claude Code https://claude.com/blog/how-brex-improves-code-quality-and-productivity-with-claude-code Enterprise AI Thu, 30 Oct 2025 00:00:00 +0000 Building AI agents for financial services https://claude.com/blog/building-ai-agents-in-financial-services Building AI agents for financial services https://claude.com/blog/building-ai-agents-in-financial-services Agents Thu, 30 Oct 2025 00:00:00 +0000 Building AI agents for healthcare and life sciences https://claude.com/blog/building-ai-agents-in-healthcare-and-life-sciences Building AI agents for healthcare and life sciences https://claude.com/blog/building-ai-agents-in-healthcare-and-life-sciences Agents Thu, 30 Oct 2025 00:00:00 +0000 Introduction to agentic coding https://claude.com/blog/introduction-to-agentic-coding Introduction to agentic coding https://claude.com/blog/introduction-to-agentic-coding Claude Code Thu, 30 Oct 2025 00:00:00 +0000 Fix software bugs faster with Claude https://claude.com/blog/fix-software-bugs-faster-with-claude Fix software bugs faster with Claude https://claude.com/blog/fix-software-bugs-faster-with-claude Claude Code Tue, 28 Oct 2025 00:00:00 +0000 How to integrate APIs seamlessly https://claude.com/blog/integrate-apis-seamlessly How to integrate APIs seamlessly https://claude.com/blog/integrate-apis-seamlessly Claude Code Mon, 27 Oct 2025 00:00:00 +0000 Claude Code on the web https://claude.com/blog/claude-code-on-the-web Claude Code on the web https://claude.com/blog/claude-code-on-the-web Product announcements Mon, 20 Oct 2025 00:00:00 +0000 Introducing Agent Skills https://claude.com/blog/skills Introducing Agent Skills https://claude.com/blog/skills Product announcements Thu, 16 Oct 2025 00:00:00 +0000 Claude and your productivity platforms https://claude.com/blog/productivity-platforms Claude and your productivity platforms https://claude.com/blog/productivity-platforms Product announcements Thu, 16 Oct 2025 00:00:00 +0000 How to scale agentic coding across your engineering organization https://claude.com/blog/scaling-agentic-coding How to scale agentic coding across your engineering organization https://claude.com/blog/scaling-agentic-coding Claude Code Wed, 15 Oct 2025 00:00:00 +0000 Build responsive web layouts https://claude.com/blog/build-responsive-web-layouts Build responsive web layouts https://claude.com/blog/build-responsive-web-layouts Claude Code Fri, 10 Oct 2025 00:00:00 +0000 Customize Claude Code with plugins https://claude.com/blog/claude-code-plugins Customize Claude Code with plugins https://claude.com/blog/claude-code-plugins Product announcements Thu, 09 Oct 2025 00:00:00 +0000 Beyond permission prompts: making Claude Code more secure and autonomous https://claude.com/blog/beyond-permission-prompts-making-claude-code-more-secure-and-autonomous Beyond permission prompts: making Claude Code more secure and autonomous https://claude.com/blog/beyond-permission-prompts-making-claude-code-more-secure-and-autonomous Claude Code Wed, 08 Oct 2025 00:00:00 +0000 Optimize code performance quickly https://claude.com/blog/optimize-code-performance-quickly Optimize code performance quickly https://claude.com/blog/optimize-code-performance-quickly Claude Code Mon, 06 Oct 2025 00:00:00 +0000 Claude and Slack https://claude.com/blog/claude-and-slack Claude and Slack https://claude.com/blog/claude-and-slack Product announcements Wed, 01 Oct 2025 00:00:00 +0000 How enterprises are driving AI transformation with Claude https://claude.com/blog/driving-ai-transformation-with-claude How enterprises are driving AI transformation with Claude https://claude.com/blog/driving-ai-transformation-with-claude Enterprise AI Wed, 01 Oct 2025 00:00:00 +0000 Managing context on the Claude Developer Platform https://claude.com/blog/context-management Managing context on the Claude Developer Platform https://claude.com/blog/context-management Product announcements Mon, 29 Sep 2025 00:00:00 +0000 Building agents with the Claude Agent SDK https://claude.com/blog/building-agents-with-the-claude-agent-sdk Building agents with the Claude Agent SDK https://claude.com/blog/building-agents-with-the-claude-agent-sdk Claude Code Mon, 29 Sep 2025 00:00:00 +0000 Claude is now available in Microsoft 365 Copilot https://claude.com/blog/claude-now-available-in-microsoft-365-copilot Claude is now available in Microsoft 365 Copilot https://claude.com/blog/claude-now-available-in-microsoft-365-copilot Product announcements Wed, 24 Sep 2025 00:00:00 +0000 Bringing memory to Claude https://claude.com/blog/memory Bringing memory to Claude https://claude.com/blog/memory Product announcements Thu, 11 Sep 2025 00:00:00 +0000 Claude can now create and edit files https://claude.com/blog/create-files Claude can now create and edit files https://claude.com/blog/create-files Product announcements Tue, 09 Sep 2025 00:00:00 +0000 Piloting Claude in Chrome https://claude.com/blog/claude-for-chrome Piloting Claude in Chrome https://claude.com/blog/claude-for-chrome Product announcements Mon, 25 Aug 2025 00:00:00 +0000 Claude Code and new admin controls for business plans https://claude.com/blog/claude-code-and-new-admin-controls-for-business-plans Claude Code and new admin controls for business plans https://claude.com/blog/claude-code-and-new-admin-controls-for-business-plans Product announcements Wed, 20 Aug 2025 00:00:00 +0000 Prompt caching with Claude https://claude.com/blog/prompt-caching Prompt caching with Claude https://claude.com/blog/prompt-caching Product announcements Thu, 14 Aug 2025 00:00:00 +0000 Claude Sonnet 4 now supports 1M tokens of context https://claude.com/blog/1m-context Claude Sonnet 4 now supports 1M tokens of context https://claude.com/blog/1m-context Product announcements Tue, 12 Aug 2025 00:00:00 +0000 Automate security reviews with Claude Code https://claude.com/blog/automate-security-reviews-with-claude-code Automate security reviews with Claude Code https://claude.com/blog/automate-security-reviews-with-claude-code Product announcements Wed, 06 Aug 2025 00:00:00 +0000 Build and share AI-powered apps with Claude https://claude.com/blog/claude-powered-artifacts Build and share AI-powered apps with Claude https://claude.com/blog/claude-powered-artifacts Product announcements Fri, 25 Jul 2025 00:00:00 +0000 How Anthropic teams use Claude Code https://claude.com/blog/how-anthropic-teams-use-claude-code How Anthropic teams use Claude Code https://claude.com/blog/how-anthropic-teams-use-claude-code Enterprise AI Thu, 24 Jul 2025 00:00:00 +0000 Discover tools that work with Claude https://claude.com/blog/connectors-directory Discover tools that work with Claude https://claude.com/blog/connectors-directory Product announcements Mon, 14 Jul 2025 00:00:00 +0000 Turn ideas into interactive AI-powered apps https://claude.com/blog/build-artifacts Turn ideas into interactive AI-powered apps https://claude.com/blog/build-artifacts Product announcements Wed, 25 Jun 2025 00:00:00 +0000 Introducing Citations on the Anthropic API https://claude.com/blog/introducing-citations-api Introducing Citations on the Anthropic API https://claude.com/blog/introducing-citations-api Product announcements Mon, 23 Jun 2025 00:00:00 +0000 Remote MCP support in Claude Code https://claude.com/blog/claude-code-remote-mcp Remote MCP support in Claude Code https://claude.com/blog/claude-code-remote-mcp Product announcements Wed, 18 Jun 2025 00:00:00 +0000 New capabilities for building agents on the Anthropic API https://claude.com/blog/agent-capabilities-api New capabilities for building agents on the Anthropic API https://claude.com/blog/agent-capabilities-api Product announcements Thu, 22 May 2025 00:00:00 +0000 Introducing web search on the Anthropic API https://claude.com/blog/web-search-api Introducing web search on the Anthropic API https://claude.com/blog/web-search-api Product announcements Wed, 07 May 2025 00:00:00 +0000 Claude can now connect to your world https://claude.com/blog/integrations Claude can now connect to your world https://claude.com/blog/integrations Product announcements Thu, 01 May 2025 00:00:00 +0000 Claude takes research to new places https://claude.com/blog/research Claude takes research to new places https://claude.com/blog/research Product announcements Tue, 15 Apr 2025 00:00:00 +0000 Introducing the Max Plan https://claude.com/blog/max-plan Introducing the Max Plan https://claude.com/blog/max-plan Product announcements Wed, 09 Apr 2025 00:00:00 +0000 Claude on Google Cloud’s Vertex AI: FedRAMP High and IL2 Authorized https://claude.com/blog/claude-on-google-cloud-fedramp-high Claude on Google Cloud’s Vertex AI: FedRAMP High and IL2 Authorized https://claude.com/blog/claude-on-google-cloud-fedramp-high Product announcements Wed, 02 Apr 2025 00:00:00 +0000 Claude can now search the web https://claude.com/blog/web-search Claude can now search the web https://claude.com/blog/web-search Product announcements Thu, 20 Mar 2025 00:00:00 +0000 Token-saving updates on the Anthropic API https://claude.com/blog/token-saving-updates Token-saving updates on the Anthropic API https://claude.com/blog/token-saving-updates Product announcements Thu, 13 Mar 2025 00:00:00 +0000 Get to production faster with the upgraded Anthropic Console https://claude.com/blog/upgraded-anthropic-console Get to production faster with the upgraded Anthropic Console https://claude.com/blog/upgraded-anthropic-console Thu, 06 Mar 2025 00:00:00 +0000 Claude 3.5 Haiku on AWS Trainium2 and model distillation in Amazon Bedrock https://claude.com/blog/trainium2-and-distillation Claude 3.5 Haiku on AWS Trainium2 and model distillation in Amazon Bedrock https://claude.com/blog/trainium2-and-distillation Product announcements Tue, 03 Dec 2024 00:00:00 +0000 Introducing the analysis tool in Claude.ai https://claude.com/blog/analysis-tool Introducing the analysis tool in Claude.ai https://claude.com/blog/analysis-tool Product announcements Thu, 24 Oct 2024 00:00:00 +0000 Improve your prompts in the developer console https://claude.com/blog/prompt-improver Improve your prompts in the developer console https://claude.com/blog/prompt-improver Product announcements Mon, 14 Oct 2024 00:00:00 +0000 Introducing the Message Batches API https://claude.com/blog/message-batches-api Introducing the Message Batches API https://claude.com/blog/message-batches-api Product announcements Tue, 08 Oct 2024 00:00:00 +0000 Workspaces in the Anthropic API Console https://claude.com/blog/workspaces Workspaces in the Anthropic API Console https://claude.com/blog/workspaces Product announcements Tue, 10 Sep 2024 00:00:00 +0000 Claude for Enterprise https://claude.com/blog/claude-for-enterprise Claude for Enterprise https://claude.com/blog/claude-for-enterprise Product announcements Tue, 10 Sep 2024 00:00:00 +0000 Artifacts are now generally available https://claude.com/blog/artifacts Artifacts are now generally available https://claude.com/blog/artifacts Product announcements Tue, 27 Aug 2024 00:00:00 +0000 Claude Android app https://claude.com/blog/android-app Claude Android app https://claude.com/blog/android-app Product announcements Tue, 16 Jul 2024 00:00:00 +0000 Fine-tune Claude 3 Haiku in Amazon Bedrock https://claude.com/blog/fine-tune-claude-3-haiku Fine-tune Claude 3 Haiku in Amazon Bedrock https://claude.com/blog/fine-tune-claude-3-haiku Product announcements Wed, 10 Jul 2024 00:00:00 +0000 Evaluate prompts in the developer console https://claude.com/blog/evaluate-prompts Evaluate prompts in the developer console https://claude.com/blog/evaluate-prompts Product announcements Tue, 09 Jul 2024 00:00:00 +0000 Claude can now use tools https://claude.com/blog/tool-use-ga Claude can now use tools https://claude.com/blog/tool-use-ga Product announcements Thu, 30 May 2024 00:00:00 +0000 Generate better prompts in the developer console https://claude.com/blog/prompt-generator Generate better prompts in the developer console https://claude.com/blog/prompt-generator Product announcements Mon, 20 May 2024 00:00:00 +0000 Introducing the Claude Team plan and iOS app https://claude.com/blog/team-plan-and-ios Introducing the Claude Team plan and iOS app https://claude.com/blog/team-plan-and-ios Product announcements Wed, 01 May 2024 00:00:00 +0000 Long context prompting for Claude 2.1 https://claude.com/blog/claude-2-1-prompting Long context prompting for Claude 2.1 https://claude.com/blog/claude-2-1-prompting Product announcements Wed, 06 Dec 2023 00:00:00 +0000 Claude on Amazon Bedrock now available to every AWS customer https://claude.com/blog/amazon-bedrock-general-availability Claude on Amazon Bedrock now available to every AWS customer https://claude.com/blog/amazon-bedrock-general-availability Product announcements Thu, 28 Sep 2023 00:00:00 +0000 Claude 2 on Amazon Bedrock https://claude.com/blog/claude-2-amazon-bedrock Claude 2 on Amazon Bedrock https://claude.com/blog/claude-2-amazon-bedrock Product announcements Wed, 23 Aug 2023 00:00:00 +0000 ================================================ FILE: feeds/feed_cohere.xml ================================================ The Cohere Blog https://cohere.com/blog Enterprise AI research and product updates from Cohere http://www.rssboard.org/rss-specification python-feedgen https://cohere.com/favicon.ico The Cohere Blog https://cohere.com/blog en Wed, 13 May 2026 10:50:30 +0000 Cohere advances sovereign AI capabilities with NVIDIA https://cohere.com/blog/cohere-sovereign-ai-nvidia NVIDIA ecosystem-native model and local North instance will meet growing market demand for secure, privately run AI systems https://cohere.com/blog/cohere-sovereign-ai-nvidia Newsroom Mon, 16 Mar 2026 16:28:39 -0400 The advantages of AI in business https://cohere.com/blog/advantage-of-ai-in-business The advantages of AI in business https://cohere.com/blog/advantage-of-ai-in-business For Business Tue, 03 Mar 2026 11:37:13 -0500 Cohere Labs Launches Tiny Aya, Making Multilingual AI Accessible https://cohere.com/blog/cohere-labs-tiny-aya Cohere Labs Launches Tiny Aya, Making Multilingual AI Accessible https://cohere.com/blog/cohere-labs-tiny-aya Research Tue, 17 Feb 2026 04:00:07 -0500 Cohere signs world chess champion Magnus Carlsen as brand ambassador https://cohere.com/blog/cohere-signs-world-chess-champion-magnus-carlsen Carlsen will bring his iconic reputation and strategic thinking to strengthen the company's brand and mission https://cohere.com/blog/cohere-signs-world-chess-champion-magnus-carlsen Company Fri, 13 Feb 2026 09:14:41 -0500 Introducing Model Vault: Your private platform for secure and scalable model inference https://cohere.com/blog/model-vault Model Vault simplifies serving and scaling Cohere models, so teams can focus on building, not infrastructure.  https://cohere.com/blog/model-vault Product Wed, 28 Jan 2026 08:59:42 -0500 How the Cohere Labs open research community turns early-career researchers into global leaders https://cohere.com/blog/how-the-cohere-labs-open-research-community-turns-early-career-researchers-into-global-leaders 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. https://cohere.com/blog/how-the-cohere-labs-open-research-community-turns-early-career-researchers-into-global-leaders Research Thu, 15 Jan 2026 07:05:20 -0500 How a Community Effort is Teaching AI to See Africa’s Richness https://cohere.com/blog/afriaya 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. https://cohere.com/blog/afriaya Research Tue, 16 Dec 2025 07:00:03 -0500 Introducing Rerank 4: Cohere’s most powerful reranker yet https://cohere.com/blog/rerank-4 A milestone in search and retrieval, offering unmatched accuracy and speed for enterprise applications. https://cohere.com/blog/rerank-4 Product Thu, 11 Dec 2025 11:50:00 -0500 Building trust in AI: Cohere’s approach to AI governance https://cohere.com/blog/building-trust-in-ai-coheres-approach-to-ai-governance Cohere’s AI governance frameworks, practices, and policies direct and guide the responsible development and use of our AI models and systems. https://cohere.com/blog/building-trust-in-ai-coheres-approach-to-ai-governance Secure AI Wed, 10 Dec 2025 13:07:51 -0500 Connect 2025: Why Collaboration is the Ultimate Research Superpower https://cohere.com/blog/connect-2025 Connect 2025: Why Collaboration is the Ultimate Research Superpower https://cohere.com/blog/connect-2025 Research Mon, 08 Dec 2025 11:22:06 -0500 Cohere expands partnership with SAP to provide Europe sovereign AI solutions https://cohere.com/blog/cohere-expands-partnership-with-sap SAP brings North to its Sovereign Cloud, bringing European enterprises and governments efficient, secure and powerful agentic AI. https://cohere.com/blog/cohere-expands-partnership-with-sap Newsroom Thu, 27 Nov 2025 06:39:25 -0500 HIPAA Business Associate agreements for custom model development https://cohere.com/blog/hipaa-business-associate-agreements-for-custom-model-development 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. https://cohere.com/blog/hipaa-business-associate-agreements-for-custom-model-development Company Thu, 13 Nov 2025 09:07:33 -0500 Making data transfer in LLM systems faster, leaner, and more scalable https://cohere.com/blog/making-data-transfer-in-llm-systems-faster-leaner-and-more-scalable Introducing Shared Memory IPC Caching — a high-performance caching mechanism contributed by Cohere to the vLLM project. https://cohere.com/blog/making-data-transfer-in-llm-systems-faster-leaner-and-more-scalable Developers Wed, 12 Nov 2025 09:37:42 -0500 Securing AI supply chains: Cohere’s commitment to model signing https://cohere.com/blog/securing-ai-supply-chains-coheres-commitment-to-model-signing Cohere has implemented model signing for all Cohere Command models hosted on Hugging Face to improve integrity and authenticity efforts. https://cohere.com/blog/securing-ai-supply-chains-coheres-commitment-to-model-signing Developers Thu, 30 Oct 2025 11:02:22 -0400 Announcing the Cohere Partner Program: Boosting enterprise AI https://cohere.com/blog/cohere-partner-program-boosting-enterprise-ai 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. https://cohere.com/blog/cohere-partner-program-boosting-enterprise-ai Company Tue, 07 Oct 2025 09:53:39 -0400 Cohere adds $100M in second close to latest round as it scales security-first enterprise AI https://cohere.com/blog/september-2025-funding-round Additional funding supports our growing global operations and development of frontier enterprise AI technology. https://cohere.com/blog/september-2025-funding-round Company Wed, 24 Sep 2025 08:55:36 -0400 Exploring AI in Education https://cohere.com/blog/exploring-ai-in-education Using Cohere Grants to transform students into AI builders. https://cohere.com/blog/exploring-ai-in-education Research Tue, 23 Sep 2025 15:23:41 -0400 Cohere opens Paris office as EMEA hub https://cohere.com/blog/paris-office Cohere strengthens presence in Paris with additions of VP of EMEA and Head of EMEA Public Policy. https://cohere.com/blog/paris-office Company Mon, 15 Sep 2025 07:56:38 -0400 AI adoption for national security: Modernizing defense https://cohere.com/blog/ai-for-national-security Second Front’s chief data scientist sees data security and LLM explainability as fundamental to overcoming government caution over AI adoption. https://cohere.com/blog/ai-for-national-security For Business Tue, 09 Sep 2025 09:40:28 -0400 Command A Translate: Secure translation for global enterprises https://cohere.com/blog/command-a-translate The new industry standard for secure, enterprise-ready machine translation. https://cohere.com/blog/command-a-translate Newsroom Thu, 28 Aug 2025 10:55:25 -0400 Command A Reasoning: Enterprise-grade control for AI agents https://cohere.com/blog/command-a-reasoning Securely powering enterprise applications with exceptional reasoning performance, efficiency, and controllability. https://cohere.com/blog/command-a-reasoning Newsroom Thu, 21 Aug 2025 10:50:26 -0400 Cohere deepens partnership with Government of Canada https://cohere.com/blog/cohere-partnership-canada-government Cohere and Government of Canada sign Memorandum of Understanding to transform the public sector with sovereign AI. https://cohere.com/blog/cohere-partnership-canada-government Newsroom Tue, 19 Aug 2025 08:03:24 -0400 Building AI agents that reshape financial services https://cohere.com/blog/ai-agents-for-financial-services Financial teams are unlocking a new era of compliance, efficiency, and customer trust—powered by AI agents. https://cohere.com/blog/ai-agents-for-financial-services For Business Fri, 15 Aug 2025 05:32:15 -0400 Elo ratings beyond arena-style evaluations https://cohere.com/blog/elo-ratings-beyond-arena-style-evaluations Insights and best practices for using Elo scoring methods for evaluation leaderboards. https://cohere.com/blog/elo-ratings-beyond-arena-style-evaluations Research Fri, 15 Aug 2025 01:00:57 -0400 Cohere raises $500M at $6.8B valuation to accelerate enterprise efficiency with agentic AI https://cohere.com/blog/august-2025-funding-round Fresh funding enables Cohere to accelerate its global expansion and build the next generation of secure enterprise and sovereign AI solutions. https://cohere.com/blog/august-2025-funding-round Company Thu, 14 Aug 2025 09:59:06 -0400 Modernizing FOI systems with AI https://cohere.com/blog/foi-systems-with-ai-agents 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. https://cohere.com/blog/foi-systems-with-ai-agents For Business Fri, 08 Aug 2025 07:38:24 -0400 Introducing North: The next era of enterprise AI https://cohere.com/blog/north-ga North enables enterprises that prioritize data security to deploy AI agents and automations at scale within their own infrastructure. https://cohere.com/blog/north-ga Company Wed, 06 Aug 2025 08:57:19 -0400 Introducing Command A Vision: Multimodal AI built for business https://cohere.com/blog/command-a-vision Command A Vision excels across enterprise image understanding tasks while keeping a low compute footprint. https://cohere.com/blog/command-a-vision Product Thu, 31 Jul 2025 09:55:06 -0400 Navigating the global push for sovereign AI https://cohere.com/blog/global-push-for-sovereign-ai Sovereign AI is driving a shift toward secure, locally tailored solutions, redefining global AI innovation and control. https://cohere.com/blog/global-push-for-sovereign-ai For Business Wed, 30 Jul 2025 11:28:00 -0400 Cohere and Bell partner to deliver sovereign AI https://cohere.com/blog/bell-partnership Bell Canada and Cohere announced a strategic partnership to provide full-stack sovereign AI solutions for government and enterprise customers across Canada. https://cohere.com/blog/bell-partnership Newsroom Mon, 28 Jul 2025 12:45:00 -0400 Secure and responsible AI for Europe https://cohere.com/blog/secure-and-responsible-ai-for-europe Announcing Cohere’s intention to sign the EU AI Act Code of Practice for General Purpose AI Models. https://cohere.com/blog/secure-and-responsible-ai-for-europe Company Thu, 24 Jul 2025 09:10:37 -0400 Legal work with AI: The DraftWise story https://cohere.com/blog/legal-work-with-ai-the-draftwise-story Transforming legal workflows through innovative and secure AI solutions. https://cohere.com/blog/legal-work-with-ai-the-draftwise-story For Business Wed, 23 Jul 2025 11:38:23 -0400 코히어, 서울에 APAC 허브 설립 발표 https://cohere.com/blog/seoul-office 새로운 서울 허브를 바탕으로 아시아 태평양 지역으로 확장 https://cohere.com/blog/seoul-office Company Mon, 14 Jul 2025 19:56:06 -0400 AI benchmarks: A business guide to effective evaluation https://cohere.com/blog/ai-benchmarks-for-business Public AI benchmarks are necessary but far from sufficient. Companies need to build evaluation systems that reflect real-world complexity and business needs. https://cohere.com/blog/ai-benchmarks-for-business For Business Tue, 08 Jul 2025 09:09:09 -0400 Cohere ouvre un bureau à Montréal https://cohere.com/blog/montreal-office Aujourd'hui, nous étendons notre présence au Canada avec l'ouverture d'un nouveau bureau de Cohere à Montréal. https://cohere.com/blog/montreal-office Company Thu, 03 Jul 2025 09:59:07 -0400 The AI advantage: How financial institutions win with AI https://cohere.com/blog/how-financial-institutions-win-with-ai-infographic 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. https://cohere.com/blog/how-financial-institutions-win-with-ai-infographic For Business Thu, 03 Jul 2025 07:28:51 -0400 Security risks in AI supply chains https://cohere.com/blog/security-risks-in-ai-supply-chains 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. https://cohere.com/blog/security-risks-in-ai-supply-chains For Business Tue, 01 Jul 2025 07:10:20 -0400 Bringing secure AI to critical systems https://cohere.com/blog/secure-ai-to-critical-systems 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. https://cohere.com/blog/secure-ai-to-critical-systems For Business Mon, 30 Jun 2025 05:58:00 -0400 Cohere achieves ISO 42001 and ISO 27001 certifications https://cohere.com/blog/iso-42001-and-iso-27001-certifications Achieving these milestones marks Cohere’s commitment to meet the highest global standards in cybersecurity and responsible AI for our customers. https://cohere.com/blog/iso-42001-and-iso-27001-certifications Company Fri, 27 Jun 2025 10:10:46 -0400 Enterprise AI security challenges and solutions https://cohere.com/blog/ai-security-challenges-and-solutions-webinar Empowering enterprises to innovate with confidence in the AI era. https://cohere.com/blog/ai-security-challenges-and-solutions-webinar For Business Thu, 19 Jun 2025 06:45:22 -0400 Cohere partners with Canada and UK Governments on secure AI https://cohere.com/blog/canada-uk-government-partnerships Canada and the UK will leverage Cohere's secure AI technology to enhance government services and national sovereignty. https://cohere.com/blog/canada-uk-government-partnerships Company Sun, 15 Jun 2025 12:04:19 -0400 Defining AI automation: A new kind of workplace https://cohere.com/blog/ai-automation Learn how to develop an enterprise AI strategy with our step-by-step template and choose the best AI approach for your company. https://cohere.com/blog/ai-automation For Business Fri, 13 Jun 2025 08:21:00 -0400 Cohere and Ensemble partner to bring agentic AI to healthcare https://cohere.com/blog/ensemble-partnership Ensemble will use North by Cohere to enhance healthcare revenue cycle management with secure AI. https://cohere.com/blog/ensemble-partnership Company Tue, 10 Jun 2025 09:00:59 -0400 Secure AI: How to safeguard your AI systems https://cohere.com/blog/secure-ai Learn how to secure your AI systems, identify potential risks, and explore frameworks and best practices to protect your AI models and data. https://cohere.com/blog/secure-ai For Business Thu, 05 Jun 2025 11:39:00 -0400 Cohere and Second Front bring secure AI to the public sector https://cohere.com/blog/second-front-partnership Cohere is partnering with Second Front to deliver secure AI solutions that bolster government services and national security https://cohere.com/blog/second-front-partnership Company Wed, 04 Jun 2025 08:55:33 -0400 AI in finance: Navigating compliance, efficiency, and scale https://cohere.com/blog/ai-for-financial-institutions-webinar Discover how AI can drive innovation, efficiency, and value creation in your financial institution. https://cohere.com/blog/ai-for-financial-institutions-webinar For Business Tue, 03 Jun 2025 06:48:50 -0400 AI customer experience: Shaping engagement with businesses https://cohere.com/blog/ai-customer-experience Discover how different AI solutions help enhance customer interactions by improving personalization, automation, and proactive services. https://cohere.com/blog/ai-customer-experience For Business Mon, 02 Jun 2025 06:13:00 -0400 AI agents: Driving productivity at work https://cohere.com/blog/enterprise-ai-agents-infographic This infographic explores how AI agents boost workplace productivity by automating tasks, improving decision-making, and empowering teams. https://cohere.com/blog/enterprise-ai-agents-infographic For Business Mon, 02 Jun 2025 04:31:00 -0400 Master agentic AI deployment https://cohere.com/blog/agentic-ai-deployment Enable faster agentic AI deployment with secure, customized, and efficient solutions. https://cohere.com/blog/agentic-ai-deployment For Business Fri, 30 May 2025 08:40:00 -0400 Five ways to modernize manufacturing with AI https://cohere.com/blog/manufacturing-and-supply-chain-with-ai From ensuring compliance to working with legacy systems, here are five ways manufacturers can overcome AI adoption challenges. https://cohere.com/blog/manufacturing-and-supply-chain-with-ai For Business Wed, 28 May 2025 07:52:04 -0400 ================================================ FILE: feeds/feed_cursor.xml ================================================ Cursor Blog https://cursor.com/blog Latest updates from Cursor http://www.rssboard.org/rss-specification python-feedgen https://cursor.com/favicon.ico Cursor Blog https://cursor.com/blog en Wed, 13 May 2026 10:50:31 +0000 Beyond efficiency: PayPal expands what's possible to build with AI https://cursor.com/blog/paypal https://cursor.com/blog/paypal Mon, 11 May 2026 12:00:00 +0000 Updates to Bugbot for Teams and Individuals https://cursor.com/blog/may-2026-bugbot-changes https://cursor.com/blog/may-2026-bugbot-changes product Mon, 11 May 2026 12:00:00 +0000 Bootstrapping Composer with autoinstall https://cursor.com/blog/bootstrapping-composer-with-autoinstall https://cursor.com/blog/bootstrapping-composer-with-autoinstall research Wed, 06 May 2026 00:00:00 +0000 Continually improving our agent harness https://cursor.com/blog/continually-improving-agent-harness https://cursor.com/blog/continually-improving-agent-harness research Thu, 30 Apr 2026 12:00:00 +0000 Build programmatic agents with the Cursor SDK https://cursor.com/blog/typescript-sdk https://cursor.com/blog/typescript-sdk product Wed, 29 Apr 2026 12:00:00 +0000 National Australia Bank accelerates legacy migrations with Cursor https://cursor.com/blog/nab https://cursor.com/blog/nab Thu, 23 Apr 2026 12:00:00 +0000 Cursor partners with SpaceX on model training https://cursor.com/blog/spacex-model-training https://cursor.com/blog/spacex-model-training company Tue, 21 Apr 2026 22:17:00 +0000 Keeping the Cursor app stable https://cursor.com/blog/app-stability https://cursor.com/blog/app-stability research Tue, 21 Apr 2026 12:00:00 +0000 Amplitude ships 3x more production code with Cursor https://cursor.com/blog/amplitude https://cursor.com/blog/amplitude Wed, 15 Apr 2026 12:00:00 +0000 Better AI models enable more ambitious work https://cursor.com/blog/better-models-ambitious-work https://cursor.com/blog/better-models-ambitious-work research Wed, 15 Apr 2026 12:00:00 +0000 Interact with agent-created visualizations in canvases https://cursor.com/blog/canvas https://cursor.com/blog/canvas product Wed, 15 Apr 2026 00:00:00 +0000 Speeding up GPU kernels by 38% with a multi-agent system https://cursor.com/blog/multi-agent-kernels https://cursor.com/blog/multi-agent-kernels research Tue, 14 Apr 2026 12:00:00 +0000 Bugbot now self-improves with learned rules https://cursor.com/blog/bugbot-learning https://cursor.com/blog/bugbot-learning product Wed, 08 Apr 2026 12:00:00 +0000 Better MoE model inference with warp decode https://cursor.com/blog/warp-decode https://cursor.com/blog/warp-decode research Mon, 06 Apr 2026 12:00:00 +0000 Meet the new Cursor https://cursor.com/blog/cursor-3 Cursor 3 is a unified workspace for building software with agents. https://cursor.com/blog/cursor-3 Thu, 02 Apr 2026 00:00:00 +0000 Introducing Composer 2 https://cursor.com/blog/composer-2 Frontier-level coding with strong CursorBench results, higher token efficiency, and a faster default variant. https://cursor.com/blog/composer-2 Thu, 19 Mar 2026 00:00:00 +0000 How we compare model quality in Cursor https://cursor.com/blog/cursorbench We use a hybrid online-offline eval process to keep our understanding of model quality aligned with what developers actually do. https://cursor.com/blog/cursorbench Wed, 11 Mar 2026 12:00:00 +0000 PlanetScale protects production reliability with Bugbot https://cursor.com/blog/planetscale https://cursor.com/blog/planetscale Mon, 02 Mar 2026 12:00:00 +0000 The third era of AI software development https://cursor.com/blog/third-era A third era of AI software development is emerging as autonomous cloud agents take on larger tasks over longer timescales. https://cursor.com/blog/third-era Thu, 26 Feb 2026 19:35:24 +0000 ================================================ FILE: feeds/feed_dagster.xml ================================================ Dagster Blog https://dagster.io/blog Latest updates from Dagster http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:50:33 +0000 Announcing the Dagster+ Terraform Provider https://dagster.io/blog/announcing-the-dagster-terraform-provider 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. https://dagster.io/blog/announcing-the-dagster-terraform-provider Tue, 28 Apr 2026 00:00:00 +0000 The Missing Half of the Enterprise Context Layer https://dagster.io/blog/the-missing-half-of-the-enterprise-context-layer 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. https://dagster.io/blog/the-missing-half-of-the-enterprise-context-layer Wed, 22 Apr 2026 00:00:00 +0000 How to Orchestrate Across Multiple Databricks Workspaces Without Losing Your Mind https://dagster.io/blog/how-to-orchestrate-across-multiple-databricks-workspaces-without-losing-your-mind Once your pipelines span multiple Databricks workspaces, you're no longer orchestrating a single system you're coordinating a distributed one. https://dagster.io/blog/how-to-orchestrate-across-multiple-databricks-workspaces-without-losing-your-mind Mon, 20 Apr 2026 00:00:00 +0000 Dagster 1.13: Octopus's Garden https://dagster.io/blog/dagster-1-13-octopuss-garden Dagster skills, partitioned asset checks, state backed components, virtual assets, and stronger integrations. https://dagster.io/blog/dagster-1-13-octopuss-garden Thu, 09 Apr 2026 00:00:00 +0000 Monorepos, the hub-and-spoke model, and Copybara https://dagster.io/blog/monorepos-the-hub-and-spoke-model-and-copybara How we configure Copybara for bi-directional syncing to enable a hub-and-spoke model for Git repositories https://dagster.io/blog/monorepos-the-hub-and-spoke-model-and-copybara Fri, 03 Apr 2026 00:00:00 +0000 Making Dagster Easier to Contribute to in an AI-Driven World https://dagster.io/blog/making-dagster-easier-to-contribute 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. https://dagster.io/blog/making-dagster-easier-to-contribute Wed, 01 Apr 2026 00:00:00 +0000 DataOps with Dagster: A Practical Guide to Building a Reliable Data Platform https://dagster.io/blog/dataops-with-dagster-a-practical-guide-to-building-a-reliable-data-platform DataOps is about building a system that provides visibility into what's happening and control over how it behaves https://dagster.io/blog/dataops-with-dagster-a-practical-guide-to-building-a-reliable-data-platform Tue, 17 Mar 2026 00:00:00 +0000 Unlocking the Full Value of Your Databricks https://dagster.io/blog/unlocking-the-full-value-of-your-databricks 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. https://dagster.io/blog/unlocking-the-full-value-of-your-databricks Thu, 12 Mar 2026 00:00:00 +0000 Announcing AI Driven Data Engineering https://dagster.io/blog/announcing-ai-driven-data-engineering 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. https://dagster.io/blog/announcing-ai-driven-data-engineering Thu, 05 Mar 2026 00:00:00 +0000 When to Move from Dagster OSS to Dagster+ https://dagster.io/blog/when-to-move-from-dagster-oss-to-dagster 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. https://dagster.io/blog/when-to-move-from-dagster-oss-to-dagster Thu, 26 Feb 2026 00:00:00 +0000 Sample-Level Versioning for ML Pipelines with Dagster and Metaxy https://dagster.io/blog/building-real-time-interactive-avatars-with-metaxy Learn how Metaxy can be used to build multimodal data pipelines with sample-level granularity on Dagster https://dagster.io/blog/building-real-time-interactive-avatars-with-metaxy Fri, 13 Feb 2026 00:00:00 +0000 Evaluating Skills https://dagster.io/blog/evaluating-agent-skills We built a light weight evaluation framework to quantiatively measure the effectiveness of the Dagster Skills, and these are our findings. https://dagster.io/blog/evaluating-agent-skills Fri, 06 Feb 2026 00:00:00 +0000 Great Infrastructure Needs Great Stories: Designing our Children’s Book https://dagster.io/blog/great-infrastructure-needs-great-stories 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. https://dagster.io/blog/great-infrastructure-needs-great-stories Thu, 05 Feb 2026 00:00:00 +0000 Closing the DataOps Loop: Why We Built Compass for Dagster+ https://dagster.io/blog/closing-the-dataops-loop-why-we-built-compass-for-dagster Detection isn't the bottleneck anymore. Understanding is. Compass closes the loop by turning Dagster+ operational data into a conversation. https://dagster.io/blog/closing-the-dataops-loop-why-we-built-compass-for-dagster Tue, 03 Feb 2026 00:00:00 +0000 Pytest for Agent-Generated Code: Concrete Testing Strategies to Put Into Practice https://dagster.io/blog/pytest-for-agent-generated-code-concrete-testing-strategies-to-put-into-practice 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. https://dagster.io/blog/pytest-for-agent-generated-code-concrete-testing-strategies-to-put-into-practice Mon, 26 Jan 2026 00:00:00 +0000 Dagster + Snowflake: Building Production AI Pipelines with Cortex https://dagster.io/blog/dagster-snowflake-cortex Snowflake handles AI compute while Dagster handles orchestration, observability, and the operational patterns that turn AI experiments into reliable production pipelines. https://dagster.io/blog/dagster-snowflake-cortex Wed, 21 Jan 2026 00:00:00 +0000 Your GTM Data, Finally Untangled https://dagster.io/blog/your-gtm-data-finally-untangled 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. https://dagster.io/blog/your-gtm-data-finally-untangled Thu, 15 Jan 2026 00:00:00 +0000 Dignified Python: 10 Rules to Improve your LLM Agents https://dagster.io/blog/dignified-python-10-rules-to-improve-your-llm-agents 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. https://dagster.io/blog/dignified-python-10-rules-to-improve-your-llm-agents Fri, 09 Jan 2026 00:00:00 +0000 Evaluating Model Behavior Through Chess https://dagster.io/blog/evaluating-model-behavior-through-chess 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. https://dagster.io/blog/evaluating-model-behavior-through-chess Wed, 07 Jan 2026 00:00:00 +0000 How to Enforce Data Quality at Every Stage: A Practical Guide to Catching Issues Before They Cost You https://dagster.io/blog/how-to-enforce-data-quality-at-every-stage 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. https://dagster.io/blog/how-to-enforce-data-quality-at-every-stage Tue, 06 Jan 2026 00:00:00 +0000 When Sync Isn’t Enough https://dagster.io/blog/when-sync-isnt-enough 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. https://dagster.io/blog/when-sync-isnt-enough Mon, 05 Jan 2026 00:00:00 +0000 How to Build a Data Platform That Actually Scales https://dagster.io/blog/how-to-build-a-data-platform-that-actually-scales Most teams build data platforms reactively when you should be architecting one that scales with your business, not against it. https://dagster.io/blog/how-to-build-a-data-platform-that-actually-scales Mon, 22 Dec 2025 00:00:00 +0000 Orchestrating Nanochat: Deploying the Model https://dagster.io/blog/orchestrating-nanochat-deploying-the-model 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. https://dagster.io/blog/orchestrating-nanochat-deploying-the-model Tue, 16 Dec 2025 00:00:00 +0000 Data Ingestion Patterns: When to Use Push, Pull, and Poll (With Real Examples) https://dagster.io/blog/data-ingestion-patterns-when-to-use-push-pull-and-poll 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. https://dagster.io/blog/data-ingestion-patterns-when-to-use-push-pull-and-poll Mon, 15 Dec 2025 00:00:00 +0000 Dagster + Atlan: Real-Time Asset Observability in Your Data Catalog https://dagster.io/blog/dagster-atlan-integration Automatically sync asset materialization events and lineage from Dagster Cloud to Atlan https://dagster.io/blog/dagster-atlan-integration Thu, 11 Dec 2025 00:00:00 +0000 Orchestrating Nanochat: Training the Models https://dagster.io/blog/orchestrating-nanochat-training-the-models 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. https://dagster.io/blog/orchestrating-nanochat-training-the-models Tue, 09 Dec 2025 00:00:00 +0000 Orchestrating Nanochat: Building the Tokenizer https://dagster.io/blog/orchestrating-nanochat-building-the-tokenizer 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. https://dagster.io/blog/orchestrating-nanochat-building-the-tokenizer Wed, 03 Dec 2025 00:00:00 +0000 When (and When Not) to Optimize Data Pipelines https://dagster.io/blog/when-and-when-not-to-optimize-data-pipelines 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. https://dagster.io/blog/when-and-when-not-to-optimize-data-pipelines Mon, 17 Nov 2025 00:00:00 +0000 Your Data Team Shouldn't Be a Help Desk: Use Compass with Your Data https://dagster.io/blog/compass-now-available 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. https://dagster.io/blog/compass-now-available Thu, 13 Nov 2025 00:00:00 +0000 Introducing Our New eBook: Scaling Data Teams https://dagster.io/blog/introducing-our-new-ebook-scaling-data-teams Learn how real data teams, from solo practitioners to enterprise-scale organizations, build in Dagster’s new eBook, Scaling Data Teams. https://dagster.io/blog/introducing-our-new-ebook-scaling-data-teams Wed, 05 Nov 2025 00:00:00 +0000 Dagster 1.12: Monster Mash https://dagster.io/blog/dagster-1-12-monster-mash 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. https://dagster.io/blog/dagster-1-12-monster-mash Thu, 30 Oct 2025 00:00:00 +0000 How Compass Turns Questions Into Queries https://dagster.io/blog/how-compass-turns-questions-into-queries 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. https://dagster.io/blog/how-compass-turns-questions-into-queries Thu, 23 Oct 2025 00:00:00 +0000 Scaling Analysis Without Scaling the Team https://dagster.io/blog/scaling-analysis-without-scaling-the-team Learn how to maximize the impact of your data stack with a lean team—keeping your analysts at the heart of every decision. https://dagster.io/blog/scaling-analysis-without-scaling-the-team Mon, 20 Oct 2025 00:00:00 +0000 Bridging High-Code and Low-Code https://dagster.io/blog/bridging-high-code-and-low-code Empowering engineers with flexibility and analysts with accessibility https://dagster.io/blog/bridging-high-code-and-low-code Wed, 01 Oct 2025 00:00:00 +0000 Building a Better Lakehouse: From Airflow to Dagster https://dagster.io/blog/building-a-better-lakehouse-from-airflow-to-dagster How I took an excellent lakehouse tutorial and made it even better with modern data orchestration https://dagster.io/blog/building-a-better-lakehouse-from-airflow-to-dagster Tue, 30 Sep 2025 00:00:00 +0000 Designing User-Friendly Dagster Components https://dagster.io/blog/designing-user-friendly-dagster-components The difference between components that thrive and components that collect digital dust? User experience design. https://dagster.io/blog/designing-user-friendly-dagster-components Thu, 25 Sep 2025 00:00:00 +0000 Dagster+ Now Available in the EU https://dagster.io/blog/dagster-plus-now-available-in-the-eu We're thrilled to announce that Dagster+ has arrived in Europe! https://dagster.io/blog/dagster-plus-now-available-in-the-eu Fri, 19 Sep 2025 00:00:00 +0000 Dagster Components are Generally Available (GA) https://dagster.io/blog/dagster-components-ga Featuring YAML-based pipeline definitions, plug-and-play integrations, automatic documentation, and a unified CLI experience. https://dagster.io/blog/dagster-components-ga Thu, 18 Sep 2025 00:00:00 +0000 Introducing Compass: Data-driven decisions right in Slack https://dagster.io/blog/introducing-compass 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. https://dagster.io/blog/introducing-compass Wed, 10 Sep 2025 00:00:00 +0000 Introducing the new Dagster+ UI – Your Data Platform’s Command Center https://dagster.io/blog/introducing-the-new-dagster-plus-ui Featuring a new modern homepage, enhanced asset health and freshness monitoring, customizable dashboards, and real-time insights with cost monitoring. https://dagster.io/blog/introducing-the-new-dagster-plus-ui Wed, 10 Sep 2025 00:00:00 +0000 dbt Fusion Support Comes to Dagster https://dagster.io/blog/dbt-fusion-support-comes-to-dagster Learn how to use the beta dbt Fusion engine in your Dagster pipelines, and the technical details of how support was added https://dagster.io/blog/dbt-fusion-support-comes-to-dagster Fri, 22 Aug 2025 00:00:00 +0000 What CoPilot Won’t Teach You About Python (Part 2) https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-2 Explore another set of powerful yet overlooked Python features—from overload and cached_property to contextvars and ExitStack https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-2 Wed, 20 Aug 2025 00:00:00 +0000 Software-Defined Assets Explained https://dagster.io/blog/software-defined-assets 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. https://dagster.io/blog/software-defined-assets Thu, 07 Aug 2025 00:00:00 +0000 Untangling Python Packages Part 2 https://dagster.io/blog/untangling-python-packages-part-2 A deep dive into how Dagster leverages pyproject.toml for modern Python packaging, from project metadata and dependencies to build systems and development tooling. https://dagster.io/blog/untangling-python-packages-part-2 Thu, 07 Aug 2025 00:00:00 +0000 Untangling Python Packages Part 1 https://dagster.io/blog/untangling-python-packages-part-1 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. https://dagster.io/blog/untangling-python-packages-part-1 Thu, 31 Jul 2025 00:00:00 +0000 A Practical Guide to Dagster Resources https://dagster.io/blog/a-practical-guide-to-dagster-resources How dependency injection and smart resource management can save your sanity (and your deployments) https://dagster.io/blog/a-practical-guide-to-dagster-resources Wed, 30 Jul 2025 00:00:00 +0000 How to Structure Your Dagster Project https://dagster.io/blog/how-to-structure-your-dagster-project Setting up your Dagster project the right way from day one saves you headaches later, makes your team more effective, and helps scale. https://dagster.io/blog/how-to-structure-your-dagster-project Fri, 25 Jul 2025 00:00:00 +0000 What CoPilot Won’t Teach You About Python (Part 1) https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-1 Advanced Python features that AI agents may miss https://dagster.io/blog/what-copilot-wont-teach-you-about-python-part-1 Wed, 23 Jul 2025 00:00:00 +0000 Announcing ETL Course with Dagster https://dagster.io/blog/annoucing-etl-with-dagster 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 https://dagster.io/blog/annoucing-etl-with-dagster Thu, 10 Jul 2025 00:00:00 +0000 Dagster 1.11: Build Me Up Buttercup https://dagster.io/blog/dagster-1-11-build-me-up-buttercup Significantly improved pipeline-building experience with Components and dg, enhanced orchestration capabilities, integration power-ups, and more. https://dagster.io/blog/dagster-1-11-build-me-up-buttercup Thu, 26 Jun 2025 00:00:00 +0000 DSLs to the Rescue https://dagster.io/blog/dsls-to-the-rescue Designing better data tooling with DSLs https://dagster.io/blog/dsls-to-the-rescue Tue, 17 Jun 2025 00:00:00 +0000 Code Location Best Practices https://dagster.io/blog/code-location-best-practices How to organize your code locations for clarity, maintainability, and reuse. https://dagster.io/blog/code-location-best-practices Thu, 12 Jun 2025 00:00:00 +0000 Beyond Point to Point https://dagster.io/blog/beyond-point-to-point Why Modern Data Teams Need Orchestration, Not Just Integration https://dagster.io/blog/beyond-point-to-point Tue, 20 May 2025 00:00:00 +0000 Vibe Coding Survival Guide https://dagster.io/blog/vibe-coding-survival-guide How data engineers can get the most from AI coding https://dagster.io/blog/vibe-coding-survival-guide Thu, 15 May 2025 00:00:00 +0000 Dagster Pipes: Now available for TypeScript, Rust, and Java https://dagster.io/blog/pipes-typescript-rust-java Expanding Dagster pipes to support Typescript, Rust, and Java https://dagster.io/blog/pipes-typescript-rust-java Mon, 12 May 2025 00:00:00 +0000 Cut Through the Noise: Precision Data Management with Dagster's Asset Selection Framework https://dagster.io/blog/updated-asset-selection-syntax Data platforms can be complex, Dagster's understanding of Lineage makes it easy to get to whats important. https://dagster.io/blog/updated-asset-selection-syntax Thu, 08 May 2025 00:00:00 +0000 Accelerate Data Pipeline Development with Dagster Components https://dagster.io/blog/accelerate-data-pipeline-development-with-dagster-components Introducing Dagster Components, a simplified approach to developing and managing your data pipelines https://dagster.io/blog/accelerate-data-pipeline-development-with-dagster-components Fri, 02 May 2025 00:00:00 +0000 The Case for Dagster: Moving Beyond Airflow in the Modern Data Stack™ https://dagster.io/blog/moving-beyond-airflow-in-the-modern-data-stack How we think about data orchestration needs to fundamentally change, and Dagster represents that shift in thinking. https://dagster.io/blog/moving-beyond-airflow-in-the-modern-data-stack Wed, 23 Apr 2025 00:00:00 +0000 Why we love uv https://dagster.io/blog/why-we-love-uv Making Python package management simple and how Dagster leverages uv. https://dagster.io/blog/why-we-love-uv Mon, 21 Apr 2025 00:00:00 +0000 Free Your Mind With Dagster https://dagster.io/blog/free-your-mind-with-dagster You need tools that handle the trivial stuff and give you, your team, and your company space to think and act decisively. https://dagster.io/blog/free-your-mind-with-dagster Wed, 09 Apr 2025 00:00:00 +0000 MS Fabric vs. Dagster: Why Your Architecture Choices Matter https://dagster.io/blog/dagster-fabric The fundamental challenge facing data teams today is building scalable platforms that enable self-service for data consumers. https://dagster.io/blog/dagster-fabric Tue, 08 Apr 2025 00:00:00 +0000 Dagster University Presents: Testing with Dagster https://dagster.io/blog/dagster-university-presents-testing-with-dagster Learn best practices for writing Pythonic tests for Dagster. https://dagster.io/blog/dagster-university-presents-testing-with-dagster Mon, 31 Mar 2025 00:00:00 +0000 Observability That Matters with Dagster+ Alerts https://dagster.io/blog/observability-that-matters-with-dagster-alerts Broken pipelines are unavoidable. Catch problems as soon as they happen with the improved alerting suite in Dagster+. https://dagster.io/blog/observability-that-matters-with-dagster-alerts Thu, 06 Mar 2025 00:00:00 +0000 Building with Dagster vs Airflow https://dagster.io/blog/building-with-dagster-vs-airflow Rebuilding Airflow's tutorial in Dagster https://dagster.io/blog/building-with-dagster-vs-airflow Tue, 04 Mar 2025 00:00:00 +0000 Dagster 1.10: Mambo No 5 https://dagster.io/blog/dagster-1-10-mambo-no-5 Intuitive Concurrency Controls, Improved ELT integrations, and Developer Experience Upgrades https://dagster.io/blog/dagster-1-10-mambo-no-5 Wed, 12 Feb 2025 00:00:00 +0000 From Prototype to Production: Building AI Products That Scale with Dagster https://dagster.io/blog/building-ai-products-that-scale 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. https://dagster.io/blog/building-ai-products-that-scale Fri, 24 Jan 2025 00:00:00 +0000 AI Reference Architectures https://dagster.io/blog/ai-reference-architectures Guide to the some common AI Architectures patterns with Dagster https://dagster.io/blog/ai-reference-architectures Fri, 24 Jan 2025 00:00:00 +0000 Data Platform Week 2024 https://dagster.io/blog/data-platform-week-2024 The future of data platforms are composable, unified, and leveraged https://dagster.io/blog/data-platform-week-2024 Tue, 17 Dec 2024 00:00:00 +0000 Interactive Debugging With Dagster and Docker https://dagster.io/blog/interactive-debugging-with-dagster-and-docker Step-by-step guide to debugging Dagster code directly in Docker, bridging the gap between development and deployment. https://dagster.io/blog/interactive-debugging-with-dagster-and-docker Mon, 02 Dec 2024 00:00:00 +0000 Bridging Business Intelligence and Data Orchestration with Dagster + Sigma https://dagster.io/blog/dagster-sigma Break down the silos between data engineering and BI tools https://dagster.io/blog/dagster-sigma Thu, 14 Nov 2024 00:00:00 +0000 Announcing 4 New Integrations: Dagster + Your Favorite BI Tools https://dagster.io/blog/dagster-power-bi https://dagster.io/blog/dagster-power-bi Thu, 14 Nov 2024 00:00:00 +0000 Dagster 1.9: Spooky https://dagster.io/blog/dagster-1-9-spooky Declarative automation has officially graduated, BI in your asset graph, Airlift to streamline migrations, and more. https://dagster.io/blog/dagster-1-9-spooky Thu, 31 Oct 2024 00:00:00 +0000 AI's Long-Term Impact on Data Engineering Roles https://dagster.io/blog/ai-and-data-engineering-roles Expectations for Data Engineering will rapidly inflate; the nature of the work will change. https://dagster.io/blog/ai-and-data-engineering-roles Mon, 28 Oct 2024 00:00:00 +0000 From Chaos to Control: How Dagster Unifies Orchestration and Data Cataloging https://dagster.io/blog/data-catalog Navigate complex data environments more effectively, and ensure that valuable data assets are easily discoverable and usable. https://dagster.io/blog/data-catalog Mon, 14 Oct 2024 00:00:00 +0000 10 Reasons Why No-Code Solutions Almost Always Fail https://dagster.io/blog/why-no-code-solutions-almost-always-fail 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. https://dagster.io/blog/why-no-code-solutions-almost-always-fail Thu, 03 Oct 2024 00:00:00 +0000 5 Best Practices AI Engineers Should Learn From Data Engineering https://dagster.io/blog/ai-engineering-is-data-engineering AI engineering is data engineering. Here are 5 best practices the former should adopt from the latter to succeed. https://dagster.io/blog/ai-engineering-is-data-engineering Mon, 30 Sep 2024 00:00:00 +0000 Dagster Deep Dive Recap: Orchestrating Flexible Compute for ML with Dagster and Modal https://dagster.io/blog/deepdive-recap-dagster-modal Learn how to use Dagster and Modal to automate and streamline your machine learning model training and data processing. https://dagster.io/blog/deepdive-recap-dagster-modal Fri, 27 Sep 2024 00:00:00 +0000 The Rise of the Data Platform Engineer https://dagster.io/blog/rise-of-the-data-platform-engineer How the next step in the evolution of the Data Engineering role requires a platform approach. https://dagster.io/blog/rise-of-the-data-platform-engineer Thu, 26 Sep 2024 00:00:00 +0000 Dagster vs. Airflow https://dagster.io/blog/dagster-airflow Get the tale of the tape between the two orchestration giants and see why Dagster stands tall as the superior choice. https://dagster.io/blog/dagster-airflow Mon, 23 Sep 2024 00:00:00 +0000 What is Data Visibility? https://dagster.io/blog/data-visibility-primer The unseen data is often the deadliest. Here’s how to shine a light on it in your business. https://dagster.io/blog/data-visibility-primer Thu, 12 Sep 2024 00:00:00 +0000 Dagster Deep Dive Recap: Building a True Data Platform https://dagster.io/blog/deepdive-recap-building-a-true-data-platform Move past the MDS and build a data platform for observability, cost-efficiency, and top-tier orchestrating. https://dagster.io/blog/deepdive-recap-building-a-true-data-platform Fri, 06 Sep 2024 00:00:00 +0000 Dagster Deep Dive Recap: Evolution of the Data Platform https://dagster.io/blog/deepdive-recap-evolution-data-platform Dagster and SDF show how the power of two can connect local development and production orchestration. https://dagster.io/blog/deepdive-recap-evolution-data-platform Fri, 30 Aug 2024 00:00:00 +0000 Dagster 1.8: Call Me Maybe https://dagster.io/blog/dagster-1-8-call-me-maybe Ecosystem and integration improvements, data catalog improvements, new asset checks, new declarative automation, and more. https://dagster.io/blog/dagster-1-8-call-me-maybe Thu, 08 Aug 2024 00:00:00 +0000 Dagster Deep Dive Recap: Building Reliable Data Platforms https://dagster.io/blog/deepdive-recap-data-reliability Explore the importance of data quality and learn strategies for integrating quality checks using Dagster. https://dagster.io/blog/deepdive-recap-data-reliability Wed, 07 Aug 2024 00:00:00 +0000 A Look Inside the Dagster Labs Culture https://dagster.io/blog/a-look-inside-dagster-labs-culture Operations Lead Eunice Ho dives into the Dagster Labs culture and why it makes for an ideal work environment. https://dagster.io/blog/a-look-inside-dagster-labs-culture Thu, 18 Jul 2024 00:00:00 +0000 Enabling Data Quality with Dagster and Great Expectations https://dagster.io/blog/ensuring-data-quality-with-dagster-and-great-expectations Use Dagster and GX to improve data pipeline reliability without writing custom logic for data testing. https://dagster.io/blog/ensuring-data-quality-with-dagster-and-great-expectations Mon, 08 Jul 2024 00:00:00 +0000 The Rise of Medium Code https://dagster.io/blog/the-rise-of-medium-code Why the reports of software’s demise are greatly exaggerated. https://dagster.io/blog/the-rise-of-medium-code Mon, 10 Jun 2024 00:00:00 +0000 ELT Options in Dagster https://dagster.io/blog/elt-options-in-dagster Why running data ingestion jobs straight from the orchestrator is often a preferred approach. https://dagster.io/blog/elt-options-in-dagster Wed, 05 Jun 2024 00:00:00 +0000 Dagster’s Code Location Architecture https://dagster.io/blog/dagster-code-locations A structure for a reliable, maintainable data platform design. https://dagster.io/blog/dagster-code-locations Tue, 28 May 2024 00:00:00 +0000 What is Dagster: A Guide to the Data Orchestrator https://dagster.io/blog/what-is-dagster Get to know the tool that sets the standard for modern data orchestration. https://dagster.io/blog/what-is-dagster Fri, 17 May 2024 00:00:00 +0000 Building Cost Effective AI Pipelines with OpenAI, LangChain, and Dagster https://dagster.io/blog/building-cost-effective-ai-pipelines-openai-langchain-dagster Leverage the power of LLMs while keeping the costs in check using the Dagster OpenAI integration. https://dagster.io/blog/building-cost-effective-ai-pipelines-openai-langchain-dagster Wed, 08 May 2024 00:00:00 +0000 Unlocking Flexible Pipelines: Customizing the Asset Decorator https://dagster.io/blog/unlocking-flexible-pipelines-customizing-asset-decorator Use Asset Factories within Dagster to streamline data asset creation, promote code reusability, and maintain data engineering workflows. https://dagster.io/blog/unlocking-flexible-pipelines-customizing-asset-decorator Tue, 30 Apr 2024 00:00:00 +0000 Ensuring Reliable Data with Dagster+ https://dagster.io/blog/ensuring-reliable-data-dagster-plus Dagster+ helps you monitor the freshness, quality, and schema of your data. https://dagster.io/blog/ensuring-reliable-data-dagster-plus Wed, 17 Apr 2024 00:00:00 +0000 Dagster+ Catalog: A New Built-in Asset Library for All Practitioners https://dagster.io/blog/dagster-plus-calatog-a-new-built-in-asset-library Give your data teams a powerful new system of record without the overhead of maintaining a third-party catalog. https://dagster.io/blog/dagster-plus-calatog-a-new-built-in-asset-library Wed, 17 Apr 2024 00:00:00 +0000 See Both the Forest and the Trees with Dagster+ Insights https://dagster.io/blog/see-the-forest-and-trees-dagster-plus How Dagster+ Insights helps you control costs and elevate your data platform’s observability. https://dagster.io/blog/see-the-forest-and-trees-dagster-plus Wed, 17 Apr 2024 00:00:00 +0000 Change Tracking Branch Deployments in Dagster+ https://dagster.io/blog/change-tracking-branch-deployments-in-dagster-plus Dagster+ further enhances identification and collaboration around changes to your data pipelines. https://dagster.io/blog/change-tracking-branch-deployments-in-dagster-plus Wed, 17 Apr 2024 00:00:00 +0000 The Data Engineering Impedance Mismatch https://dagster.io/blog/impedance-mismatch-in-data-orchestration A case for asset-oriented over workflow-oriented in data orchestration. https://dagster.io/blog/impedance-mismatch-in-data-orchestration Wed, 10 Apr 2024 00:00:00 +0000 Announcing Dagster 1.7: Love Plus One https://dagster.io/blog/dagster-1-7-love-plus-one A major set of updates to Dagster Core ahead of our Dagster+ launch. https://dagster.io/blog/dagster-1-7-love-plus-one Mon, 08 Apr 2024 00:00:00 +0000 Expanding the Dagster Embedded ELT Ecosystem with dltHub for Data Ingestion https://dagster.io/blog/expanding-dagsters-embedded-elt-ecosystem-with-dlthub-for-data-ingestion We now have an officially supported dlt integration. https://dagster.io/blog/expanding-dagsters-embedded-elt-ecosystem-with-dlthub-for-data-ingestion Fri, 05 Apr 2024 00:00:00 +0000 Sling Out Your ETL Provider with Embedded ELT https://dagster.io/blog/sling-out-your-etl-provider-with-embedded-elt How we saved $40k and gained better control over our ingestion steps. https://dagster.io/blog/sling-out-your-etl-provider-with-embedded-elt Wed, 03 Apr 2024 00:00:00 +0000 Exploring The Data Engineering Lifecycle https://dagster.io/blog/the-data-engineering-lifecycle Learn the fundamentals of a healthy data engineering lifecycle to optimize pipeline and asset production. https://dagster.io/blog/the-data-engineering-lifecycle Tue, 26 Mar 2024 00:00:00 +0000 New Dagster Integration: Include OpenAI Calls Into Your Data Pipelines https://dagster.io/blog/dagster-openai The new dagster-openai integration lets you tap into the power of LLMs in a cost-efficient way. https://dagster.io/blog/dagster-openai Mon, 11 Mar 2024 00:00:00 +0000 Breaking Packages in Python https://dagster.io/blog/python-breaking-packages An exposé of the nooks and crannies of Python’s modules and packages. https://dagster.io/blog/python-breaking-packages Tue, 27 Feb 2024 00:00:00 +0000 Balancing the Data Scales: Centralization vs. Decentralization https://dagster.io/blog/balancing-the-data-scales-centralization-vs-decentralization Learn how organizations can harness the strengths of both approaches to optimize their data operations. https://dagster.io/blog/balancing-the-data-scales-centralization-vs-decentralization Fri, 23 Feb 2024 00:00:00 +0000 Standardize Pipelines with Domain-Specific Languages https://dagster.io/blog/scale-and-standardize-data-pipelines-with-dsl By implementing DSLs, data teams can open their data platform to many more users without compromising on standards. https://dagster.io/blog/scale-and-standardize-data-pipelines-with-dsl Thu, 08 Feb 2024 00:00:00 +0000 Thinking in Assets When Building Data Pipelines https://dagster.io/blog/thinking-in-assets How to develop data pipelines using Software-defined Assets. https://dagster.io/blog/thinking-in-assets Mon, 05 Feb 2024 00:00:00 +0000 What Dagster Believes About Data Platforms https://dagster.io/blog/what-dagster-believes-about-data-platforms The beliefs that organizations adopt about the way their data platforms should function influence their outcomes. Here are ours. https://dagster.io/blog/what-dagster-believes-about-data-platforms Mon, 29 Jan 2024 00:00:00 +0000 Announcing Dagster 1.6: Back to Black https://dagster.io/blog/dagster-1-6-back-to-black Major UI enhancements, Dagster Pipes upgrades and of course, dark mode :-) https://dagster.io/blog/dagster-1-6-back-to-black Fri, 12 Jan 2024 00:00:00 +0000 Retain.ai joins Dagster Labs https://dagster.io/blog/dagster-labs-retain-ai We’re excited and humbled to bring the Retain.ai organization into our fold to help build out Dagster’s data orchestration capabilities. https://dagster.io/blog/dagster-labs-retain-ai Wed, 10 Jan 2024 00:00:00 +0000 How Dagster Labs runs Dagster: Open-Sourcing our Own Pipelines https://dagster.io/blog/how-dagster-labs-runs-dagster A technical deep dive into the patterns and implementations of the Dagster Open Platform using our open-sourced code and dbt models. https://dagster.io/blog/how-dagster-labs-runs-dagster Mon, 04 Dec 2023 00:00:00 +0000 Scaling Dagster’s DAG Visualization to Handle Tens of Thousands of Assets https://dagster.io/blog/scaling-dag-visualization How the Dagster frontend team rapidly scaled Dagster’s DAG visualization for enterprise-sized data asset graphs. https://dagster.io/blog/scaling-dag-visualization Wed, 29 Nov 2023 00:00:00 +0000 High-performance Python for Data Engineering https://dagster.io/blog/python-high-performance Learn how to optimize your Python data pipeline code to run faster with our high-performance Python guide for data engineers. https://dagster.io/blog/python-high-performance Mon, 20 Nov 2023 00:00:00 +0000 Orchestrate Unstructured Data Pipelines with Dagster and dlt https://dagster.io/blog/dagster-dlt Load messy data sources into well-structured tables or datasets, through automatic schema inference and evolution. https://dagster.io/blog/dagster-dlt Wed, 08 Nov 2023 00:00:00 +0000 CI/CD and Data Pipeline Automation (with Git) https://dagster.io/blog/python-ci-cd-automation Learn how to automate data pipelines and deployments by integrating Git and CI/CD in our Python for data engineering series. https://dagster.io/blog/python-ci-cd-automation Fri, 20 Oct 2023 00:00:00 +0000 Introducing Dagster Pipes https://dagster.io/blog/dagster-pipes A new protocol and toolkit for integrating and launching compute into remote execution environments from Dagster. https://dagster.io/blog/dagster-pipes Fri, 13 Oct 2023 00:00:00 +0000 Introducing Dagster External Assets https://dagster.io/blog/dagster-external-assets Use Dagster’s External Assets feature for data observability, lineage, data quality, and cataloging while bringing your own orchestration and scheduling. https://dagster.io/blog/dagster-external-assets Fri, 13 Oct 2023 00:00:00 +0000 Stop Reinventing Orchestration: Embedded ELT in the Orchestrator https://dagster.io/blog/dagster-embedded-elt Solve data ingestion issues with Dagster's Embedded ELT feature, a lightweight embedded library. https://dagster.io/blog/dagster-embedded-elt Thu, 12 Oct 2023 00:00:00 +0000 Improving the Dagster learning curve https://dagster.io/blog/announcing-dagster-university Learn Dagster essentials and build asset-based data pipelines with Dagster University, our new self-guided course for beginners. https://dagster.io/blog/announcing-dagster-university Wed, 11 Oct 2023 00:00:00 +0000 Improving visibility into data operations with Dagster Insights https://dagster.io/blog/dagster-insights Gain operational observability on your data pipelines and bring cloud costs back under control with the Dagster Insights feature. https://dagster.io/blog/dagster-insights Tue, 10 Oct 2023 00:00:00 +0000 Introducing Dagster Asset Checks https://dagster.io/blog/dagster-asset-checks Deliver high-quality data with Dagster Asset Checks, the ability to embed data quality checks into your data pipeline. https://dagster.io/blog/dagster-asset-checks Mon, 09 Oct 2023 00:00:00 +0000 Announcing Dagster 1.5: How Will I Know? https://dagster.io/blog/dagster-1-5-how-will-i-know Ahead of Launch Week, we are proud to be rolling out some exciting new capabilities. https://dagster.io/blog/dagster-1-5-how-will-i-know Mon, 02 Oct 2023 00:00:00 +0000 Write-Audit-Publish in data pipelines https://dagster.io/blog/python-write-audit-publish We look at the write-audit-publish software design pattern used in ETL to ensure quality and reliability in data engineering workflows. https://dagster.io/blog/python-write-audit-publish Fri, 29 Sep 2023 00:00:00 +0000 Escaping the Modern Data Trap https://dagster.io/blog/dagster-escaping-the-modern-data-trap Launch Week kicks off October 9th with new functionality being shared each day. Our theme: Escaping the Modern Data Trap! https://dagster.io/blog/dagster-escaping-the-modern-data-trap Thu, 28 Sep 2023 00:00:00 +0000 Pedram Navid: Why I Joined Dagster Labs https://dagster.io/blog/pedram-why-i-joined-dagster-labs It is not every day you get to join a company working on building a product purpose-built for you. https://dagster.io/blog/pedram-why-i-joined-dagster-labs Wed, 20 Sep 2023 00:00:00 +0000 Factory Patterns in Python https://dagster.io/blog/python-factory-patterns We explore design patterns — reusable solutions to common problems in software design — as used in data engineering, specifically factory patterns in Python. https://dagster.io/blog/python-factory-patterns Mon, 04 Sep 2023 00:00:00 +0000 Introducing Dagster Labs https://dagster.io/blog/introducing-dagster-labs In the spirit of simplification, the company formerly known as Elementl is now doing business as Dagster Labs. https://dagster.io/blog/introducing-dagster-labs Mon, 21 Aug 2023 00:00:00 +0000 Building an Outbound Reporting Pipeline https://dagster.io/blog/outbound-reporting-pipeline Learn how to use data engineering patterns and Dagster’s dynamic partitioning to build an outbound email report delivery pipeline. https://dagster.io/blog/outbound-reporting-pipeline Fri, 18 Aug 2023 00:00:00 +0000 Type Hinting in Python https://dagster.io/blog/python-type-hinting In part VI of our Data Engineering with Python series, we explore type hinting functions and classes, and how type hints reduce errors. https://dagster.io/blog/python-type-hinting Fri, 11 Aug 2023 00:00:00 +0000 Environment Variables in Python https://dagster.io/blog/python-environment-variables In part V of our series on Data Engineering with Python, we cover best practices for managing environment variables in Python. https://dagster.io/blog/python-environment-variables Mon, 07 Aug 2023 00:00:00 +0000 Podcast: Drill to Detail - Dagster, Orchestration and Software-Defined Assets https://dagster.io/blog/podcast-drill-to-detail-aug-2023 Dagster Labs founder Nick Shrock is interviewed by Rittman Analytics founder Mark Rittman https://dagster.io/blog/podcast-drill-to-detail-aug-2023 Thu, 03 Aug 2023 00:00:00 +0000 Orchestrating dbt™ with Dagster https://dagster.io/blog/orchestrating-dbt-with-dagster Orchestrate dbt with Dagster’s popular dbt integration, now with major enhancements to supercharge your dbt models as part of your data pipeline. https://dagster.io/blog/orchestrating-dbt-with-dagster Tue, 01 Aug 2023 00:00:00 +0000 Speeding up the dbt™ docs by 20x with React Server Components https://dagster.io/blog/dbt-docs-on-react dbt docs slow? See how we dropped page load time and memory usage for a large dbt project by 20x using React Server Components. https://dagster.io/blog/dbt-docs-on-react Mon, 31 Jul 2023 00:00:00 +0000 Announcing Dagster 1.4: Material Girl https://dagster.io/blog/dagster-1-4-material-girl The latest release brings major new dbt capabilities, new asset materialization controls, and more. https://dagster.io/blog/dagster-1-4-material-girl Fri, 21 Jul 2023 00:00:00 +0000 LLM training pipelines with Langchain, Airbyte, and Dagster https://dagster.io/blog/training-llms This tutorial shows you how to combine Langchain, Airbyte, and Dagster to build maintainable and scalable pipelines for training LLMs. https://dagster.io/blog/training-llms Wed, 05 Jul 2023 00:00:00 +0000 Introducing Two New Self-Serve Plans for Dagster Cloud https://dagster.io/blog/new-standard-plans Solo' and 'Team' plans, with event-based pricing, will replace the old compute-duration based plan. We explain why we are making this change. https://dagster.io/blog/new-standard-plans Mon, 26 Jun 2023 00:00:00 +0000 Revisiting the Poor Man’s Data Lake with MotherDuck https://dagster.io/blog/poor-mans-datalake-motherduck See how much easier you can collaborate using DuckDB’s high-powered cloud version MotherDuck to build a one-system data lake. https://dagster.io/blog/poor-mans-datalake-motherduck Thu, 22 Jun 2023 00:00:00 +0000 The Dagster Master Plan https://dagster.io/blog/dagster-master-plan Elementl CEO Pete Hunt shares the three priorities that guide how we will evolve Dagster. https://dagster.io/blog/dagster-master-plan Thu, 15 Jun 2023 00:00:00 +0000 Backfills in Data & Machine Learning: A Primer https://dagster.io/blog/backfills-in-ml A step-by-step guide to using backfills and partitions to make data management more simple for data & ML engineers. https://dagster.io/blog/backfills-in-ml Tue, 06 Jun 2023 00:00:00 +0000 Dagster and the Decade of Data Engineering https://dagster.io/blog/decade-of-data-engineering 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. https://dagster.io/blog/decade-of-data-engineering Wed, 24 May 2023 00:00:00 +0000 Elementl Raises $33 Million in Series B Funding to Accelerate Data Orchestration and Unleash Advanced Data Use Cases https://dagster.io/blog/elementl-series-b The new capital will accelerate the development and adoption of Dagster, the open-source, cloud-native data orchestrator. https://dagster.io/blog/elementl-series-b Wed, 24 May 2023 00:00:00 +0000 Building Better Analytics Pipelines https://dagster.io/blog/building-better-analytics-pipelines A recap of our live event on the benefits and techniques for orchestrating analytics pipelines. https://dagster.io/blog/building-better-analytics-pipelines Tue, 23 May 2023 00:00:00 +0000 Introducing Dynamic Definitions for Flexible Asset Partitioning https://dagster.io/blog/dynamic-partitioning Dagster’s dynamic partition definitions allow engineers to use the power of partitions in a broader range of scenarios. https://dagster.io/blog/dynamic-partitioning Fri, 19 May 2023 00:00:00 +0000 Deciphering Arcane Kubernetes and ECS Errors with Dagster https://dagster.io/blog/surfacing-errors Recent enhancements allow Dagster to surface clearer and more actionable errors to accelerate your development cycles. https://dagster.io/blog/surfacing-errors Wed, 17 May 2023 00:00:00 +0000 How to Maintain High Product & Code Quality As Your Startup Scales https://dagster.io/blog/product-and-code-quality Raising the quality bar requires process adjustments and a cultural shift. https://dagster.io/blog/product-and-code-quality Tue, 09 May 2023 00:00:00 +0000 Announcing Dagster 1.3: Smooth Operator https://dagster.io/blog/dagster-1-3-smooth-operator Dagster 1.3 officially inducts Pythonic Config and Resources and brings new enhancements to Software-Defined Assets, integrations, documentation, and guides. https://dagster.io/blog/dagster-1-3-smooth-operator Wed, 26 Apr 2023 00:00:00 +0000 From Python Projects to Dagster Pipelines https://dagster.io/blog/data-engineering-in-python In part IV of our series, we explore setting up a Dagster project, and the key concept of Data Assets. https://dagster.io/blog/data-engineering-in-python Fri, 14 Apr 2023 00:00:00 +0000 Community Memo: Pythonic Config and Resources https://dagster.io/blog/pythonic-config-and-resources Major ergonomic improvements are coming to Dagster's config and resources systems, including a Pydantic frontend. https://dagster.io/blog/pythonic-config-and-resources Mon, 03 Apr 2023 00:00:00 +0000 Best Practices in Structuring Python Projects https://dagster.io/blog/python-project-best-practices We cover 9 best practices and examples on structuring your Python projects for collaboration and productivity. https://dagster.io/blog/python-project-best-practices Tue, 21 Mar 2023 00:00:00 +0000 Partitions in Data Pipelines https://dagster.io/blog/partitioned-data-pipelines Partitioning is a technique that helps data engineers and ML engineers organize data and the computations that produce that data. https://dagster.io/blog/partitioned-data-pipelines Mon, 20 Mar 2023 00:00:00 +0000 Tracking the Fake GitHub Star Black Market with Dagster, dbt and BigQuery https://dagster.io/blog/fake-stars It's easy for an open-source project to buy fake GitHub stars. We share two approaches for detecting them. https://dagster.io/blog/fake-stars Thu, 16 Mar 2023 00:00:00 +0000 Announcing Dagster 1.2: Formation https://dagster.io/blog/dagster-1-2-formation Enhanced partitioned asset support and the introduction of Pythonic config and resources, and integration updates. https://dagster.io/blog/dagster-1-2-formation Thu, 09 Mar 2023 00:00:00 +0000 How Dagster Deploys 5X Faster with Warm Docker Containers https://dagster.io/blog/fast-deploys-with-pex-and-docker Using pex, Serverless Dagster Cloud now deploys 4 to 5 times faster by avoiding the overhead of building and launching Docker images. https://dagster.io/blog/fast-deploys-with-pex-and-docker Tue, 07 Mar 2023 00:00:00 +0000 Python Packages: a Primer for Data People (part 2 of 2) https://dagster.io/blog/python-packages-primer-2 An introduction to managing Python dependencies and some virtual environment best practices. https://dagster.io/blog/python-packages-primer-2 Mon, 06 Mar 2023 00:00:00 +0000 Python Packages: a Primer for Data People (part 1 of 2) https://dagster.io/blog/python-packages-primer-1 The foundation of a solid Python project is mastering modules, packages and imports. https://dagster.io/blog/python-packages-primer-1 Mon, 06 Mar 2023 00:00:00 +0000 Build a GitHub Support Bot with GPT3, LangChain, and Python https://dagster.io/blog/chatgpt-langchain In this tutorial, we tap into the power of OpenAI's ChatGPT to build a GitHub support bot using GPT3, LangChain, and Python. https://dagster.io/blog/chatgpt-langchain Mon, 09 Jan 2023 00:00:00 +0000 Announcing Dagster 1.1: Thank U, Next https://dagster.io/blog/dagster-1-1-thank-u-next A major release with Declarative Scheduling, multi-asset scheduling, and SDA partitioning. Plus Secrets management, Dagit enhancements, Integrations updates and more... https://dagster.io/blog/dagster-1-1-thank-u-next Wed, 14 Dec 2022 00:00:00 +0000 Getting Stuff Done: a Guide to Productive Software Engineering https://dagster.io/blog/productive-software-engineering To be a more productive software engineer you need to master changes, how these affect the program and others on the team. https://dagster.io/blog/productive-software-engineering Wed, 30 Nov 2022 00:00:00 +0000 My Path to Elementl - Part 2 https://dagster.io/blog/pete-hunt-path-to-elementl-part2 Pete Hunt takes over as CEO as Nick Schrock takes on the CTO role. https://dagster.io/blog/pete-hunt-path-to-elementl-part2 Fri, 18 Nov 2022 00:00:00 +0000 Pushing REST-API data to Google Sheets with Dagster https://dagster.io/blog/dagster-google-sheets-tutorial A total beginners tutorial in which we store REST API data in Google Sheets and learn some key abstractions. https://dagster.io/blog/dagster-google-sheets-tutorial Fri, 11 Nov 2022 00:00:00 +0000 Adding Types to a Large Python Codebase https://dagster.io/blog/adding-python-types What we learned when we introduced dynamically typed code to a large Python codebase, bringing Dagster's public API to 100% type coverage. https://dagster.io/blog/adding-python-types Mon, 07 Nov 2022 00:00:00 +0000 Orchestrating Machine Learning Pipelines with Dagster https://dagster.io/blog/dagster-ml-pipelines How to use Dagster’s open source data orchestrator to build machine learning pipelines and train ML models. https://dagster.io/blog/dagster-ml-pipelines Mon, 31 Oct 2022 00:00:00 +0000 Build a poor man’s data lake from scratch with DuckDB https://dagster.io/blog/duckdb-data-lake 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. https://dagster.io/blog/duckdb-data-lake Tue, 25 Oct 2022 00:00:00 +0000 The Unreasonable Effectiveness of Data Pipeline Smoke Tests https://dagster.io/blog/smoke-test-data-pipeline Data practitioners waste time writing unit tests to catch bugs they could have caught with smoke tests. https://dagster.io/blog/smoke-test-data-pipeline Wed, 19 Oct 2022 00:00:00 +0000 Web Workers are not the Answer https://dagster.io/blog/web-workers-performance-issue A tale of overstretched logs, counterintuitive web worker behavior, and ultimately a troublesome cursor issue. https://dagster.io/blog/web-workers-performance-issue Mon, 17 Oct 2022 00:00:00 +0000 Dagster at all 5 Steps of the Development Lifecycle https://dagster.io/blog/dagster-five-stages-development-lifecycle Dagster facilitates a data engineers work across all five steps in the development lifecycle. https://dagster.io/blog/dagster-five-stages-development-lifecycle Sun, 16 Oct 2022 00:00:00 +0000 A Dagster Crash Course https://dagster.io/blog/dagster-crash-course-oct-2022 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. https://dagster.io/blog/dagster-crash-course-oct-2022 Thu, 06 Oct 2022 00:00:00 +0000 Postgres: a Better Message Queue than Kafka? https://dagster.io/blog/skip-kafka-use-postgres-message-queue When lots of event logs must be stored and indexed, Kafka is the obvious choice. Naturally, our queue runs on Postgres. https://dagster.io/blog/skip-kafka-use-postgres-message-queue Tue, 04 Oct 2022 00:00:00 +0000 Spend Less Time Debugging with Dagster https://dagster.io/blog/dagster-debugging It’s not uncommon for a data engineer to devote 80% of their day to debugging. Dagster radically improves on this. https://dagster.io/blog/dagster-debugging Wed, 17 Aug 2022 00:00:00 +0000 Launching Dagster Cloud to GA https://dagster.io/blog/dagster-cloud-ga-launch The enterprise orchestration platform that puts developer experience first: hybrid or serverless deployments, native branching, and out-of-the-box CI/CD. https://dagster.io/blog/dagster-cloud-ga-launch Tue, 09 Aug 2022 00:00:00 +0000 Introducing Dagster 1.0: Hello https://dagster.io/blog/dagster-1-0-hello Announcing Dagster 1.0. - a stable foundation for building the orchestration layer for modern data platforms. https://dagster.io/blog/dagster-1-0-hello Fri, 05 Aug 2022 00:00:00 +0000 The Open Core Business Model https://dagster.io/blog/open-core-business-model-dagster The relationship between Dagster, the open-source project, and Dagster Cloud, our hosted SaaS platform. https://dagster.io/blog/open-core-business-model-dagster Wed, 03 Aug 2022 00:00:00 +0000 Dagster Cloud goes SOC 2 https://dagster.io/blog/soc2-compliance-dagster-blog Elementl, the company behind the Dagster data orchestration tool achieves SOC2 compliance. https://dagster.io/blog/soc2-compliance-dagster-blog Tue, 26 Jul 2022 00:00:00 +0000 Dagster Day: Announcing Dagster 1.0 and Dagster Cloud https://dagster.io/blog/announcing-dagster-day The release of Dagster 1.0 and the GA launch of Dagster Cloud represent major milestones in the evolution of our orchestration solution. https://dagster.io/blog/announcing-dagster-day Mon, 25 Jul 2022 00:00:00 +0000 My Path to Elementl: Pete Hunt https://dagster.io/blog/pete-hunt-path-to-elementl Pete Hunt discusses what caused him to make the leap from Twitter to Elementl. https://dagster.io/blog/pete-hunt-path-to-elementl Wed, 22 Jun 2022 00:00:00 +0000 Rebundling the Data Platform https://dagster.io/blog/rebundling-the-data-platform 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. https://dagster.io/blog/rebundling-the-data-platform Thu, 17 Feb 2022 00:00:00 +0000 Introducing Dagster Cloud https://dagster.io/blog/introducing-dagster-cloud Dagster Cloud, the enterprise orchestration platform that puts developer experience first, with fully serverless or hybrid deployments, is now here. https://dagster.io/blog/introducing-dagster-cloud Thu, 02 Dec 2021 00:00:00 +0000 Why Elementl and Dagster: The Decade of Data https://dagster.io/blog/decade-of-data Announcing our $14M Series A led by Index Ventures, alongside Sequoia Capital, Slow Ventures, Coatue, Amplify Partners, OSS Capital, and others. https://dagster.io/blog/decade-of-data Tue, 16 Nov 2021 00:00:00 +0000 Content Style Guide https://dagster.io/blog/content-style-guide This is an example blog post serving as a style guide. https://dagster.io/blog/content-style-guide Wed, 01 Jan 2020 00:00:00 +0000 ================================================ FILE: feeds/feed_google_ai.xml ================================================ Google Developers Blog - AI https://developers.googleblog.com/search/?technology_categories=AI Latest AI-related posts from Google Developers Blog http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:50:34 +0000 Build Long-running AI agents that pause, resume, and never lose context with ADK https://developers.googleblog.com/build-long-running-ai-agents-that-pause-resume-and-never-lose-context-with-adk/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Long-running-agent-banner.2e16d0ba.fill-800x400.jpg" alt="Featured image" /><br/><br/>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. AI Tue, 12 May 2026 00:00:00 +0000 Supercharging LLM inference on Google TPUs: Achieving 3X speedups with diffusion-style speculative decoding https://developers.googleblog.com/supercharging-llm-inference-on-google-tpus-achieving-3x-speedups-with-diffusion-style-speculative-decoding/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_Generated_Image_5uj3px5uj3p.2e16d0ba.fill-800x400.jpg" alt="Featured image" /><br/><br/>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. AI Mon, 04 May 2026 00:00:00 +0000 Building with Gemini Embedding 2: Agentic multimodal RAG and beyond https://developers.googleblog.com/building-with-gemini-embedding-2/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/gemini-embedding2-retrieval_52_2.2e16d0ba.fill-800x400.png" alt="Featured image" /><br/><br/>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. AI Thu, 30 Apr 2026 00:00:00 +0000 Building real-world on-device AI with LiteRT and NPU https://developers.googleblog.com/building-real-world-on-device-ai-with-litert-and-npu/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_Generated_Image_ignk8signk8.2e16d0ba.fill-800x400.png" alt="Featured image" /><br/><br/>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. Mobile Thu, 23 Apr 2026 00:00:00 +0000 Agents CLI in Agent Platform: create to production in one CLI https://developers.googleblog.com/agents-cli-in-agent-platform-create-to-production-in-one-cli/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/hero_image_1.2e16d0ba.fill-800x400.jpg" alt="Featured image" /><br/><br/>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. AI Wed, 22 Apr 2026 00:00:00 +0000 Production-Ready AI Agents: 5 Lessons from Refactoring a Monolith https://developers.googleblog.com/production-ready-ai-agents-5-lessons-from-refactoring-a-monolith/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/AI_Agent_Clinic_Asset.2e16d0ba.fill-800x400.png" alt="Featured image" /><br/><br/>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. AI Tue, 21 Apr 2026 00:00:00 +0000 A2UI v0.9: The New Standard for Portable, Framework-Agnostic Generative UI https://developers.googleblog.com/a2ui-v0-9-generative-ui/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Hero.2e16d0ba.fill-800x400.jpg" alt="Featured image" /><br/><br/>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. Mobile Fri, 17 Apr 2026 00:00:00 +0000 MaxText Expands Post-Training Capabilities: Introducing SFT and RL on Single-Host TPUs https://developers.googleblog.com/maxtext-expands-post-training-capabilities-introducing-sft-and-rl-on-single-host-tpus/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Building-1-banner_Tg8sqqU.2e16d0ba.fill-800x400.png" alt="Featured image" /><br/><br/>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. AI Thu, 16 Apr 2026 00:00:00 +0000 Subagents have arrived in Gemini CLI https://developers.googleblog.com/subagents-have-arrived-in-gemini-cli/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_CLI_subagents_hero_image.2e16d0ba.fill-800x400.png" alt="Featured image" /><br/><br/>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. AI Wed, 15 Apr 2026 00:00:00 +0000 Build Better AI Agents: 5 Developer Tips from the Agent Bake-Off https://developers.googleblog.com/build-better-ai-agents-5-developer-tips-from-the-agent-bake-off/ <img src="https://storage.googleapis.com/gweb-developer-goog-blog-assets/images/Gemini_Generated_Image_7z3w7s7z3w7.2e16d0ba.fill-800x400.jpg" alt="Featured image" /><br/><br/>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. AI Tue, 14 Apr 2026 00:00:00 +0000 ================================================ FILE: feeds/feed_groq.xml ================================================ Groq Blog https://groq.com/blog/ LPU inference, AI infrastructure, and developer updates http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:50:34 +0000 Canopy Labs’ Orpheus TTS is live on GroqCloud https://groq.com/blog/canopy-labs-orpheus-tts-is-live-on-groqcloud Canopy Labs’ Orpheus TTS is live on GroqCloud https://groq.com/blog/canopy-labs-orpheus-tts-is-live-on-groqcloud Thu, 09 Apr 2026 00:00:00 +0000 GroqCloud: Expanding to Meet Demand https://groq.com/blog/groqcloud-expanding-to-meet-demand GroqCloud: Expanding to Meet Demand https://groq.com/blog/groqcloud-expanding-to-meet-demand Mon, 16 Feb 2026 00:00:00 +0000 Advancing the American AI Stack https://groq.com/blog/advancingamericanai Advancing the American AI Stack https://groq.com/blog/advancingamericanai Tue, 16 Dec 2025 00:00:00 +0000 Groq Recognized in 2025 Gartner® Cool Vendor in AI Infrastructure report https://groq.com/blog/groq-recognized-gartner-cool-vendor Groq Recognized in 2025 Gartner® Cool Vendor in AI Infrastructure report https://groq.com/blog/groq-recognized-gartner-cool-vendor Mon, 01 Dec 2025 00:00:00 +0000 Introducing MCP Connectors in Beta on GroqCloud https://groq.com/blog/introducing-mcp-connectors-in-beta-on-groqcloud Introducing MCP Connectors in Beta on GroqCloud https://groq.com/blog/introducing-mcp-connectors-in-beta-on-groqcloud Tue, 25 Nov 2025 00:00:00 +0000 Day Zero Support for OpenAI Open Safety Model https://groq.com/blog/day-zero-support-for-openai-open-safety-model Day Zero Support for OpenAI Open Safety Model https://groq.com/blog/day-zero-support-for-openai-open-safety-model Wed, 29 Oct 2025 00:00:00 +0000 LLMs Inside the Product: A Practical Field Guide https://groq.com/blog/llms-inside-the-product-a-practical-field-guide LLMs Inside the Product: A Practical Field Guide https://groq.com/blog/llms-inside-the-product-a-practical-field-guide Wed, 22 Oct 2025 00:00:00 +0000 GPT‑OSS Improvements: Prompt Caching & Lower Pricing https://groq.com/blog/gpt-oss-improvements-prompt-caching-and-lower-pricing GPT‑OSS Improvements: Prompt Caching & Lower Pricing https://groq.com/blog/gpt-oss-improvements-prompt-caching-and-lower-pricing Thu, 16 Oct 2025 00:00:00 +0000 Introducing Remote MCP Support in Beta on GroqCloud https://groq.com/blog/introducing-remote-mcp-support-in-beta-on-groqcloud Introducing Remote MCP Support in Beta on GroqCloud https://groq.com/blog/introducing-remote-mcp-support-in-beta-on-groqcloud Tue, 23 Sep 2025 00:00:00 +0000 Introducing Kimi K2‑0905 on GroqCloud https://groq.com/blog/introducing-kimi-k2-0905-on-groqcloud Introducing Kimi K2‑0905 on GroqCloud https://groq.com/blog/introducing-kimi-k2-0905-on-groqcloud Thu, 04 Sep 2025 00:00:00 +0000 Introducing the Next Generation of Compound on GroqCloud https://groq.com/blog/introducing-the-next-generation-of-compound-on-groqcloud Introducing the Next Generation of Compound on GroqCloud https://groq.com/blog/introducing-the-next-generation-of-compound-on-groqcloud Thu, 04 Sep 2025 00:00:00 +0000 Introducing Prompt Caching on GroqCloud https://groq.com/blog/introducing-prompt-caching-on-groqcloud Introducing Prompt Caching on GroqCloud https://groq.com/blog/introducing-prompt-caching-on-groqcloud Wed, 20 Aug 2025 00:00:00 +0000 Day Zero Support for OpenAI Open Models https://groq.com/blog/day-zero-support-for-openai-open-models Day Zero Support for OpenAI Open Models https://groq.com/blog/day-zero-support-for-openai-open-models Tue, 05 Aug 2025 00:00:00 +0000 Inside the LPU: Deconstructing Groq’s Speed https://groq.com/blog/inside-the-lpu-deconstructing-groq-speed Inside the LPU: Deconstructing Groq’s Speed https://groq.com/blog/inside-the-lpu-deconstructing-groq-speed Fri, 01 Aug 2025 00:00:00 +0000 OpenBench: Reproducible LLM Evals Made Easy https://groq.com/blog/openbench-open-reproducible-evals OpenBench: Reproducible LLM Evals Made Easy https://groq.com/blog/openbench-open-reproducible-evals Thu, 31 Jul 2025 00:00:00 +0000 Build Faster with Groq + Hugging Face https://groq.com/blog/build-faster-with-groq-hugging-face Build Faster with Groq + Hugging Face https://groq.com/blog/build-faster-with-groq-hugging-face Mon, 16 Jun 2025 00:00:00 +0000 GroqCloud™ Now Supports Qwen3 32B https://groq.com/blog/groqcloud-tm-now-supports-qwen3-32b GroqCloud™ Now Supports Qwen3 32B https://groq.com/blog/groqcloud-tm-now-supports-qwen3-32b Tue, 10 Jun 2025 00:00:00 +0000 LoRA Fine-Tune Support Now Live on GroqCloud https://groq.com/blog/introducing-groqcloud-lora-fine-tune-support-unlock-efficient-model-adaptation-for-enterprises LoRA Fine-Tune Support Now Live on GroqCloud https://groq.com/blog/introducing-groqcloud-lora-fine-tune-support-unlock-efficient-model-adaptation-for-enterprises Tue, 03 Jun 2025 00:00:00 +0000 From Speed to Scale: How Groq Is Optimized for MoE & Other Large Models https://groq.com/blog/from-speed-to-scale-how-groq-is-optimized-for-moe-other-large-models From Speed to Scale: How Groq Is Optimized for MoE & Other Large Models https://groq.com/blog/from-speed-to-scale-how-groq-is-optimized-for-moe-other-large-models Tue, 27 May 2025 00:00:00 +0000 How to Build Your Own AI Research Agent with One Groq API Call https://groq.com/blog/how-to-build-your-own-ai-research-agent-with-one-groq-api-call How to Build Your Own AI Research Agent with One Groq API Call https://groq.com/blog/how-to-build-your-own-ai-research-agent-with-one-groq-api-call Fri, 16 May 2025 00:00:00 +0000 Official Llama API Now Fastest via Groq Inference https://groq.com/blog/the-official-llama-api-accelerated-by-groq Official Llama API Now Fastest via Groq Inference https://groq.com/blog/the-official-llama-api-accelerated-by-groq Tue, 29 Apr 2025 00:00:00 +0000 Now in Preview: Groq’s First Compound AI System https://groq.com/blog/now-in-preview-groqs-first-compound-ai-system Now in Preview: Groq’s First Compound AI System https://groq.com/blog/now-in-preview-groqs-first-compound-ai-system Tue, 15 Apr 2025 00:00:00 +0000 Llama 4 Inference Fast & Affordable – Now Live on GroqCloud https://groq.com/blog/llama-4-now-live-on-groq-build-fast-at-the-lowest-cost-without-compromise Llama 4 Inference Fast & Affordable – Now Live on GroqCloud https://groq.com/blog/llama-4-now-live-on-groq-build-fast-at-the-lowest-cost-without-compromise Sat, 05 Apr 2025 00:00:00 +0000 Build Fast with Text-to-Speech AI – Dialog Model on Groq https://groq.com/blog/build-fast-with-text-to-speech Build Fast with Text-to-Speech AI – Dialog Model on Groq https://groq.com/blog/build-fast-with-text-to-speech Wed, 26 Mar 2025 00:00:00 +0000 ================================================ FILE: feeds/feed_hamel.xml ================================================ Hamel Husain's Blog https://hamel.dev/ Applied AI engineering, machine learning, and data science http://www.rssboard.org/rss-specification python-feedgen en Sat, 18 Apr 2026 14:13:46 +0000 [NOTICE] This feed is no longer maintainedHamel's blog publishes an official RSS feed. This scraper is retired; the feed XML will be deleted in ~90 days. Recommended alternative: https://hamel.dev/index.xmldeprecation-notice-hamelSat, 18 Apr 2026 14:24:42 +0000https://hamel.dev/index.xml Automated Machine Learning — A Paradigm Shift That Accelerates Data Scientist Productivity @ Airbnb https://medium.com/airbnb-engineering/automated-machine-learning-a-paradigm-shift-that-accelerates-data-scientist-productivity-airbnb-f1f8a10d61f8 Automated Machine Learning — A Paradigm Shift That Accelerates Data Scientist Productivity @ Airbnb https://medium.com/airbnb-engineering/automated-machine-learning-a-paradigm-shift-that-accelerates-data-scientist-productivity-airbnb-f1f8a10d61f8 Wed, 10 May 2017 00:00:00 +0000 How Docker Can Help You Become A More Effective Data Scientist https://medium.com/towards-data-science/how-docker-can-help-you-become-a-more-effective-data-scientist-7fc048ef91d5 How Docker Can Help You Become A More Effective Data Scientist https://medium.com/towards-data-science/how-docker-can-help-you-become-a-more-effective-data-scientist-7fc048ef91d5 Sat, 16 Dec 2017 00:00:00 +0000 How To Create Magical Data Products Using Sequence-to-Sequence Models https://towardsdatascience.com/how-to-create-data-products-that-are-magical-using-sequence-to-sequence-models-703f86a231f8 How To Create Magical Data Products Using Sequence-to-Sequence Models https://towardsdatascience.com/how-to-create-data-products-that-are-magical-using-sequence-to-sequence-models-703f86a231f8 Thu, 18 Jan 2018 00:00:00 +0000 How To Create Natural Language Semantic Search for Arbitrary Objects With Deep Learning https://medium.com/@hamelhusain/semantic-code-search-3cd6d244a39c How To Create Natural Language Semantic Search for Arbitrary Objects With Deep Learning https://medium.com/@hamelhusain/semantic-code-search-3cd6d244a39c Tue, 29 May 2018 00:00:00 +0000 How to Automate Tasks on GitHub With Machine Learning for Fun and Profit https://medium.com/@hamelhusain/mlapp-419f90e8f007?source=friends_link&sk=760e18a2d6e60999d7eb2887352a92a8 How to Automate Tasks on GitHub With Machine Learning for Fun and Profit https://medium.com/@hamelhusain/mlapp-419f90e8f007?source=friends_link&sk=760e18a2d6e60999d7eb2887352a92a8 Wed, 10 Apr 2019 00:00:00 +0000 CodeSearchNet Challenge: Evaluating the State of Semantic Code Search https://arxiv.org/abs/1909.09436 CodeSearchNet Challenge: Evaluating the State of Semantic Code Search https://arxiv.org/abs/1909.09436 Fri, 20 Sep 2019 00:00:00 +0000 Python Concurrency: The Tricky Bits https://python.hamel.dev/concurrency/ Python Concurrency: The Tricky Bits https://python.hamel.dev/concurrency/ Wed, 05 Feb 2020 00:00:00 +0000 Introducing fastpages, An easy to use blogging platform with extra features for Jupyter Notebooks. https://fastpages.fast.ai/fastpages/jupyter/2020/02/21/introducing-fastpages.html Introducing fastpages, An easy to use blogging platform with extra features for Jupyter Notebooks. https://fastpages.fast.ai/fastpages/jupyter/2020/02/21/introducing-fastpages.html Fri, 21 Feb 2020 00:00:00 +0000 GitHub Actions: Providing Data Scientists With New Superpowers. https://fastpages.fast.ai/actions/markdown/2020/03/06/fastpages-actions.html GitHub Actions: Providing Data Scientists With New Superpowers. https://fastpages.fast.ai/actions/markdown/2020/03/06/fastpages-actions.html Fri, 06 Mar 2020 00:00:00 +0000 Data Science Meets Devops: MLOps with Jupyter, Git, & Kubernetes https://blog.kubeflow.org/mlops/ Data Science Meets Devops: MLOps with Jupyter, Git, & Kubernetes https://blog.kubeflow.org/mlops/ Tue, 01 Sep 2020 00:00:00 +0000 fastcore: An Underrated Python Library https://fastpages.fast.ai/fastcore fastcore: An Underrated Python Library https://fastpages.fast.ai/fastcore Tue, 01 Sep 2020 00:00:00 +0000 Nbdev: A literate programming environment that democratizes software engineering best practices https://github.blog/2020-11-20-nbdev-a-literate-programming-environment-that-democratizes-software-engineering-best-practices/ Nbdev: A literate programming environment that democratizes software engineering best practices https://github.blog/2020-11-20-nbdev-a-literate-programming-environment-that-democratizes-software-engineering-best-practices/ Fri, 20 Nov 2020 00:00:00 +0000 ghapi, a new third-party Python client for the GitHub API https://github.blog/2020-12-18-learn-about-ghapi-a-new-third-party-python-client-for-the-github-api/ ghapi, a new third-party Python client for the GitHub API https://github.blog/2020-12-18-learn-about-ghapi-a-new-third-party-python-client-for-the-github-api/ Fri, 18 Dec 2020 00:00:00 +0000 Notebooks in production with Metaflow https://outerbounds.com/blog/notebooks-in-production-with-metaflow/ Notebooks in production with Metaflow https://outerbounds.com/blog/notebooks-in-production-with-metaflow/ Wed, 09 Feb 2022 00:00:00 +0000 nbdev + Quarto: A new secret weapon for productivity https://www.fast.ai/2022/07/28/nbdev-v2/ nbdev + Quarto: A new secret weapon for productivity https://www.fast.ai/2022/07/28/nbdev-v2/ Thu, 28 Jul 2022 00:00:00 +0000 Why Should ML Engineers Learn Kubernetes? https://hamel.dev/./blog/posts/k8s/index.html Why Should ML Engineers Learn Kubernetes? https://hamel.dev/./blog/posts/k8s/index.html Mon, 16 Jan 2023 00:00:00 +0000 On commercializing nbdev https://hamel.dev/./blog/posts/nbdev/index.html On commercializing nbdev https://hamel.dev/./blog/posts/nbdev/index.html Tue, 30 May 2023 00:00:00 +0000 Optimizing LLM latency https://hamel.dev/notes/llm/inference/inference.html Optimizing LLM latency https://hamel.dev/notes/llm/inference/inference.html Sun, 15 Oct 2023 00:00:00 +0000 vLLM & Large Models https://hamel.dev/notes/llm/inference/big_inference.html vLLM & Large Models https://hamel.dev/notes/llm/inference/big_inference.html Sat, 28 Oct 2023 00:00:00 +0000 Tools for curating LLM Data https://hamel.dev/notes/llm/finetuning/data_cleaning.html Tools for curating LLM Data https://hamel.dev/notes/llm/finetuning/data_cleaning.html Wed, 15 Nov 2023 00:00:00 +0000 Tokenization Gotchas https://hamel.dev/./notes/llm/finetuning/tokenizer_gotchas.html Tokenization Gotchas https://hamel.dev/./notes/llm/finetuning/tokenizer_gotchas.html Sun, 17 Dec 2023 00:00:00 +0000 Dokku: my favorite personal serverless platform https://hamel.dev/./blog/posts/dokku/index.html Dokku: my favorite personal serverless platform https://hamel.dev/./blog/posts/dokku/index.html Tue, 09 Jan 2024 00:00:00 +0000 How To Debug Axolotl https://hamel.dev/./blog/posts/axolotl/index.html How To Debug Axolotl https://hamel.dev/./blog/posts/axolotl/index.html Thu, 11 Jan 2024 00:00:00 +0000 Fuck You, Show Me The Prompt. https://hamel.dev/./blog/posts/prompt/index.html Fuck You, Show Me The Prompt. https://hamel.dev/./blog/posts/prompt/index.html Wed, 14 Feb 2024 00:00:00 +0000 Is Fine-Tuning Still Valuable? https://hamel.dev/./blog/posts/fine_tuning_valuable.html Is Fine-Tuning Still Valuable? https://hamel.dev/./blog/posts/fine_tuning_valuable.html Wed, 27 Mar 2024 00:00:00 +0000 Your AI Product Needs Evals https://hamel.dev/./blog/posts/evals/index.html Your AI Product Needs Evals https://hamel.dev/./blog/posts/evals/index.html Fri, 29 Mar 2024 00:00:00 +0000 Debugging AI With Adversarial Validation https://hamel.dev/./blog/posts/drift/index.html Debugging AI With Adversarial Validation https://hamel.dev/./blog/posts/drift/index.html Fri, 12 Apr 2024 00:00:00 +0000 What We’ve Learned From A Year of Building with LLMs https://applied-llms.org/ What We’ve Learned From A Year of Building with LLMs https://applied-llms.org/ Sat, 01 Jun 2024 00:00:00 +0000 An Open Course on LLMs, Led by Practitioners https://hamel.dev/./blog/posts/course/index.html An Open Course on LLMs, Led by Practitioners https://hamel.dev/./blog/posts/course/index.html Mon, 29 Jul 2024 00:00:00 +0000 Concurrency Foundations For FastHTML https://hamel.dev/notes/fasthtml/concurrency.html Concurrency Foundations For FastHTML https://hamel.dev/notes/fasthtml/concurrency.html Thu, 10 Oct 2024 00:00:00 +0000 Using LLM-as-a-Judge For Evaluation: A Complete Guide https://hamel.dev/./blog/posts/llm-judge/index.html Using LLM-as-a-Judge For Evaluation: A Complete Guide https://hamel.dev/./blog/posts/llm-judge/index.html Tue, 29 Oct 2024 00:00:00 +0000 Building an Audience Through Technical Writing: Strategies and Mistakes https://hamel.dev/./blog/posts/audience/index.html Building an Audience Through Technical Writing: Strategies and Mistakes https://hamel.dev/./blog/posts/audience/index.html Sat, 30 Nov 2024 00:00:00 +0000 nbsanity - Share Notebooks as Polished Web Pages in Seconds https://www.answer.ai/posts/2024-12-13-nbsanity.html nbsanity - Share Notebooks as Polished Web Pages in Seconds https://www.answer.ai/posts/2024-12-13-nbsanity.html Fri, 13 Dec 2024 00:00:00 +0000 Thoughts On A Month With Devin https://www.answer.ai/posts/2025-01-08-devin.html Thoughts On A Month With Devin https://www.answer.ai/posts/2025-01-08-devin.html Sun, 19 Jan 2025 00:00:00 +0000 A Field Guide to Rapidly Improving AI Products https://hamel.dev/./blog/posts/field-guide/index.html A Field Guide to Rapidly Improving AI Products https://hamel.dev/./blog/posts/field-guide/index.html Mon, 24 Mar 2025 00:00:00 +0000 Inspect AI, An OSS Python Library For LLM Evals https://hamel.dev/./notes/llm/evals/inspect.html Inspect AI, An OSS Python Library For LLM Evals https://hamel.dev/./notes/llm/evals/inspect.html Mon, 23 Jun 2025 00:00:00 +0000 Stop Saying RAG Is Dead https://hamel.dev/./notes/llm/rag/not_dead.html Stop Saying RAG Is Dead https://hamel.dev/./notes/llm/rag/not_dead.html Fri, 11 Jul 2025 00:00:00 +0000 Selecting The Right AI Evals Tool https://hamel.dev/./blog/posts/eval-tools/index.html Selecting The Right AI Evals Tool https://hamel.dev/./blog/posts/eval-tools/index.html Wed, 01 Oct 2025 00:00:00 +0000 LLM Evals: Everything You Need to Know https://hamel.dev/./blog/posts/evals-faq/index.html LLM Evals: Everything You Need to Know https://hamel.dev/./blog/posts/evals-faq/index.html Thu, 15 Jan 2026 00:00:00 +0000 Why I Stopped Using nbdev https://hamel.dev/./blog/posts/ai-stack/index.html Why I Stopped Using nbdev https://hamel.dev/./blog/posts/ai-stack/index.html Sun, 18 Jan 2026 00:00:00 +0000 Evals Skills for Coding Agents https://hamel.dev/./blog/posts/evals-skills/index.html Evals Skills for Coding Agents https://hamel.dev/./blog/posts/evals-skills/index.html Mon, 02 Mar 2026 00:00:00 +0000 The Revenge of the Data Scientist https://hamel.dev/./blog/posts/revenge/index.html The Revenge of the Data Scientist https://hamel.dev/./blog/posts/revenge/index.html Thu, 26 Mar 2026 00:00:00 +0000 ================================================ FILE: feeds/feed_meta_ai.xml ================================================ AI at Meta Blog https://ai.meta.com/blog/ AI research, open source, and applications from Meta http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 11:21:25 +0000 Scaling How We Build and Test Our Most Advanced AI https://ai.meta.com/blog/scaling-how-we-build-test-advanced-ai/ Scaling How We Build and Test Our Most Advanced AI https://ai.meta.com/blog/scaling-how-we-build-test-advanced-ai/ Research Wed, 08 Apr 2026 00:00:00 +0000 Introducing Muse Spark: Scaling Towards Personal Superintelligence https://ai.meta.com/blog/introducing-muse-spark-msl/ Introducing Muse Spark: Scaling Towards Personal Superintelligence https://ai.meta.com/blog/introducing-muse-spark-msl/ Featured Wed, 08 Apr 2026 00:00:00 +0000 How Alta Daily Uses Meta’s Segment Anything to Reimagine the Digital Closet https://ai.meta.com/blog/alta-daily-fashion-app-segment-anything/ How Alta Daily Uses Meta’s Segment Anything to Reimagine the Digital Closet https://ai.meta.com/blog/alta-daily-fashion-app-segment-anything/ Computer Vision Mon, 06 Apr 2026 00:00:00 +0000 SAM 3.1: Faster and More Accessible Real-Time Video Detection and Tracking With Multiplexing and Global Reasoning https://ai.meta.com/blog/segment-anything-model-3/ SAM 3.1: Faster and More Accessible Real-Time Video Detection and Tracking With Multiplexing and Global Reasoning https://ai.meta.com/blog/segment-anything-model-3/ Computer Vision Fri, 27 Mar 2026 00:00:00 +0000 Introducing TRIBE v2: A Predictive Foundation Model Trained to Understand How the Human Brain Processes Complex Stimuli https://ai.meta.com/blog/tribe-v2-brain-predictive-foundation-model/ https://ai.meta.com/blog/tribe-v2-brain-predictive-foundation-model/ Research Thu, 26 Mar 2026 00:00:00 +0000 Four MTIA Chips in Two Years: Scaling AI Experiences for Billions https://ai.meta.com/blog/meta-mtia-scale-ai-chips-for-billions/ Four MTIA Chips in Two Years: Scaling AI Experiences for Billions https://ai.meta.com/blog/meta-mtia-scale-ai-chips-for-billions/ AI Wed, 11 Mar 2026 00:00:00 +0000 Mapping the World's Forests with Greater Precision: Introducing Canopy Height Maps v2 https://ai.meta.com/blog/world-resources-institute-dino-canopy-height-maps-v2/ 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. https://ai.meta.com/blog/world-resources-institute-dino-canopy-height-maps-v2/ Computer Vision Tue, 10 Mar 2026 00:00:00 +0000 Reducing Government Costs and Increasing Access to Greenspaces in the United Kingdom with DINO https://ai.meta.com/blog/forest-research-dino/ 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. https://ai.meta.com/blog/forest-research-dino/ Computer Vision Mon, 09 Feb 2026 00:00:00 +0000 The Universities Space Research Association Applies Segment Anything Model for Responding to Flood Emergencies https://ai.meta.com/blog/usra-sam-flood-emergencies/ The Universities Space Research Association and Meta are collaborating to help support water observing systems set up by the U.S. Geological Survey. https://ai.meta.com/blog/usra-sam-flood-emergencies/ Computer Vision Thu, 18 Dec 2025 00:00:00 +0000 How DINO and SAM are Helping Modernize Essential Medical Triage Practices https://ai.meta.com/blog/upenn-dino-sam-helping-medical-triage/ By leveraging advanced AI models, teams at the University of Pennsylvania are aiming to bring cutting-edge automation to emergency response. https://ai.meta.com/blog/upenn-dino-sam-helping-medical-triage/ Computer Vision Thu, 18 Dec 2025 00:00:00 +0000 Introducing SAM Audio: The First Unified Multimodal Model for Audio Separation https://ai.meta.com/blog/sam-audio/ 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. https://ai.meta.com/blog/sam-audio/ Computer Vision Tue, 16 Dec 2025 00:00:00 +0000 How Conservation X Labs Is Using Segment Anything Model 3 for Endangered Wildlife Monitoring https://ai.meta.com/blog/segment-anything-conservation-x-wildlife-monitoring/ Start-ups like Conservation X Labs are using Meta’s Segment Anything Models to bolster on-the-ground conservation expertise. https://ai.meta.com/blog/segment-anything-conservation-x-wildlife-monitoring/ Computer Vision Mon, 24 Nov 2025 00:00:00 +0000 ExecuTorch Adoption in Reality Labs: Powering On-Device AI Across Meta Devices https://ai.meta.com/blog/executorch-reality-labs-on-device-ai/ 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. https://ai.meta.com/blog/executorch-reality-labs-on-device-ai/ Open Source Fri, 21 Nov 2025 00:00:00 +0000 Introducing SAM 3D: Powerful 3D Reconstruction for Physical World Images https://ai.meta.com/blog/sam-3d/ 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. https://ai.meta.com/blog/sam-3d/ Computer Vision Wed, 19 Nov 2025 00:00:00 +0000 Omnilingual ASR: Advancing Automatic Speech Recognition for 1,600+ Languages https://ai.meta.com/blog/omnilingual-asr-advancing-automatic-speech-recognition/ We’re introducing Meta Omnilingual Automatic Speech Recognition, a suite of models providing automatic speech recognition capabilities for over 1,600 languages. https://ai.meta.com/blog/omnilingual-asr-advancing-automatic-speech-recognition/ Open Source Mon, 10 Nov 2025 00:00:00 +0000 Agents Rule of Two: A Practical Approach to AI Agent Security https://ai.meta.com/blog/practical-ai-agent-security/ https://ai.meta.com/blog/practical-ai-agent-security/ Fri, 31 Oct 2025 00:00:00 +0000 The Building Blocks of Agentic AI: From Kernels to Clusters https://ai.meta.com/blog/introducing-pytorch-native-agentic-stack/ 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. https://ai.meta.com/blog/introducing-pytorch-native-agentic-stack/ Open Source Fri, 24 Oct 2025 00:00:00 +0000 How Llama and Oracle are helping Instituto PROA kickstart careers for students in Brazil https://ai.meta.com/blog/llama-oracle-help-students-in-brazil/ Instituto PROA, a nonprofit organization in Brazil, has transformed its job preparation process for young candidates by leveraging Llama and Oracle Cloud Infrastructure. https://ai.meta.com/blog/llama-oracle-help-students-in-brazil/ Open Source Wed, 27 Aug 2025 00:00:00 +0000 How DINOv3 is helping World Resources Institute restore forests and farms globally https://ai.meta.com/blog/world-resources-institute-dinov3/ WRI and the Bezos Earth Fund used DINOv3 to develop an algorithm to accurately count individual trees from drone and satellite imagery. https://ai.meta.com/blog/world-resources-institute-dinov3/ Open Source Thu, 14 Aug 2025 00:00:00 +0000 Small robots, mighty vision: NASA Jet Propulsion Laboratory's DINOv2-enabled robot rovers and the future of planetary exploration https://ai.meta.com/blog/nasa-jpl-dino-robot-explorers/ Using DINOv2, the team at NASA's Jet Propulsion Laboratory built a convenient robot operating system interface for robotic tasks. https://ai.meta.com/blog/nasa-jpl-dino-robot-explorers/ Open Source Thu, 14 Aug 2025 00:00:00 +0000 DINOv3: Self-supervised learning for vision at unprecedented scale https://ai.meta.com/blog/dinov3-self-supervised-vision-model/ 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. https://ai.meta.com/blog/dinov3-self-supervised-vision-model/ Open Source Thu, 14 Aug 2025 00:00:00 +0000 How Llama helps Biofy Technologies in the fight against antibiotic resistance https://ai.meta.com/blog/llama-helps-biofy-fight-antibiotic-resistance/ 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. https://ai.meta.com/blog/llama-helps-biofy-fight-antibiotic-resistance/ Open Source Thu, 07 Aug 2025 00:00:00 +0000 How Upwork helps freelancers win more work with Llama https://ai.meta.com/blog/upwork-helps-freelancers-with-llama/ 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. https://ai.meta.com/blog/upwork-helps-freelancers-with-llama/ Open Source Thu, 31 Jul 2025 00:00:00 +0000 Joining forces with AWS on a new program to help startups build with Llama https://ai.meta.com/blog/aws-program-startups-build-with-llama/ 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. https://ai.meta.com/blog/aws-program-startups-build-with-llama/ Open Source Mon, 21 Jul 2025 00:00:00 +0000 Modeling natural conversational dynamics with Seamless Interaction https://ai.meta.com/blog/seamless-interaction-natural-conversational-dynamics/ https://ai.meta.com/blog/seamless-interaction-natural-conversational-dynamics/ Open Source Fri, 27 Jun 2025 00:00:00 +0000 How Llama helps drive engineering efficiency at a major Australian bank https://ai.meta.com/blog/llama-helps-efficiency-anz-bank/ ANZ, one of Australia's Big Four banks, is driving engineering efficiency with Llama. https://ai.meta.com/blog/llama-helps-efficiency-anz-bank/ Open Source Wed, 18 Jun 2025 00:00:00 +0000 Announcing the inaugural Llama Startup Program cohort https://ai.meta.com/blog/llama-startup-program-first-cohort/ 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. https://ai.meta.com/blog/llama-startup-program-first-cohort/ Large Language Model Tue, 17 Jun 2025 00:00:00 +0000 Introducing the V-JEPA 2 world model and new benchmarks for physical reasoning https://ai.meta.com/blog/v-jepa-2-world-model-benchmarks/ 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. https://ai.meta.com/blog/v-jepa-2-world-model-benchmarks/ Open Source Wed, 11 Jun 2025 00:00:00 +0000 Inside Aria Gen 2: Explore the cutting-edge tech behind the device https://ai.meta.com/blog/aria-gen-2-research-glasses-under-the-hood-reality-labs/ 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. https://ai.meta.com/blog/aria-gen-2-research-glasses-under-the-hood-reality-labs/ Computer Vision Wed, 04 Jun 2025 00:00:00 +0000 Introducing the Llama Startup Program https://ai.meta.com/blog/llama-startup-program/ 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. https://ai.meta.com/blog/llama-startup-program/ Open Source Wed, 21 May 2025 00:00:00 +0000 Sharing new breakthroughs and artifacts supporting molecular property prediction, language processing, and neuroscience https://ai.meta.com/blog/meta-fair-science-new-open-source-releases/ Meta FAIR is sharing new research artifacts that highlight our commitment to advanced machine intelligence (AMI) through focused scientific and academic progress. https://ai.meta.com/blog/meta-fair-science-new-open-source-releases/ Open Source Wed, 14 May 2025 00:00:00 +0000 Meet the winners of our first-ever LlamaCon Hackathon https://ai.meta.com/blog/llamacon-hackathon/ 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. https://ai.meta.com/blog/llamacon-hackathon/ Open Source Tue, 13 May 2025 00:00:00 +0000 How Meta Segment Anything Model enables Cutouts in the Instagram Edits app https://ai.meta.com/blog/instagram-edits-cutouts-segment-anything/ 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. https://ai.meta.com/blog/instagram-edits-cutouts-segment-anything/ Open Source Thu, 01 May 2025 00:00:00 +0000 How Common Sense Machines uses Meta Segment Anything Model and AI to generate production-ready 3D assets https://ai.meta.com/blog/segment-anything-common-sense-machines-3d-assets/ Common Sense Machines uses Meta Segment Anything Model 2 to analyze 2D images and video and translate their components to 3D. https://ai.meta.com/blog/segment-anything-common-sense-machines-3d-assets/ Open Source Thu, 01 May 2025 00:00:00 +0000 Everything we announced at our first-ever LlamaCon https://ai.meta.com/blog/llamacon-llama-news/ Here’s a look at what we announced at LlamaCon and how you can get started with our newest releases. https://ai.meta.com/blog/llamacon-llama-news/ Open Source Tue, 29 Apr 2025 00:00:00 +0000 Sharing new open source protection tools and advancements in AI privacy and security https://ai.meta.com/blog/ai-defenders-program-llama-protection-tools/ Today, we’re releasing new Llama protection tools for the open source AI community. https://ai.meta.com/blog/ai-defenders-program-llama-protection-tools/ Open Source Tue, 29 Apr 2025 00:00:00 +0000 How Litmos is using Llama to make corporate learning more intuitive https://ai.meta.com/blog/litmos-llama-intuitive-corporate-learning/ With Llama 3.1 8B, Litmos created an AI-powered assistant that enables natural language search, making the LMS more intuitive and user-friendly. https://ai.meta.com/blog/litmos-llama-intuitive-corporate-learning/ Open Source Wed, 23 Apr 2025 00:00:00 +0000 Advancing AI systems through progress in perception, localization, and reasoning https://ai.meta.com/blog/meta-fair-updates-perception-localization-reasoning/ Meta FAIR is releasing several new research artifacts that advance our understanding of perception and support our goal of achieving advanced machine intelligence (AMI). https://ai.meta.com/blog/meta-fair-updates-perception-localization-reasoning/ Open Source Thu, 17 Apr 2025 00:00:00 +0000 The Llama 4 herd: The beginning of a new era of natively multimodal AI innovation https://ai.meta.com/blog/llama-4-multimodal-intelligence/ 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. https://ai.meta.com/blog/llama-4-multimodal-intelligence/ Large Language Model Sat, 05 Apr 2025 00:00:00 +0000 How Tavus is helping to make AI videos feel like real conversations https://ai.meta.com/blog/tavus-real-feeling-ai-videos-llama/ Tavus, an AI video research company, leverages advanced AI models to create human-like digital interactions that feel as authentic as real human conversations. https://ai.meta.com/blog/tavus-real-feeling-ai-videos-llama/ Open Source Wed, 02 Apr 2025 00:00:00 +0000 How Cornerstone is transforming XR training to build essential skills for the modern workforce https://ai.meta.com/blog/cornerstone-transforming-training-llama/ Cornerstone is transforming how employees learn. Using Llama, they’re taking that experience to the next level through extended reality training scenarios. https://ai.meta.com/blog/cornerstone-transforming-training-llama/ Open Source Wed, 26 Mar 2025 00:00:00 +0000 Meta at SXSW: How Llama and open source AI is leveling the playing field and enabling innovation https://ai.meta.com/blog/sxsw-meta-llama-open-source-innovation/ At SXSW, Meta and Llama developers showcased the impact of open source AI, and participated in policy discussions and hands-on demos. https://ai.meta.com/blog/sxsw-meta-llama-open-source-innovation/ Open Source Tue, 18 Mar 2025 00:00:00 +0000 Our open source Llama models are helping to spur economic growth in the US https://ai.meta.com/blog/built-with-llama-writesea-fynopsis-srimoyee-mukhopadhyay-united-states-economy/ 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. https://ai.meta.com/blog/built-with-llama-writesea-fynopsis-srimoyee-mukhopadhyay-united-states-economy/ Open Source Tue, 18 Mar 2025 00:00:00 +0000 How Smartly is improving customer service and automating technical support with generative AI https://ai.meta.com/blog/smartly-improving-customer-service-llama/ Smartly, a digital advertising platform, harnesses the power of AI to scale ads across channels. https://ai.meta.com/blog/smartly-improving-customer-service-llama/ Open Source Wed, 12 Mar 2025 00:00:00 +0000 Building foundation models for understanding human pathology using DINOv2 https://ai.meta.com/blog/mahmood-lab-human-pathology-dinov2/ 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. https://ai.meta.com/blog/mahmood-lab-human-pathology-dinov2/ Thu, 06 Mar 2025 00:00:00 +0000 How Sofya is taking clinical reasoning to the next level with Llama https://ai.meta.com/blog/sofya-clinical-reasoning-with-llama/ Sofya turned to Llama with the goal of fostering the development of healthcare solutions in Brazil and Latin America. https://ai.meta.com/blog/sofya-clinical-reasoning-with-llama/ Wed, 05 Mar 2025 00:00:00 +0000 How Sevilla FC is discovering future soccer stars with Llama https://ai.meta.com/blog/sevilla-fc-scout-advisor-llama-ibm-watsonx/ 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. https://ai.meta.com/blog/sevilla-fc-scout-advisor-llama-ibm-watsonx/ Open Source Fri, 28 Feb 2025 00:00:00 +0000 How Orakl Oncology is using DINOv2 to accelerate cancer treatment discovery https://ai.meta.com/blog/orakl-oncology-dinov2-accelerating-cancer-treatment/ Orakl Oncology aims to accelerate cancer research and drug development by combining experimental, lab-based insights and machine learning. https://ai.meta.com/blog/orakl-oncology-dinov2-accelerating-cancer-treatment/ Thu, 20 Feb 2025 00:00:00 +0000 EgoMimic: Georgia Tech PhD student uses Project Aria Research Glasses to help train humanoid robots https://ai.meta.com/blog/egomimic-project-aria-georgia-tech-ego4d-robotics-embodied-ai/ 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. https://ai.meta.com/blog/egomimic-project-aria-georgia-tech-ego4d-robotics-embodied-ai/ Open Source Wed, 19 Feb 2025 00:00:00 +0000 Dramatically accelerating patient-matching in clinical trials with open source https://ai.meta.com/blog/mendel-ai-accelerating-clinical-trials-with-llama/ 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. https://ai.meta.com/blog/mendel-ai-accelerating-clinical-trials-with-llama/ Wed, 19 Feb 2025 00:00:00 +0000 AI Artifacts: An interview with Ruben Fro and Benjamin Bardou https://ai.meta.com/blog/ai-action-summit-2025-ruben-fro-benjamin-bardou-mehdi-mejri/ 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. https://ai.meta.com/blog/ai-action-summit-2025-ruben-fro-benjamin-bardou-mehdi-mejri/ Open Source Wed, 12 Feb 2025 00:00:00 +0000 Update: Expanding access to Meta Segment Anything 2.1 on Amazon SageMaker JumpStart https://ai.meta.com/blog/segment-anything-2/ 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. https://ai.meta.com/blog/segment-anything-2/ Open Source Wed, 12 Feb 2025 00:00:00 +0000 Reimagining K-12 Education: How Blended Labs is raising the bar with AI-driven schools https://ai.meta.com/blog/blended-labs-ai-driven-schools-with-llama/ 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. https://ai.meta.com/blog/blended-labs-ai-driven-schools-with-llama/ Wed, 12 Feb 2025 00:00:00 +0000 Using AI to decode language from the brain and advance our understanding of human communication https://ai.meta.com/blog/brain-ai-research-human-communication/ 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. https://ai.meta.com/blog/brain-ai-research-human-communication/ Research Fri, 07 Feb 2025 00:00:00 +0000 Advancing machine intelligence through human-centered research https://ai.meta.com/blog/machine-intelligence-research-new-models/ 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. https://ai.meta.com/blog/machine-intelligence-research-new-models/ Fri, 07 Feb 2025 00:00:00 +0000 Enlisting Llama in India’s first open source audio language model https://ai.meta.com/blog/sarvam-india-audio-language-model-llama/ Sarvam used Llama to develop enterprise voice AI agents with improved reasoning capabilities that are proficient in 10 Indian languages. https://ai.meta.com/blog/sarvam-india-audio-language-model-llama/ Wed, 05 Feb 2025 00:00:00 +0000 How Altana employs Llama to elevate global value chain management https://ai.meta.com/blog/altana-value-chain-management-llama/ Altana uses AI to help businesses and governments manage their global supply chains, providing insight into extended supplier and distribution networks. https://ai.meta.com/blog/altana-value-chain-management-llama/ Open Source Thu, 30 Jan 2025 00:00:00 +0000 How BrightHeart uses Meta’s DINOv2 to transform fetal heart screenings https://ai.meta.com/blog/brightheart-transforms-fetal-heart-screenings-dinov2/ 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. https://ai.meta.com/blog/brightheart-transforms-fetal-heart-screenings-dinov2/ Open Source Thu, 23 Jan 2025 00:00:00 +0000 Scaling an AI coding assistant built with Llama to hundreds of thousands of users https://ai.meta.com/blog/codeium-ai-coding-assistant-llama/ Codeium’s AI-enabled coding assistant leverages Llama for its free and premiere offerings. https://ai.meta.com/blog/codeium-ai-coding-assistant-llama/ Wed, 22 Jan 2025 00:00:00 +0000 How digital artist Josephine Miller uses Meta Segment Anything to help design the future of fashion https://ai.meta.com/blog/josephine-miller-designer-meta-segment-anything-2/ 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. https://ai.meta.com/blog/josephine-miller-designer-meta-segment-anything-2/ Open Source Thu, 16 Jan 2025 00:00:00 +0000 How Llama is helping Saama deliver new possibilities in personalized medicine and data-driven care https://ai.meta.com/blog/saama-data-driven-care-built-with-llama/ 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. https://ai.meta.com/blog/saama-data-driven-care-built-with-llama/ Tue, 14 Jan 2025 00:00:00 +0000 How Virgo is using DINOv2 to analyze endoscopy videos for precision medicine https://ai.meta.com/blog/virgo-dino-endoscopy-video/ Virgo, a company based in San Diego, California, believes endoscopy video and AI are a powerful combination that could lead to improved patient outcomes. https://ai.meta.com/blog/virgo-dino-endoscopy-video/ Open Source Thu, 09 Jan 2025 00:00:00 +0000 How TU Dresden is advancing precision oncology and transforming healthcare AI https://ai.meta.com/blog/dresden-advancing-precision-oncology-built-with-llama/ TUD Dresden University of Technology’s Clinical AI research group is transforming cancer care through computational innovation, focusing on precision oncology. https://ai.meta.com/blog/dresden-advancing-precision-oncology-built-with-llama/ Wed, 08 Jan 2025 00:00:00 +0000 Introducing Nymeria, a dataset for improving human motion prediction for AR and VR devices https://ai.meta.com/blog/nymeria-dataset-reality-labs-research-egocentric-human-motion-understanding/ 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. https://ai.meta.com/blog/nymeria-dataset-reality-labs-research-egocentric-human-motion-understanding/ Open Source Fri, 20 Dec 2024 00:00:00 +0000 Finding the perfect book to read next with a Llama-based assistant https://ai.meta.com/blog/scribd-everand-llama/ Scribd, Inc.’s Everand reading service is home to a global library of millions of ebooks, audiobooks and more. https://ai.meta.com/blog/scribd-everand-llama/ Open Source Fri, 20 Dec 2024 00:00:00 +0000 The future of AI: Built with Llama https://ai.meta.com/blog/future-of-ai-built-with-llama/ 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. https://ai.meta.com/blog/future-of-ai-built-with-llama/ Large Language Model Thu, 19 Dec 2024 00:00:00 +0000 How Spotify is using Llama to create personalized recommendations and enhance content discovery https://ai.meta.com/blog/spotify-personalized-recommendations-built-with-llama/ Spotify uses Llama to deliver contextualized recommendations to boost artist discovery and create an even richer user experience. https://ai.meta.com/blog/spotify-personalized-recommendations-built-with-llama/ Wed, 18 Dec 2024 00:00:00 +0000 Sharing new research, models, and datasets from Meta FAIR https://ai.meta.com/blog/meta-fair-updates-agents-robustness-safety-architecture/ Meta FAIR is releasing new research artifacts that highlight our recent innovations in developing agents, robustness and safety, and architectures that facilitate machine learning. https://ai.meta.com/blog/meta-fair-updates-agents-robustness-safety-architecture/ Open Source Thu, 12 Dec 2024 00:00:00 +0000 How Inarix is using DINOv2 to revolutionize the agricultural supply chain https://ai.meta.com/blog/inarix-agricultural-supply-chain-meta-dino-v2/ Inarix is transforming the agricultural industry by turning smartphones into pocket laboratories using Meta FAIR’s DinoV2. https://ai.meta.com/blog/inarix-agricultural-supply-chain-meta-dino-v2/ Fri, 06 Dec 2024 00:00:00 +0000 Advancing Neuromotor Interfaces by Open Sourcing Surface Electromyography (sEMG) Datasets for Pose Estimation and Surface Typing https://ai.meta.com/blog/open-sourcing-surface-electromyography-datasets-neurips-2024/ 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. https://ai.meta.com/blog/open-sourcing-surface-electromyography-datasets-neurips-2024/ Open Source Thu, 05 Dec 2024 00:00:00 +0000 Scaling semiconductor expertise with Llama-powered Domain-Expert Agents https://ai.meta.com/blog/aitomatic-built-with-llama/ Aitomatic enables semiconductor companies to build Domain-Expert Agents to capture and scale their deep domain expertise using Llama-based foundation models. https://ai.meta.com/blog/aitomatic-built-with-llama/ Wed, 04 Dec 2024 00:00:00 +0000 Extending healthcare access to underserved communities with AI https://ai.meta.com/blog/bimedix-built-with-llama/ The team behind BiMediX2, an Arabic-English medical large multimodal model, aims to expand healthcare access in Africa and the Middle East. https://ai.meta.com/blog/bimedix-built-with-llama/ Mon, 02 Dec 2024 00:00:00 +0000 Introducing SPDL: Faster AI model training with thread-based data loading https://ai.meta.com/blog/spdl-faster-ai-model-training-with-thread-based-data-loading-reality-labs/ 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). https://ai.meta.com/blog/spdl-faster-ai-model-training-with-thread-based-data-loading-reality-labs/ Model Training Fri, 22 Nov 2024 00:00:00 +0000 Building a chatbot based on Llama to engage an intergovernmental organization’s stakeholders https://ai.meta.com/blog/accenture-built-with-llama/ Accenture turned to Llama for a leading global intergovernmental body’s first large-scale, public-facing generative AI application. https://ai.meta.com/blog/accenture-built-with-llama/ Large Language Model Wed, 20 Nov 2024 00:00:00 +0000 Open Catalyst experiments 2024 https://ai.meta.com/blog/open-catalyst-simulations-experiments/ Meta FAIR is releasing a large-scale dataset of experimental results on various materials, providing valuable insights for the development of new catalysts. https://ai.meta.com/blog/open-catalyst-simulations-experiments/ Tue, 19 Nov 2024 00:00:00 +0000 IBM and Llama: Working to enable AI builder creativity globally https://ai.meta.com/blog/ibm-watsonx-ai-llama/ 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. https://ai.meta.com/blog/ibm-watsonx-ai-llama/ Open Source Wed, 13 Nov 2024 00:00:00 +0000 Highlights from the first-ever Llama hackathon in India https://ai.meta.com/blog/llama-hackathon-india/ Teams embarked on a 30-hour journey to create AI solutions tackling real-world challenges, leveraging Meta’s Llama 3 models and WhatsApp APIs. https://ai.meta.com/blog/llama-hackathon-india/ Large Language Model Fri, 08 Nov 2024 00:00:00 +0000 Advancing embodied AI through progress in touch perception, dexterity, and human-robot interaction https://ai.meta.com/blog/fair-robotics-open-source/ Meta FAIR is publicly releasing several new research artifacts that advance robotics and support our goal of reaching advanced machine intelligence (AMI). https://ai.meta.com/blog/fair-robotics-open-source/ Open Source Thu, 31 Oct 2024 00:00:00 +0000 Roboflow estimates a 74-year time savings across its community from using Meta’s Segment Anything https://ai.meta.com/blog/segment-anything-roboflow-image-segmentation/ 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. https://ai.meta.com/blog/segment-anything-roboflow-image-segmentation/ Open Source Thu, 24 Oct 2024 00:00:00 +0000 Introducing quantized Llama models with increased speed and a reduced memory footprint https://ai.meta.com/blog/meta-llama-quantized-lightweight-models/ 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. https://ai.meta.com/blog/meta-llama-quantized-lightweight-models/ Large Language Model Thu, 24 Oct 2024 00:00:00 +0000 How an online gifting site is using Llama to help protect customer privacy https://ai.meta.com/blog/untukmu-built-with-llama/ 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. https://ai.meta.com/blog/untukmu-built-with-llama/ Tue, 22 Oct 2024 00:00:00 +0000 Sharing new research, models, and datasets from Meta FAIR https://ai.meta.com/blog/fair-news-segment-anything-2-1-meta-spirit-lm-layer-skip-salsa-lingua/ 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. https://ai.meta.com/blog/fair-news-segment-anything-2-1-meta-spirit-lm-layer-skip-salsa-lingua/ Open Source Fri, 18 Oct 2024 00:00:00 +0000 Partnering with Blumhouse, creators, and the entertainment industry as we develop Meta Movie Gen https://ai.meta.com/blog/movie-gen-video-sound-generation-blumhouse/ 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. https://ai.meta.com/blog/movie-gen-video-sound-generation-blumhouse/ Research Thu, 17 Oct 2024 00:00:00 +0000 How Llama helped CodeGPT become one of the top AI-powered coding assistants https://ai.meta.com/blog/codegpt-built-with-llama/ CodeGPT integrates large language models like Llama to make developers and CTOs more productive. https://ai.meta.com/blog/codegpt-built-with-llama/ Open Source Wed, 16 Oct 2024 00:00:00 +0000 How Neuromnia is transforming ABA therapy with Llama 3.1 https://ai.meta.com/blog/neuromnia-autism-aba-therapy-built-with-llama/ Harnessing Llama 3.1, Neuromnia recently developed Nia, a human-centric AI co-pilot for Applied Behavior Analysis therapy. https://ai.meta.com/blog/neuromnia-autism-aba-therapy-built-with-llama/ Open Source Wed, 09 Oct 2024 00:00:00 +0000 How Meta Movie Gen could usher in a new AI-enabled era for content creators https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/ Today, we’re excited to premiere Meta Movie Gen, our breakthrough generative AI research for media, which includes modalities like image, video, and audio. https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/ Research Fri, 04 Oct 2024 00:00:00 +0000 Making data science more accessible to enterprises with Llama https://ai.meta.com/blog/meta-learner-llama-data-science/ 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. https://ai.meta.com/blog/meta-learner-llama-data-science/ Open Source Wed, 02 Oct 2024 00:00:00 +0000 Introducing the Digital Twin Catalog from Reality Labs Research https://ai.meta.com/blog/digital-twin-catalog-3d-reconstruction-shopify-reality-labs-research/ 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. https://ai.meta.com/blog/digital-twin-catalog-3d-reconstruction-shopify-reality-labs-research/ Open Source Mon, 30 Sep 2024 00:00:00 +0000 Connect 2024: The responsible approach we’re taking to generative AI https://ai.meta.com/blog/responsible-ai-connect-2024/ With the rapidly evolving AI landscape, we recognize the importance of sharing our responsibility and safety approach with everyone. https://ai.meta.com/blog/responsible-ai-connect-2024/ Responsible AI Wed, 25 Sep 2024 00:00:00 +0000 ================================================ FILE: feeds/feed_mistral.xml ================================================ Mistral AI News https://mistral.ai/news News, research, and product updates from Mistral AI http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 11:21:50 +0000 Remote agents in Vibe. Powered by Mistral Medium 3.5. https://mistral.ai/news/vibe-remote-agents-mistral-medium-3-5 Introducing Mistral Medium 3.5, remote coding agents in Vibe, plus new Work mode in Le Chat for complex tasks. https://mistral.ai/news/vibe-remote-agents-mistral-medium-3-5 Product Wed, 29 Apr 2026 00:00:00 +0000 Workflows for work that runs the business https://mistral.ai/news/workflows Workflows is now in public preview. https://mistral.ai/news/workflows Product Mon, 27 Apr 2026 00:00:00 +0000 Connect the dots: Build with built-in and custom MCPs in Studio https://mistral.ai/news/connectors Connect enterprise data to your AI applications with reusable connectors, direct tool calling, and human-in-the-loop approval controls. https://mistral.ai/news/connectors Product Wed, 15 Apr 2026 00:00:00 +0000 Two users, one CLI: people and agents https://mistral.ai/news/two-users-one-cli-people-and-agents Designing for agents forced us to build better tools, starting with our internal ones. https://mistral.ai/news/two-users-one-cli-people-and-agents Engineering Tue, 31 Mar 2026 00:00:00 +0000 Speaking of Voxtral https://mistral.ai/news/voxtral-tts Voxtral TTS: A frontier, open-weights text-to-speech model that’s fast, instantly adaptable, and produces lifelike speech for voice agents. https://mistral.ai/news/voxtral-tts Research Mon, 23 Mar 2026 00:00:00 +0000 Introducing Forge https://mistral.ai/news/forge Today, we’re introducing Forge, a system that allows enterprises to build frontier-grade AI models grounded in their proprietary knowledge. https://mistral.ai/news/forge Product Tue, 17 Mar 2026 00:00:00 +0000 Leanstral: Open-Source foundation for trustworthy vibe-coding https://mistral.ai/news/leanstral First open-source code agent for Lean 4. https://mistral.ai/news/leanstral Research Mon, 16 Mar 2026 00:00:00 +0000 Mistral AI partners with NVIDIA to accelerate open frontier models https://mistral.ai/news/mistral-ai-and-nvidia-partner-to-accelerate-open-frontier-models As a founding member of the NVIDIA Nemotron Coalition, Mistral AI is contributing large-scale model development and multimodal capabilities. https://mistral.ai/news/mistral-ai-and-nvidia-partner-to-accelerate-open-frontier-models Company Mon, 16 Mar 2026 00:00:00 +0000 Introducing Mistral Small 4 https://mistral.ai/news/mistral-small-4 Introducing Mistral Small 4 https://mistral.ai/news/mistral-small-4 Research Mon, 16 Mar 2026 00:00:00 +0000 Rails testing on autopilot: Building an agent that writes what developers won't https://mistral.ai/news/rails-testing-on-autopilot-building-an-agent-that-writes-what-developers-wont Rails testing on autopilot: Building an agent that writes what developers won't https://mistral.ai/news/rails-testing-on-autopilot-building-an-agent-that-writes-what-developers-wont Solutions Wed, 11 Mar 2026 00:00:00 +0000 Voxtral transcribes at the speed of sound. https://mistral.ai/news/voxtral-transcribe-2 Precision diarization, real-time transcription, and a new audio playground. https://mistral.ai/news/voxtral-transcribe-2 Research Wed, 04 Feb 2026 00:00:00 +0000 Terminally online Mistral Vibe. https://mistral.ai/news/mistral-vibe-2-0 Terminally online Mistral Vibe. https://mistral.ai/news/mistral-vibe-2-0 Product Tue, 27 Jan 2026 00:00:00 +0000 Heaps do lie: debugging a memory leak in vLLM. https://mistral.ai/news/debugging-memory-leak-in-vllm Heaps do lie: debugging a memory leak in vLLM. https://mistral.ai/news/debugging-memory-leak-in-vllm Engineering Wed, 21 Jan 2026 00:00:00 +0000 Introducing Mistral OCR 3 https://mistral.ai/news/mistral-ocr-3 Achieving a new frontier for both accuracy and efficiency in document processing. https://mistral.ai/news/mistral-ocr-3 Research Wed, 17 Dec 2025 00:00:00 +0000 Introducing: Devstral 2 and Mistral Vibe CLI. https://mistral.ai/news/devstral-2-vibe-cli State-of-the-art, open-source agentic coding models and CLI agent. https://mistral.ai/news/devstral-2-vibe-cli Research Tue, 09 Dec 2025 00:00:00 +0000 Introducing Mistral 3 https://mistral.ai/news/mistral-3 A family of frontier open-source multimodal models https://mistral.ai/news/mistral-3 Research Tue, 02 Dec 2025 00:00:00 +0000 Mistral AI - KI für Deutschland https://mistral.ai/news/ki-fur-deutschland Mistral AI - KI für Deutschland https://mistral.ai/news/ki-fur-deutschland Company Wed, 19 Nov 2025 00:00:00 +0000 Introducing Mistral AI Studio. https://mistral.ai/news/ai-studio The Production AI Platform. https://mistral.ai/news/ai-studio Product Fri, 24 Oct 2025 00:00:00 +0000 Mistral AI raises 1.7B€ to accelerate technological progress with AI https://mistral.ai/news/mistral-ai-raises-1-7-b-to-accelerate-technological-progress-with-ai Mistral AI raises 1.7B€ to accelerate technological progress with AI https://mistral.ai/news/mistral-ai-raises-1-7-b-to-accelerate-technological-progress-with-ai Company Tue, 09 Sep 2025 00:00:00 +0000 Le Chat. Custom MCP connectors. Memories. https://mistral.ai/news/le-chat-mcp-connectors-memories Le Chat now integrates with 20+ enterprise platforms—powered by MCP—and remembers what matters with Memories. https://mistral.ai/news/le-chat-mcp-connectors-memories Product Tue, 02 Sep 2025 00:00:00 +0000 Make Memory work for you. https://mistral.ai/news/memory Designing transparency and control into AI recall. https://mistral.ai/news/memory Product Tue, 02 Sep 2025 00:00:00 +0000 Unlocking the potential of vision language models on satellite imagery through fine-tuning https://mistral.ai/news/unlocking-potential-vision-language-models-satellite-imagery-fine-tuning Unlocking the potential of vision language models on satellite imagery through fine-tuning https://mistral.ai/news/unlocking-potential-vision-language-models-satellite-imagery-fine-tuning Solutions Fri, 01 Aug 2025 00:00:00 +0000 Announcing Codestral 25.08 and the Complete Mistral Coding Stack for Enterprise https://mistral.ai/news/codestral-25-08 Announcing Codestral 25.08 and the Complete Mistral Coding Stack for Enterprise https://mistral.ai/news/codestral-25-08 Research Wed, 30 Jul 2025 00:00:00 +0000 Our contribution to a global environmental standard for AI https://mistral.ai/news/our-contribution-to-a-global-environmental-standard-for-ai Our contribution to a global environmental standard for AI https://mistral.ai/news/our-contribution-to-a-global-environmental-standard-for-ai Company Tue, 22 Jul 2025 00:00:00 +0000 Le Chat dives deep. https://mistral.ai/news/le-chat-dives-deep Introducing Deep Research (Preview), plus Audio-in, Projects, and other updates. https://mistral.ai/news/le-chat-dives-deep Product Thu, 17 Jul 2025 00:00:00 +0000 Voxtral https://mistral.ai/news/voxtral Introducing frontier open source speech understanding models. https://mistral.ai/news/voxtral Research Tue, 15 Jul 2025 00:00:00 +0000 Upgrading agentic coding capabilities with the new Devstral models https://mistral.ai/news/devstral-2507 Upgrading agentic coding capabilities with the new Devstral models https://mistral.ai/news/devstral-2507 Research Thu, 10 Jul 2025 00:00:00 +0000 Announcing AI for Citizens https://mistral.ai/news/ai-for-citizens Empowering countries to use AI to transform public action and catalyze innovation for the benefit of their citizens. https://mistral.ai/news/ai-for-citizens Solutions Thu, 03 Jul 2025 00:00:00 +0000 Mistral Compute https://mistral.ai/news/mistral-compute Frontier AI infrastructure for everyone. https://mistral.ai/news/mistral-compute Company Wed, 11 Jun 2025 00:00:00 +0000 Magistral https://mistral.ai/news/magistral Stands to reason. https://mistral.ai/news/magistral Research Tue, 10 Jun 2025 00:00:00 +0000 Introducing Mistral Code https://mistral.ai/news/mistral-code Introducing Mistral Code https://mistral.ai/news/mistral-code Product Wed, 04 Jun 2025 00:00:00 +0000 Codestral Embed https://mistral.ai/news/codestral-embed The new state-of-the-art embedding model for code. https://mistral.ai/news/codestral-embed Research Wed, 28 May 2025 00:00:00 +0000 Build AI agents with the Mistral Agents API https://mistral.ai/news/agents-api Build AI agents with the Mistral Agents API https://mistral.ai/news/agents-api Product Tue, 27 May 2025 00:00:00 +0000 Devstral https://mistral.ai/news/devstral Introducing the best open-source model for coding agents. https://mistral.ai/news/devstral Research Wed, 21 May 2025 00:00:00 +0000 Introducing Le Chat Enterprise https://mistral.ai/news/le-chat-enterprise Your Enterprise. Your AI. https://mistral.ai/news/le-chat-enterprise Product Wed, 07 May 2025 00:00:00 +0000 Medium is the new large. https://mistral.ai/news/mistral-medium-3 Mistral Medium 3 delivers state-of-the-art performance at 8X lower cost with radically simplified enterprise deployments. https://mistral.ai/news/mistral-medium-3 Research Wed, 07 May 2025 00:00:00 +0000 Evaluating RAG with LLM as a Judge https://mistral.ai/news/llm-as-rag-judge Using Mistral Models for LLM as a Judge (With Structured Outputs) https://mistral.ai/news/llm-as-rag-judge Solutions Wed, 09 Apr 2025 00:00:00 +0000 Mistral Small 3.1 https://mistral.ai/news/mistral-small-3-1 SOTA. Multimodal. Multilingual. Apache 2.0 https://mistral.ai/news/mistral-small-3-1 Research Mon, 17 Mar 2025 00:00:00 +0000 Mistral OCR https://mistral.ai/news/mistral-ocr Introducing the world’s best document understanding API. https://mistral.ai/news/mistral-ocr Research Thu, 06 Mar 2025 00:00:00 +0000 Empowering product development with an agentic workflow https://mistral.ai/news/agentic-workflows-from-meetings-to-dev-tickets Transform meeting transcripts into development tasks with Mistral AI: From call transcript to PRD to engineering tickets. https://mistral.ai/news/agentic-workflows-from-meetings-to-dev-tickets Solutions Tue, 04 Mar 2025 00:00:00 +0000 Mistral Saba https://mistral.ai/news/mistral-saba One of the many custom-trained models to serve specific geographies, markets, and customers https://mistral.ai/news/mistral-saba Research Mon, 17 Feb 2025 00:00:00 +0000 The all new le Chat: Your AI assistant for life and work https://mistral.ai/news/all-new-le-chat Brand new features, iOS and Android apps, Pro, Team, and Enterprise tiers. https://mistral.ai/news/all-new-le-chat Product Thu, 06 Feb 2025 00:00:00 +0000 Mistral Small 3 https://mistral.ai/news/mistral-small-3 Mistral Small 3: Apache 2.0, 81% MMLU, 150 tokens/s https://mistral.ai/news/mistral-small-3 Research Thu, 30 Jan 2025 00:00:00 +0000 Purr-fectly informed https://mistral.ai/news/mistral-afp Le Chat and AFP team up to deliver AI powered by news, providing Le Chat users with richer, more reliable and more accurate responses. https://mistral.ai/news/mistral-afp Product Thu, 16 Jan 2025 00:00:00 +0000 Codestral 25.01 https://mistral.ai/news/codestral-2501 Access the Codestral 25.01 API https://mistral.ai/news/codestral-2501 Research Mon, 13 Jan 2025 00:00:00 +0000 Pixtral Large https://mistral.ai/news/pixtral-large Pixtral grows up. https://mistral.ai/news/pixtral-large Research Mon, 18 Nov 2024 00:00:00 +0000 Mistral has entered the chat https://mistral.ai/news/mistral-chat Search, vision, ideation, coding… all yours for free. https://mistral.ai/news/mistral-chat Product Mon, 18 Nov 2024 00:00:00 +0000 Mistral Moderation API https://mistral.ai/news/mistral-moderation We are introducing our new moderation service enabling our users to detect undesirable text content along several policy dimensions. https://mistral.ai/news/mistral-moderation Research Thu, 07 Nov 2024 00:00:00 +0000 Mistral Batch API https://mistral.ai/news/batch-api Lower cost API for AI builders. https://mistral.ai/news/batch-api Product Thu, 07 Nov 2024 00:00:00 +0000 Un Ministral, des Ministraux https://mistral.ai/news/ministraux Introducing the world’s best edge models. https://mistral.ai/news/ministraux Research Wed, 16 Oct 2024 00:00:00 +0000 Announcing Pixtral 12B https://mistral.ai/news/pixtral-12b Pixtral 12B - the first-ever multimodal Mistral model. Apache 2.0. https://mistral.ai/news/pixtral-12b Research Tue, 17 Sep 2024 00:00:00 +0000 AI in abundance https://mistral.ai/news/september-24-release Introducing a free API, improved pricing across the board, a new enterprise-grade Mistral Small, and free vision capabilities on le Chat. https://mistral.ai/news/september-24-release Product Tue, 17 Sep 2024 00:00:00 +0000 Build, tweak, repeat https://mistral.ai/news/build-tweak-repeat Making it easier to develop and share generative AI applications. https://mistral.ai/news/build-tweak-repeat Research Wed, 07 Aug 2024 00:00:00 +0000 Large Enough https://mistral.ai/news/mistral-large-2407 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 https://mistral.ai/news/mistral-large-2407 Research Wed, 24 Jul 2024 00:00:00 +0000 ================================================ FILE: feeds/feed_ollama.xml ================================================ Ollama Blog https://ollama.com/blog Latest updates from Ollama http://www.rssboard.org/rss-specification python-feedgen https://ollama.com/public/icon-64x64.png Ollama Blog https://ollama.com/blog en Wed, 13 May 2026 10:50:35 +0000 Run Llama 2 uncensored locally https://ollama.com/blog/run-llama2-uncensored-locally This post will give some example comparisons running Llama 2 uncensored model versus its censored model. https://ollama.com/blog/run-llama2-uncensored-locally Tue, 01 Aug 2023 00:00:00 +0000 Run Code Llama locally https://ollama.com/blog/run-code-llama-locally Meta's Code Llama is now available on Ollama to try. https://ollama.com/blog/run-code-llama-locally Thu, 24 Aug 2023 00:00:00 +0000 How to prompt Code Llama https://ollama.com/blog/how-to-prompt-code-llama 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). https://ollama.com/blog/how-to-prompt-code-llama Sat, 09 Sep 2023 00:00:00 +0000 Leveraging LLMs in your Obsidian Notes https://ollama.com/blog/llms-in-obsidian This post walks through how you could incorporate a local LLM using Ollama in Obsidian, or potentially any note taking tool. https://ollama.com/blog/llms-in-obsidian Thu, 21 Sep 2023 00:00:00 +0000 Ollama is now available as an official Docker image https://ollama.com/blog/ollama-is-now-available-as-an-official-docker-image Ollama can now run with Docker Desktop on the Mac, and run inside Docker containers with GPU acceleration on Linux. https://ollama.com/blog/ollama-is-now-available-as-an-official-docker-image Thu, 05 Oct 2023 00:00:00 +0000 Building LLM-Powered Web Apps with Client-Side Technology https://ollama.com/blog/building-llm-powered-web-apps 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” https://ollama.com/blog/building-llm-powered-web-apps Fri, 13 Oct 2023 00:00:00 +0000 Python & JavaScript Libraries https://ollama.com/blog/python-javascript-libraries 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. https://ollama.com/blog/python-javascript-libraries Tue, 23 Jan 2024 00:00:00 +0000 Vision models https://ollama.com/blog/vision-models 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. https://ollama.com/blog/vision-models Fri, 02 Feb 2024 00:00:00 +0000 OpenAI compatibility https://ollama.com/blog/openai-compatibility 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. https://ollama.com/blog/openai-compatibility Thu, 08 Feb 2024 00:00:00 +0000 Windows preview https://ollama.com/blog/windows-preview 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. https://ollama.com/blog/windows-preview Thu, 15 Feb 2024 00:00:00 +0000 Ollama now supports AMD graphics cards https://ollama.com/blog/amd-preview 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. https://ollama.com/blog/amd-preview Thu, 14 Mar 2024 00:00:00 +0000 Embedding models https://ollama.com/blog/embedding-models Embedding models are available in Ollama, making it easy to generate vector embeddings for use in search and retrieval augmented generation (RAG) applications. https://ollama.com/blog/embedding-models Mon, 08 Apr 2024 00:00:00 +0000 Llama 3 https://ollama.com/blog/llama3 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. https://ollama.com/blog/llama3 Thu, 18 Apr 2024 00:00:00 +0000 Llama 3 is not very censored https://ollama.com/blog/llama-3-is-not-very-censored 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. https://ollama.com/blog/llama-3-is-not-very-censored Fri, 19 Apr 2024 00:00:00 +0000 Google announces Firebase Genkit with Ollama support https://ollama.com/blog/firebase-genkit 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. https://ollama.com/blog/firebase-genkit Mon, 20 May 2024 00:00:00 +0000 An entirely open-source AI code assistant inside your editor https://ollama.com/blog/continue-code-assistant Continue enables you to easily create your own coding assistant directly inside Visual Studio Code and JetBrains with open-source LLMs. https://ollama.com/blog/continue-code-assistant Fri, 31 May 2024 00:00:00 +0000 Google Gemma 2 https://ollama.com/blog/gemma2 Gemma 2 is now available on Ollama in 3 sizes - 2B, 9B and 27B. https://ollama.com/blog/gemma2 Thu, 27 Jun 2024 00:00:00 +0000 Tool support https://ollama.com/blog/tool-support 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. https://ollama.com/blog/tool-support Thu, 25 Jul 2024 00:00:00 +0000 Reduce hallucinations with Bespoke-Minicheck https://ollama.com/blog/reduce-hallucinations-with-bespoke-minicheck 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. https://ollama.com/blog/reduce-hallucinations-with-bespoke-minicheck Wed, 18 Sep 2024 00:00:00 +0000 Llama 3.2 goes small and multimodal https://ollama.com/blog/llama3.2 Ollama partners with Meta to bring Llama 3.2 to Ollama. https://ollama.com/blog/llama3.2 Wed, 25 Sep 2024 00:00:00 +0000 IBM Granite 3.0 models https://ollama.com/blog/ibm-granite Ollama partners with IBM to bring Granite 3.0 models to Ollama. https://ollama.com/blog/ibm-granite Mon, 21 Oct 2024 00:00:00 +0000 Llama 3.2 Vision https://ollama.com/blog/llama3.2-vision Llama 3.2 Vision 11B and 90B models are now available in Ollama. https://ollama.com/blog/llama3.2-vision Wed, 06 Nov 2024 00:00:00 +0000 Ollama Python library 0.4 with function calling improvements https://ollama.com/blog/functions-as-tools 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. https://ollama.com/blog/functions-as-tools Mon, 25 Nov 2024 00:00:00 +0000 Structured outputs https://ollama.com/blog/structured-outputs 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. https://ollama.com/blog/structured-outputs Fri, 06 Dec 2024 00:00:00 +0000 Minions: where local and cloud LLMs meet https://ollama.com/blog/minions 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). https://ollama.com/blog/minions Tue, 25 Feb 2025 00:00:00 +0000 Ollama's new engine for multimodal models https://ollama.com/blog/multimodal-models Ollama now supports new multimodal models with its new engine. https://ollama.com/blog/multimodal-models Thu, 15 May 2025 00:00:00 +0000 Streaming responses with tool calling https://ollama.com/blog/streaming-tool Ollama now supports streaming responses with tool calling. This enables all chat applications to stream content and also call tools in real time. https://ollama.com/blog/streaming-tool Wed, 28 May 2025 00:00:00 +0000 Thinking https://ollama.com/blog/thinking 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. https://ollama.com/blog/thinking Fri, 30 May 2025 00:00:00 +0000 Secure Minions: private collaboration between Ollama and frontier models https://ollama.com/blog/secureminions Secure Minions is a secure protocol built by Stanford's Hazy Research lab to allow encrypted local-remote communication. https://ollama.com/blog/secureminions Tue, 03 Jun 2025 00:00:00 +0000 Ollama's new app https://ollama.com/blog/new-app Ollama's new app is now available for macOS and Windows. https://ollama.com/blog/new-app Wed, 30 Jul 2025 00:00:00 +0000 OpenAI gpt-oss https://ollama.com/blog/gpt-oss Ollama partners with OpenAI to bring gpt-oss to Ollama and its community. https://ollama.com/blog/gpt-oss Tue, 05 Aug 2025 00:00:00 +0000 Cloud models https://ollama.com/blog/cloud-models 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. https://ollama.com/blog/cloud-models Fri, 19 Sep 2025 00:00:00 +0000 New model scheduling https://ollama.com/blog/new-model-scheduling 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. https://ollama.com/blog/new-model-scheduling Tue, 23 Sep 2025 00:00:00 +0000 Web search https://ollama.com/blog/web-search 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. https://ollama.com/blog/web-search Wed, 24 Sep 2025 00:00:00 +0000 NVIDIA DGX Spark https://ollama.com/blog/nvidia-spark The latest NVIDIA DGX Spark is here! Ollama has partnered with NVIDIA to ensure it runs fast and efficiently out-of-the-box. https://ollama.com/blog/nvidia-spark Mon, 13 Oct 2025 00:00:00 +0000 Qwen3-VL https://ollama.com/blog/qwen3-vl Ollama now supports Alibaba's Qwen3-VL. https://ollama.com/blog/qwen3-vl Tue, 14 Oct 2025 00:00:00 +0000 New coding models & integrations https://ollama.com/blog/coding-models 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. https://ollama.com/blog/coding-models Thu, 16 Oct 2025 00:00:00 +0000 NVIDIA DGX Spark performance https://ollama.com/blog/nvidia-spark-performance We ran performance tests on release day firmware and an updated Ollama version to see how Ollama performs. https://ollama.com/blog/nvidia-spark-performance Thu, 23 Oct 2025 00:00:00 +0000 MiniMax M2 https://ollama.com/blog/minimax-m2 MiniMax M2 is now available on Ollama's cloud. It's a model built for coding and agentic workflows. https://ollama.com/blog/minimax-m2 Tue, 28 Oct 2025 00:00:00 +0000 OpenAI gpt-oss-safeguard https://ollama.com/blog/gpt-oss-safeguard 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. https://ollama.com/blog/gpt-oss-safeguard Wed, 29 Oct 2025 00:00:00 +0000 OpenAI Codex with Ollama https://ollama.com/blog/codex 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. https://ollama.com/blog/codex Thu, 15 Jan 2026 00:00:00 +0000 Claude Code with Anthropic API compatibility https://ollama.com/blog/claude Ollama is now compatible with the Anthropic Messages API, making it possible to use tools like Claude Code with open models. https://ollama.com/blog/claude Fri, 16 Jan 2026 00:00:00 +0000 Image generation (experimental) https://ollama.com/blog/image-generation Generate images locally with Ollama on macOS. Windows and Linux support coming soon. https://ollama.com/blog/image-generation Tue, 20 Jan 2026 00:00:00 +0000 ollama launch https://ollama.com/blog/launch 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. https://ollama.com/blog/launch Fri, 23 Jan 2026 00:00:00 +0000 OpenClaw https://ollama.com/blog/openclaw OpenClaw is a personal AI assistant that connects your messaging apps to local AI coding agents, all running on your own device. https://ollama.com/blog/openclaw Sun, 01 Feb 2026 00:00:00 +0000 Subagents and web search in Claude Code https://ollama.com/blog/web-search-subagents-claude-code Ollama now supports subagents and web search in Claude Code. https://ollama.com/blog/web-search-subagents-claude-code Mon, 16 Feb 2026 00:00:00 +0000 The simplest and fastest way to setup OpenClaw https://ollama.com/blog/openclaw-tutorial Setup OpenClaw in under two minutes with a single Ollama command. https://ollama.com/blog/openclaw-tutorial Mon, 23 Feb 2026 00:00:00 +0000 Ollama is now powered by MLX on Apple Silicon in preview https://ollama.com/blog/mlx Today, we're previewing the fastest way to run Ollama on Apple silicon, powered by MLX, Apple's machine learning framework. https://ollama.com/blog/mlx Mon, 30 Mar 2026 00:00:00 +0000 ================================================ FILE: feeds/feed_openai_research.xml ================================================ OpenAI Research News https://openai.com/news/research Latest research news and updates from OpenAI http://www.rssboard.org/rss-specification python-feedgen en Sat, 18 Apr 2026 13:51:52 +0000 [NOTICE] This feed is no longer maintainedOpenAI publishes an official RSS feed. This scraper is retired; the feed XML will be deleted in ~90 days. Recommended alternative: https://openai.com/blog/rss.xmldeprecation-notice-openai_researchSat, 18 Apr 2026 14:24:42 +0000https://openai.com/blog/rss.xml Introducing GPT-Rosalind for life sciences research https://openai.com/index/introducing-gpt-rosalind/ Introducing GPT-Rosalind for life sciences research Research Thu, 16 Apr 2026 00:00:00 +0000 Inside our approach to the Model Spec https://openai.com/index/our-approach-to-the-model-spec/ Inside our approach to the Model Spec Research Wed, 25 Mar 2026 00:00:00 +0000 How we monitor internal coding agents for misalignment https://openai.com/index/how-we-monitor-internal-coding-agents-misalignment/ How we monitor internal coding agents for misalignment Safety Thu, 19 Mar 2026 00:00:00 +0000 Improving instruction hierarchy in frontier LLMs https://openai.com/index/instruction-hierarchy-challenge/ Improving instruction hierarchy in frontier LLMs Research Tue, 10 Mar 2026 00:00:00 +0000 Introducing GPT-5.4 https://openai.com/index/introducing-gpt-5-4/ Introducing GPT-5.4 Product Thu, 05 Mar 2026 00:00:00 +0000 GPT-5.4 Thinking System Card https://openai.com/index/gpt-5-4-thinking-system-card/ GPT-5.4 Thinking System Card Publication Thu, 05 Mar 2026 00:00:00 +0000 Reasoning models struggle to control their chains of thought, and that’s good https://openai.com/index/reasoning-models-chain-of-thought-controllability/ Reasoning models struggle to control their chains of thought, and that’s good Research Thu, 05 Mar 2026 00:00:00 +0000 Extending single-minus amplitudes to gravitons https://openai.com/index/extending-single-minus-amplitudes-to-gravitons/ Extending single-minus amplitudes to gravitons Research Wed, 04 Mar 2026 00:00:00 +0000 GPT-5.3 Instant System Card https://openai.com/index/gpt-5-3-instant-system-card/ GPT-5.3 Instant System Card Publication Tue, 03 Mar 2026 00:00:00 +0000 ================================================ FILE: feeds/feed_paulgraham.xml ================================================ Paul Graham Essays https://paulgraham.com/articles.html Paul Graham's Essays and Writings http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:51:10 +0000 This Year We Can End the Death Penalty in California https://paulgraham.com/prop62.html If you're a California voter, there is an important proposition on your ballot this year: Proposition 62, which bans the death penalty.When I was younger I used to think the debate about the death penalty was about when it's ok to take a human life. Is it ok to 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 often arrest the wrong person. Defendants' lawyers are often incompetent. And prosecutors are often mo... https://paulgraham.com/prop62.html Tue, 01 Nov 2016 00:00:00 +0000 Lisp for Web-Based Applications https://paulgraham.com/lwba.html After a link to Beating the Averages was posted on slashdot, some readers wanted to hear in more detail about the specific technical advantages we got from using Lisp in Viaweb. For those who are interested, here are some excerpts from a talk I gave in April 2001 at BBN Labs in Cambridge, MA. https://paulgraham.com/lwba.html Sun, 01 Apr 2001 00:00:00 +0000 Beating the Averages https://paulgraham.com/avg.html Want to start a startup? Get funded by Y Combinator. April 2001, rev. April 2003(This article is derived from a talk given at the 2001 Franz Developer Symposium.) In the summer of 1995, my friend Robert Morris and I started a startup called Viaweb. Our plan was to write software that would let end users build online stores. What was novel about this software, at the time, was that it ran on our server, using ordinary Web pages as the interface.A lot of people could have been having this ... https://paulgraham.com/avg.html Wed, 01 Jan 2003 00:00:00 +0000 Java's Cover https://paulgraham.com/javacover.html This essay developed out of conversations I've had with several other programmers about why Java smelled suspicious. It's not a critique of Java! It is a case study of hacker's radar.Over time, hackers develop a nose for good (and bad) technology. I thought it might be interesting to try and write down what made Java seem suspect to me.Some people who've read this think it's an interesting attempt to write about something that hasn't been written about before. Others say I will get in trouble... https://paulgraham.com/javacover.html Sun, 01 Apr 2001 00:00:00 +0000 Being Popular https://paulgraham.com/popular.html (This article was written as a kind of business plan for a new language. So it is missing (because it takes for granted) the most important feature of a good programming language: very powerful abstractions.)A friend of mine once told an eminent operating systems expert that he wanted to design a really good programming language. The expert told him that it would be a waste of time, that programming languages don't become popular or unpopular based on their merits, and so no matter how good his... https://paulgraham.com/popular.html Tue, 01 May 2001 00:00:00 +0000 Five Questions about Language Design https://paulgraham.com/langdes.html (These are some notes I made for a panel discussion on programming language design at MIT on May 10, 2001.)1. Programming Languages Are for People.Programming languages are how people talk to computers. The computer would be just as happy speaking any language that was unambiguous. The reason we have high level languages is because people can't deal with machine language. The point of programming languages is to prevent our poor frail human brains from being overwhelmed by a mass of detail.A... https://paulgraham.com/langdes.html Tue, 01 May 2001 00:00:00 +0000 The Roots of Lisp https://paulgraham.com/rootsoflisp.html (I wrote this article to help myself understand exactly what McCarthy discovered. You don't need to know this stuff to program in Lisp, but it should be helpful to anyone who wants to understand the essence of Lisp — both in the sense of its origins and its semantic core. The fact that it has such a core is one of Lisp's distinguishing features, and the reason why, unlike other languages, Lisp has dialects.)In 1960, John McCarthy published a remarkable paper in which he did for programming s... https://paulgraham.com/rootsoflisp.html Tue, 01 May 2001 00:00:00 +0000 The Other Road Ahead https://paulgraham.com/road.html (This article explains why much of the next generation of software may be server-based, what that will mean for programmers, and why this new kind of software is a great opportunity for startups. It's derived from a talk at BBN Labs.) In the summer of 1995, my friend Robert Morris and I decided to start a startup. The PR campaign leading up to Netscape's IPO was running full blast then, and there was a lot of talk in the press about online commerce. At the time there might have been thirty act... https://paulgraham.com/road.html Sat, 01 Sep 2001 00:00:00 +0000 What Made Lisp Different https://paulgraham.com/diff.html (rev. May 2002) (This article came about in response to some questions on the LL1 mailing list. It is now incorporated in Revenge of the Nerds.)When McCarthy designed Lisp in the late 1950s, it was a radical departure from existing languages, the most important of which was Fortran.Lisp embodied nine new ideas: 1. Conditionals. A conditional is an if-then-else construct. We take these for granted now. They were invented by McCarthy in the course of developing Lisp. (Fortran at that time o... https://paulgraham.com/diff.html Wed, 01 May 2002 00:00:00 +0000 Taste for Makers https://paulgraham.com/taste.html "...Copernicus' aesthetic objections to [equants] provided one essential motive for his rejection of the Ptolemaic system...."- Thomas Kuhn, The Copernican Revolution"All of us had been trained by Kelly Johnson and believed fanatically in his insistence that an airplane that looked beautiful would fly the same way."- Ben Rich, Skunk Works"Beauty is the first test: there is no permanent place in this world for ugly mathematics."- G. H. Hardy, A Mathematician's Apology I was talking recently to ... https://paulgraham.com/taste.html Fri, 01 Feb 2002 00:00:00 +0000 Succinctness is Power https://paulgraham.com/power.html "The quantity of meaning compressed into a small space by algebraic signs, is another circumstance that facilitates the reasonings we are accustomed to carry on by their aid."- Charles Babbage, quoted in Iverson's Turing Award Lecture In the discussion about issues raised by Revenge of the Nerds on the LL1 mailing list, Paul Prescod wrote something that stuck in my mind. Python's goal is regularity and readability, not succinctness. On the face of it, this seems a rather damning thing to... https://paulgraham.com/power.html Wed, 01 May 2002 00:00:00 +0000 Revenge of the Nerds https://paulgraham.com/icad.html Want to start a startup? Get funded by Y Combinator. May 2002 "We were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp."- Guy Steele, co-author of the Java spec In the software business there is an ongoing struggle between the pointy-headed academics, and another equally formidable force, the pointy-haired bosses. Everyone knows who the pointy-haired boss is, right? I think most people in the technology world not only recognize this cartoon charac... https://paulgraham.com/icad.html Wed, 01 May 2002 00:00:00 +0000 A Plan for Spam https://paulgraham.com/spam.html Like to build things? Try Hacker News. August 2002(This article describes the spam-filtering techniques used in the spamproof web-based mail reader we built to exercise Arc. An improved algorithm is described in Better Bayesian Filtering.)I think it's possible to stop spam, and that content-based filters are the way to do it. The Achilles heel of the spammers is their message. They can circumvent any other barrier you set up. They have so far, at least. But they have to deliver their mess... https://paulgraham.com/spam.html Thu, 01 Aug 2002 00:00:00 +0000 Design and Research https://paulgraham.com/desres.html (This article is derived from a keynote talk at the fall 2002 meeting of NEPLS.)Visitors to this country are often surprised to find that Americans like to begin a conversation by asking "what do you do?" I've never liked this question. I've rarely had a neat answer to it. But I think I have finally solved the problem. Now, when someone asks me what I do, I look them straight in the eye and say "I'm designing a new dialect of Lisp." I recommend this answer to anyone who doesn't like being ... https://paulgraham.com/desres.html Wed, 01 Jan 2003 00:00:00 +0000 Better Bayesian Filtering https://paulgraham.com/better.html (This article was given as a talk at the 2003 Spam Conference. It describes the work I've done to improve the performance of the algorithm described in A Plan for Spam, and what I plan to do in the future.)The first discovery I'd like to present here is an algorithm for lazy evaluation of research papers. Just write whatever you want and don't cite any previous work, and indignant readers will send you references to all the papers you should have cited. I discovered this algorithm after ``A P... https://paulgraham.com/better.html Wed, 01 Jan 2003 00:00:00 +0000 Why Nerds are Unpopular https://paulgraham.com/nerds.html When we were in junior high school, my friend Rich and I made a map of the school lunch tables according to popularity. This was easy to do, because kids only ate lunch with others of about the same popularity. We graded them from A to E. A tables were full of football players and cheerleaders and so on. E tables contained the kids with mild cases of Down's Syndrome, what in the language of the time we called "retards."We sat at a D table, as low as you could get without looking physically diffe... https://paulgraham.com/nerds.html Sat, 01 Feb 2003 00:00:00 +0000 The Hundred-Year Language https://paulgraham.com/hundred.html (This essay is derived from a keynote talk at PyCon 2003.)It's hard to predict what life will be like in a hundred years. There are only a few things we can say with certainty. We know that everyone will drive flying cars, that zoning laws will be relaxed to allow buildings hundreds of stories tall, that it will be dark most of the time, and that women will all be trained in the martial arts. Here I want to zoom in on one detail of this picture. What kind of programming language will they u... https://paulgraham.com/hundred.html Tue, 01 Apr 2003 00:00:00 +0000 If Lisp is So Great https://paulgraham.com/iflisp.html If Lisp is so great, why don't more people use it? I was asked this question by a student in the audience at a talk I gave recently. Not for the first time, either.In languages, as in so many things, there's not much correlation between popularity and quality. Why does John Grisham (King of Torts sales rank, 44) outsell Jane Austen (Pride and Prejudice sales rank, 6191)? Would even Grisham claim that it's because he's a better writer?Here's the first sentence of Pride and Prejudi... https://paulgraham.com/iflisp.html Thu, 01 May 2003 00:00:00 +0000 Hackers and Painters https://paulgraham.com/hp.html (This essay is derived from a guest lecture at Harvard, which incorporated an earlier talk at Northeastern.)When I finished grad school in computer science I went to art school to study painting. A lot of people seemed surprised that someone interested in computers would also be interested in painting. They seemed to think that hacking and painting were very different kinds of work-- that hacking was cold, precise, and methodical, and that painting was the frenzied expression of some primal urg... https://paulgraham.com/hp.html Thu, 01 May 2003 00:00:00 +0000 Filters that Fight Back https://paulgraham.com/ffb.html We may be able to improve the accuracy of Bayesian spam filters by having them follow links to see what's waiting at the other end. Richard Jowsey of death2spam now does this 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?, following all the urls in a spam would have an amusing side-effect. If popular email clients did this in order to filter spam, the spammer's servers would take a serio... https://paulgraham.com/ffb.html Fri, 01 Aug 2003 00:00:00 +0000 What You Can't Say https://paulgraham.com/say.html Have you ever seen an old photo of yourself and been embarrassed at the way you looked? Did we actually dress like that? We did. And we had no idea how silly we looked. It's the nature of fashion to be invisible, in the same way the movement of the earth is invisible to all of us riding on it.What scares me is that there are moral fashions too. They're just as arbitrary, and just as invisible to most people. But they're much more dangerous. Fashion is mistaken for good design; moral fashion... https://paulgraham.com/say.html Thu, 01 Jan 2004 00:00:00 +0000 The Word "Hacker" https://paulgraham.com/gba.html To the popular press, "hacker" means someone who breaks into computers. Among programmers it means a good programmer. But the two meanings are connected. To programmers, "hacker" connotes mastery in the most literal sense: someone who can make a computer do what he wants—whether the computer wants to or not.To add to the confusion, the noun "hack" also has two senses. It can be either a compliment or an insult. It's called a hack when you do something in an ugly way. But when you do somethi... https://paulgraham.com/gba.html Thu, 01 Apr 2004 00:00:00 +0000 How to Make Wealth https://paulgraham.com/wealth.html Want to start a startup? Get funded by Y Combinator. May 2004 (This essay was originally published in Hackers & Painters.) If you wanted to get rich, how would you do it? I think your best bet would be to start or join a startup. That's been a reliable way to get rich for hundreds of years. The word "startup" dates from the 1960s, but what happens in one is very similar to the venture-backed trading voyages of the Middle Ages.Startups usually involve technology, so much so that the ph... https://paulgraham.com/wealth.html Sat, 01 May 2004 00:00:00 +0000 Mind the Gap https://paulgraham.com/gap.html When people care enough about something to do it well, those who do it best tend to be far better than everyone else. There's a huge gap between Leonardo and second-rate contemporaries like Borgognone. You see the same gap between Raymond Chandler and the average writer of detective novels. A top-ranked professional chess player could play ten thousand games against an ordinary club player without losing once.Like chess or painting or writing novels, making money is a very specialized skill. ... https://paulgraham.com/gap.html Sat, 01 May 2004 00:00:00 +0000 Great Hackers https://paulgraham.com/gh.html Want to start a startup? Get funded by Y Combinator. July 2004(This essay is derived from a talk at Oscon 2004.) A few months ago I finished a new book, and in reviews I keep noticing words like "provocative'' and "controversial.'' To say nothing of "idiotic.''I didn't mean to make the book controversial. I was trying to make it efficient. I didn't want to waste people's time telling them things they already knew. It's more efficient just to give them the diffs. But I suppose that's b... https://paulgraham.com/gh.html Thu, 01 Jul 2004 00:00:00 +0000 The Python Paradox https://paulgraham.com/pypar.html In a recent talk I said something that upset a lot of people: that you could get smarter programmers to work on a Python project than you could to work on a Java project.I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart. It's a lot of work to learn a new programming language. And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know.Wh... https://paulgraham.com/pypar.html Sun, 01 Aug 2004 00:00:00 +0000 The Age of the Essay https://paulgraham.com/essay.html Remember the essays you had to write in high school? Topic sentence, introductory paragraph, supporting paragraphs, conclusion. The conclusion being, say, that Ahab in Moby Dick was a Christ-like figure.Oy. So I'm going to try to give the other side of the story: what an essay really is, and how you write one. Or at least, how I write one.ModsThe most obvious difference between real essays and the things one has to write in school is that real essays are not exclusively about English literatur... https://paulgraham.com/essay.html Wed, 01 Sep 2004 00:00:00 +0000 What the Bubble Got Right https://paulgraham.com/bubble.html (This essay is derived from an invited talk at ICFP 2004.)I had a front row seat for the Internet Bubble, because I worked at Yahoo during 1998 and 1999. One day, when the stock was trading around $200, I sat down and calculated what I thought the price should be. The answer I got was $12. I went to the next cubicle and told my friend Trevor. "Twelve!" he said. He tried to sound indignant, but he didn't quite manage it. He knew as well as I did that our valuation was crazy.Yahoo was a speci... https://paulgraham.com/bubble.html Sat, 01 Jan 2000 00:00:00 +0000 A Version 1.0 https://paulgraham.com/laundry.html As E. B. White said, "good writing is rewriting." I didn't realize this when I was in school. In writing, as in math and science, they only show you the finished product. You don't see all the false starts. This gives students a misleading view of how things get made.Part of the reason it happens is that writers don't want people to see their mistakes. But I'm willing to let people see an early draft if it will show how much you have to rewrite to beat an essay into shape.Below is the ol... https://paulgraham.com/laundry.html Fri, 01 Oct 2004 00:00:00 +0000 Bradley's Ghost https://paulgraham.com/polls.html A lot of people are writing now about why Kerry lost. Here I want to examine a more specific question: why were the exit polls so wrong?In Ohio, which Kerry ultimately lost 49-51, exit polls gave him a 52-48 victory. And this wasn't just random error. In every swing state they overestimated the Kerry vote. In Florida, which Bush ultimately won 52-47, exit polls predicted a dead heat.(These are not early numbers. They're from about midnight eastern time, long after polls closed in Ohio and ... https://paulgraham.com/polls.html Mon, 01 Nov 2004 00:00:00 +0000 It's Charisma, Stupid https://paulgraham.com/charisma.html , corrected June 2006Occam's razor says we should prefer the simpler of two explanations. I begin by reminding readers of this principle because I'm about to propose a theory that will offend both liberals and conservatives. But Occam's razor means, in effect, that if you want to disagree with it, you have a hell of a coincidence to explain.Theory: In US presidential elections, the more charismatic candidate wins.People who write about politics, whether on the left or the right, have a consiste... https://paulgraham.com/charisma.html Thu, 01 Jun 2006 00:00:00 +0000 Made in USA https://paulgraham.com/usa.html (This is a new essay for the Japanese edition of Hackers & Painters. It tries to explain why Americans make some things well and others badly.)A few years ago an Italian friend of mine travelled by train from Boston to Providence. She had only been in America for a couple weeks and hadn't seen much of the country yet. She arrived looking astonished. "It's so ugly!"People from other rich countries can scarcely imagine the squalor of the man-made bits of America. In travel books they show y... https://paulgraham.com/usa.html Mon, 01 Nov 2004 00:00:00 +0000 What You'll Wish You'd Known https://paulgraham.com/hs.html (I wrote this talk for a high school. I never actually gave 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. What will you say to high school students? So I asked them, what do you wish someone had told you in high school? Their answers were remarkably similar. So I'm going to tell you what we all wish someone had told us.I'll start by telling you something you don't have to know in high school: what you w... https://paulgraham.com/hs.html Sat, 01 Jan 2005 00:00:00 +0000 How to Start a Startup https://paulgraham.com/start.html Want to start a startup? Get funded by Y Combinator. March 2005(This essay is derived from a talk at the Harvard Computer Society.)You need three things to create a successful startup: to start with good people, to make something customers actually want, and to spend as little money as possible. Most startups that fail do it because they fail at one of these. A startup that does all three will probably succeed.And that's kind of exciting, when you think about it, because all three are doa... https://paulgraham.com/start.html Tue, 01 Mar 2005 00:00:00 +0000 A Unified Theory of VC Suckage https://paulgraham.com/venturecapital.html A couple months ago I got an email from a recruiter asking if I was interested in being a "technologist in residence" at a new venture capital fund. I think the idea was to play Karl Rove to the VCs' George 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 Greylock, the famous Boston VCs. They were the most arrogant people I've met in my life. And I've met a lot of arrogant people. [1]I'm not alone in feeling... https://paulgraham.com/venturecapital.html Tue, 01 Mar 2005 00:00:00 +0000 Undergraduation https://paulgraham.com/college.html Want to start a startup? Get funded by Y Combinator. March 2005(Parts of this essay began as replies to students who wrote to me with questions.)Recently I've had several emails from computer science undergrads asking what to do in college. I might not be the best source of advice, because I was a philosophy major in college. But I took so many CS classes that most CS majors thought I was one. I was certainly a hacker, at least.HackingWhat should you do in college to become a good hacke... https://paulgraham.com/college.html Tue, 01 Mar 2005 00:00:00 +0000 Writing, Briefly https://paulgraham.com/writing44.html (In the process of answering an email, I accidentally wrote a tiny essay about writing. I usually spend weeks on an essay. This one took 67 minutes—23 of writing, and 44 of rewriting.)I think it's far more important to write well than most people realize. Writing doesn't just communicate ideas; it generates them. If you're bad at writing and don't like to do it, you'll miss out on most of the ideas writing would have generated.As for how to write well, here's the short version: Write a bad ... https://paulgraham.com/writing44.html Tue, 01 Mar 2005 00:00:00 +0000 Return of the Mac https://paulgraham.com/mac.html All the best hackers I know are gradually switching to Macs. My friend Robert said his whole research group at MIT recently bought themselves Powerbooks. These guys are not the graphic designers and grandmas who were buying Macs at Apple's low point in the mid 1990s. They're about as hardcore OS hackers as you can get.The reason, of course, is OS X. Powerbooks are beautifully designed and run FreeBSD. What more do you need to know?I got a Powerbook at the end of last year. When my IBM Th... https://paulgraham.com/mac.html Tue, 01 Mar 2005 00:00:00 +0000 Why Smart People Have Bad Ideas https://paulgraham.com/bronze.html Want to start a startup? Get funded by Y Combinator. April 2005This summer, as an experiment, some friends and I are giving seed funding to a bunch of new startups. It's an experiment because we're prepared to fund younger founders than most investors would. That's why we're doing it during the summer—so even college students can participate.We know from Google and Yahoo that grad students can start successful startups. And we know from experience that some undergrads are as capable as ... https://paulgraham.com/bronze.html Sun, 01 Jan 1995 00:00:00 +0000 The Submarine https://paulgraham.com/submarine.html "Suits make a corporate comeback," says the New York Times. Why does this sound familiar? Maybe because the suit was also back in February, September 2004, June 2004, March 2004, September 2003, November 2002, April 2002, and February 2002. Why do the media keep running stories saying suits are back? Because PR firms tell them to. One of the most surprising things I discovered during my brief business career was the existence of the PR industry, lurking like a huge, quiet submarine ben... https://paulgraham.com/submarine.html Fri, 01 Feb 2002 00:00:00 +0000 Hiring is Obsolete https://paulgraham.com/hiring.html Want to start a startup? Get funded by Y Combinator. May 2005(This essay is derived from a talk at the Berkeley CSUA.)The three big powers on the Internet now are Yahoo, Google, and Microsoft. Average age of their founders: 24. So it is pretty well established now that grad students can start successful companies. And if grad students can do it, why not undergrads?Like everything else in technology, the cost of starting a startup has decreased dramatically. Now it's so low that it has d... https://paulgraham.com/hiring.html Tue, 01 Feb 1994 00:00:00 +0000 What Business Can Learn from Open Source https://paulgraham.com/opensource.html (This essay is derived from a talk at Oscon 2005.)Lately companies have been paying more attention to open source. Ten years ago there seemed a real danger Microsoft would extend its monopoly to servers. It seems safe to say now that open source has prevented that. A recent survey found 52% of companies are replacing Windows servers with Linux servers. [1]More significant, I think, is which 52% they are. At this point, anyone proposing to run Windows on servers should be prepared to explain w... https://paulgraham.com/opensource.html Mon, 01 Aug 2005 00:00:00 +0000 After the Ladder https://paulgraham.com/ladder.html Thirty years ago, one was supposed to work one's way up the corporate ladder. That's less the rule now. Our generation wants to get paid up front. Instead of developing a product for some big company in the expectation of getting job security in return, we develop the product ourselves, in a startup, and sell it to the big company. At the very least we want options.Among other things, this shift has created the appearance of a rapid increase in economic inequality. But really the two cases a... https://paulgraham.com/ladder.html Mon, 01 Aug 2005 00:00:00 +0000 Inequality and Risk https://paulgraham.com/inequality.html (This essay is derived from a talk at Defcon 2005.)Suppose you wanted to get rid of economic inequality. There are two ways to do it: give money to the poor, or take it away from the rich. But they amount to the same thing, because if you want to give money to the poor, you have to get it from somewhere. You can't get it from the poor, or they just end up where they started. You have to get it from the rich.There is of course a way to make the poor richer without simply shifting money from t... https://paulgraham.com/inequality.html Mon, 01 Aug 2005 00:00:00 +0000 What I Did this Summer https://paulgraham.com/sfp.html The first Summer Founders Program has just finished. We were surprised how well it went. Overall only about 10% of startups succeed, but if I had to guess now, I'd predict three or four of the eight startups we funded will make it.Of the startups that needed further funding, I believe all have either closed a round or are likely to soon. Two have already turned down (lowball) acquisition offers.We would have been happy if just one of the eight seemed promising by the end of the summer. ... https://paulgraham.com/sfp.html Sat, 01 Oct 2005 00:00:00 +0000 Ideas for Startups https://paulgraham.com/ideas.html Want to start a startup? Get funded by Y Combinator. October 2005(This essay is derived from a talk at the 2005 Startup School.)How do you get good ideas for startups? That's probably the number one question people ask me.I'd like to reply with another question: why do people think it's hard to come up with ideas for startups?That might seem a stupid thing to ask. Why do they think it's hard? If people can't do it, then it is hard, at least for them. Right?Well, maybe not. What peopl... https://paulgraham.com/ideas.html Sat, 01 Oct 2005 00:00:00 +0000 The Venture Capital Squeeze https://paulgraham.com/vcsqueeze.html In the next few years, venture capital funds will find themselves squeezed from four directions. They're already stuck with a seller's market, because of the huge amounts they raised at the end of the Bubble and still haven't invested. This by itself is not the end of the world. In fact, it's just a more extreme version of the norm in the VC business: too much money chasing too few deals.Unfortunately, those few deals now want less and less money, because it's getting so cheap to start a star... https://paulgraham.com/vcsqueeze.html Tue, 01 Nov 2005 00:00:00 +0000 How to Fund a Startup https://paulgraham.com/startupfunding.html Want to start a startup? Get funded by Y Combinator. November 2005 Venture funding works like gears. A typical startup goes through several rounds of funding, and at each round you want to take just enough money to reach the speed where you can shift into the next gear.Few startups get it quite right. Many are underfunded. A few are overfunded, which is like trying to start driving in third gear.I think it would help founders to understand funding better—not just the mechanics of it, but... https://paulgraham.com/startupfunding.html Tue, 01 Nov 2005 00:00:00 +0000 Web 2.0 https://paulgraham.com/web20.html Want to start a startup? Get funded by Y Combinator. November 2005Does "Web 2.0" mean anything? Till recently I thought it didn't, but the truth turns out to be more complicated. Originally, yes, it was meaningless. Now it seems to have acquired a meaning. And yet those who dislike the term are probably right, because if it means 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 conference in 2004. At the time it was supposed to mean u... https://paulgraham.com/web20.html Tue, 01 Jun 2004 00:00:00 +0000 Good and Bad Procrastination https://paulgraham.com/procrastination.html The most impressive people I know are all terrible procrastinators. So could it be that procrastination isn't always bad?Most people who write about procrastination write about how to cure it. But this is, strictly speaking, impossible. There are an infinite number of things you could be doing. No matter what you work on, you're not working on everything else. So the question is not how to avoid procrastination, but how to procrastinate well.There are three variants of procrastination, depen... https://paulgraham.com/procrastination.html Thu, 01 Dec 2005 00:00:00 +0000 How to Do What You Love https://paulgraham.com/love.html Want to start a startup? Get funded by Y Combinator. January 2006To do something well you have to like it. That idea is not exactly novel. We've got it down to four words: "Do what you love." But it's not enough just to tell people that. Doing what you love is complicated.The very idea is foreign to what most of us learn as kids. When I was a kid, it seemed as if work and fun were opposites by definition. Life had two states: some of the time adults were making you do things, and that... https://paulgraham.com/love.html Sun, 01 Jan 2006 00:00:00 +0000 Why YC https://paulgraham.com/whyyc.html , rev August 2009Yesterday one of the founders we funded asked me why we started Y Combinator. Or more precisely, he asked if we'd started YC mainly for fun.Kind of, but not quite. It is enormously fun to be able to work with Rtm and Trevor again. I missed that after we sold Viaweb, and for all the years after I always had a background process running, looking for something we could do together. There is definitely an aspect of a band reunion to Y Combinator. Every couple days I slip and c... https://paulgraham.com/whyyc.html Wed, 01 Mar 2006 00:00:00 +0000 6,631,372 https://paulgraham.com/6631327.html , rev August 2009A couple days ago I found to my surprise that I'd been granted a patent. It issued in 2003, but no one told me. I wouldn't know about it now except that a few months ago, while visiting Yahoo, I happened to run into a Big Cheese I knew from working there in the late nineties. He brought up something called Revenue Loop, which Viaweb had been working on when they bought us.The idea is basically that you sort search results not in order of textual "relevance" (as search engines ... https://paulgraham.com/6631327.html Sun, 01 Feb 1998 00:00:00 +0000 Are Software Patents Evil? https://paulgraham.com/softwarepatents.html (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. This was all the more surprising because I'd only applied for three. The patents aren't mine, of course. They were assigned to Viaweb, and became Yahoo's when they bought us. But the news set me thinking about the question of software patents generally.Patents are a hard problem. I've had to advise most of the startups we've funded about them, and despite years of experi... https://paulgraham.com/softwarepatents.html Wed, 01 Mar 2006 00:00:00 +0000 See Randomness https://paulgraham.com/randomness.html , rev August 2009Plato quotes Socrates as saying "the unexamined life is not worth living." Part of what he meant was that the proper role of humans is to think, just as the proper role of anteaters is to poke their noses into anthills.A lot of ancient philosophy had the quality — and I don't mean this in an insulting way — of the kind of conversations freshmen have late at night in common rooms: What is our purpose? Well, we humans are as conspicuously different from other animals as the ant... https://paulgraham.com/randomness.html Sat, 01 Apr 2006 00:00:00 +0000 The Hardest Lessons for Startups to Learn https://paulgraham.com/startuplessons.html (This essay is derived from a talk at the 2006 Startup School.)The startups we've funded so far are pretty quick, but they seem quicker to learn some lessons than others. I think it's because some things about startups are kind of counterintuitive.We've now invested in enough companies that I've learned a trick for determining which points are the counterintuitive ones: they're the ones I have to keep repeating.So I'm going to number these points, and maybe with future startups I'll be able ... https://paulgraham.com/startuplessons.html Sat, 01 Apr 2006 00:00:00 +0000 How to Be Silicon Valley https://paulgraham.com/siliconvalley.html (This essay is derived from a keynote at Xtech.)Could you reproduce Silicon Valley elsewhere, or is there something unique about it?It wouldn't be surprising if it were hard to reproduce in other countries, because you couldn't reproduce it in most of the US either. 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 thousand people to move from Silicon Valley to Buffalo, Buffalo would become Silicon Valley. [1]That's a strik... https://paulgraham.com/siliconvalley.html Mon, 01 May 2006 00:00:00 +0000 Why Startups Condense in America https://paulgraham.com/america.html (This essay is derived from a keynote at Xtech.)Startups happen in clusters. There are a lot of them in Silicon Valley and Boston, and few in Chicago or Miami. A country that wants startups will probably also have to reproduce whatever makes these clusters form.I've claimed that the recipe is a great university near a town smart people like. If you set up those conditions within the US, startups will form as inevitably as water droplets condense on a cold piece of metal. But when I consider ... https://paulgraham.com/america.html Mon, 01 May 2006 00:00:00 +0000 The Power of the Marginal https://paulgraham.com/marginal.html Want to start a startup? Get funded by Y Combinator. June 2006(This essay is derived from talks at Usenix 2006 and Railsconf 2006.)A couple years ago my friend Trevor and I went to look at the Apple garage. As we stood there, he said that as a kid growing up in Saskatchewan he'd been amazed at the dedication Jobs and Wozniak must have had to work in a garage."Those guys must have been freezing!"That's one of California's hidden advantages: the mild climate means there's lots of marginal sp... https://paulgraham.com/marginal.html Thu, 01 Jun 2006 00:00:00 +0000 The Island Test https://paulgraham.com/island.html I've discovered a handy test for figuring out what you're addicted to. Imagine you were going to spend the weekend at a friend's house on a little island off the coast of Maine. There are no shops on the island and you won't be able to leave while you're there. Also, you've never been to this house before, so you can't assume it will have more than any house might.What, besides clothes and toiletries, do you make a point of packing? That's what you're addicted to. For example, if you find yo... https://paulgraham.com/island.html Sat, 01 Jul 2006 00:00:00 +0000 Copy What You Like https://paulgraham.com/copy.html When I was in high school I spent a lot of time imitating bad writers. What we studied in English classes was mostly fiction, so I assumed that was the highest form of writing. Mistake number one. The stories that seemed to be most admired were ones in which people suffered in complicated ways. Anything funny or gripping was ipso facto suspect, unless it was old enough to be hard to understand, like Shakespeare or Chaucer. Mistake number two. The ideal medium seemed the short story, which ... https://paulgraham.com/copy.html Sat, 01 Jul 2006 00:00:00 +0000 How to Present to Investors https://paulgraham.com/investors.html Want to start a startup? Get funded by Y Combinator. August 2006, rev. April 2007, September 2010In a few days it will be Demo Day, when the startups we funded this summer present to investors. Y Combinator funds startups twice a year, in January and June. Ten weeks later we invite all the investors we know to hear them present what they've built so far.Ten weeks is not much time. The average startup probably doesn't have much to show for itself after ten weeks. But the average startup ... https://paulgraham.com/investors.html Sun, 01 Apr 2007 00:00:00 +0000 A Student's Guide to Startups https://paulgraham.com/mit.html Want to start a startup? Get funded by Y Combinator. October 2006(This essay is derived from a talk at MIT.)Till recently graduating seniors had two choices: get a job or go to grad school. I think there will increasingly be a third option: to 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 startup could well become as popular as grad school. In the late 90s my professor friends used to complain that they couldn't get g... https://paulgraham.com/mit.html Sun, 01 Oct 2006 00:00:00 +0000 The 18 Mistakes That Kill Startups https://paulgraham.com/startupmistakes.html Want to start a startup? Get funded by Y Combinator. October 2006In the Q & A period after a recent talk, someone asked what made startups fail. After standing there gaping for a few seconds I realized this was kind of a trick question. It's equivalent to asking how to make a startup succeed — if you avoid every cause of failure, you succeed — and that's too big a question to answer on the fly.Afterwards I realized it could be helpful to look at the problem from this direction. If you ha... https://paulgraham.com/startupmistakes.html Sun, 01 Oct 2006 00:00:00 +0000 How Art Can Be Good https://paulgraham.com/goodart.html I grew up believing that taste is just a matter of personal preference. Each person has things they like, but no one's preferences are any better 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 false, and I'm going to try to explain why.One problem with saying there's no such thing as good taste is that it also means there's no such thing as good art. If there were good art, then people who liked it would have better taste... https://paulgraham.com/goodart.html Fri, 01 Dec 2006 00:00:00 +0000 Learning from Founders https://paulgraham.com/foundersatwork.html (Foreword to Jessica Livingston's Founders at Work.)Apparently sprinters reach their highest speed right out of the blocks, and spend the rest of the race slowing down. The winners slow down the least. It's that way with most startups too. The earliest phase is usually the most productive. That's when they have the really big ideas. Imagine what Apple was like when 100% of its employees were either Steve Jobs or Steve Wozniak.The striking thing about this phase is that it's completely diff... https://paulgraham.com/foundersatwork.html Mon, 01 Jan 2007 00:00:00 +0000 Is It Worth Being Wise? https://paulgraham.com/wisdom.html A few days ago I finally figured out something I've wondered about for 25 years: the relationship between wisdom and intelligence. Anyone can see they're not the same by the number of people who are smart, but not very wise. And yet intelligence and wisdom do seem related. How?What is wisdom? I'd say it's knowing what to do in a lot of situations. I'm not trying to make a deep point here about the true nature of wisdom, just to figure out how we use the word. A wise person is someone who us... https://paulgraham.com/wisdom.html Thu, 01 Feb 2007 00:00:00 +0000 Why to Not Not Start a Startup https://paulgraham.com/notnot.html Want to start a startup? Get funded by Y Combinator. March 2007(This essay is derived from talks at the 2007 Startup School and the Berkeley CSUA.)We've now been doing Y Combinator long enough to have some data about success rates. Our first batch, in the summer of 2005, had eight startups in it. Of those eight, it now looks as if at least four succeeded. Three have been acquired: Reddit was a merger of two, Reddit and Infogami, and a third was acquired that we can't talk about yet. A... https://paulgraham.com/notnot.html Thu, 01 Mar 2007 00:00:00 +0000 Microsoft is Dead https://paulgraham.com/microsoft.html A few days ago I suddenly realized Microsoft was dead. I was talking to a young startup founder about how Google was different from Yahoo. I said that Yahoo had been warped from the start by their fear of Microsoft. That was why they'd positioned themselves as a "media company" instead of a technology company. Then I looked at his face and realized he didn't understand. It was as if I'd told him how much girls liked Barry Manilow in the mid 80s. Barry who?Microsoft? He didn't say anything... https://paulgraham.com/microsoft.html Sun, 01 Apr 2007 00:00:00 +0000 Two Kinds of Judgement https://paulgraham.com/judgement.html There are two different ways people judge you. Sometimes judging you correctly is the end goal. But there's a second much more common type of judgement where it isn't. We tend to regard all judgements of us as the first type. We'd probably be happier if we realized which are and which aren't.The first type of judgement, the type where judging you is the end goal, include court cases, grades in classes, and most competitions. Such judgements can of course be mistaken, but because the goal is ... https://paulgraham.com/judgement.html Sun, 01 Apr 2007 00:00:00 +0000 The Hacker's Guide to Investors https://paulgraham.com/guidetoinvestors.html (This essay is derived from a keynote talk at the 2007 ASES Summit at Stanford.)The world of investors is a foreign one to most hackers—partly because investors are so unlike hackers, and partly because they tend to operate in secret. I've been dealing with this world for many years, both as a founder and an investor, and I still don't fully understand it.In this essay I'm going to list some of the more surprising things I've learned about investors. Some I only learned in the past year.Teachi... https://paulgraham.com/guidetoinvestors.html Sun, 01 Apr 2007 00:00:00 +0000 An Alternative Theory of Unions https://paulgraham.com/unions.html People who worry about the increasing gap between rich and poor generally look back on the mid twentieth century as a golden age. In those days we had a large number of high-paying union manufacturing jobs that boosted the median income. I wouldn't quite call the high-paying union job a myth, but I think people who dwell on it are reading too much into it.Oddly enough, it was working with startups that made me realize where the high-paying union job came from. In a rapidly growing market, you ... https://paulgraham.com/unions.html Tue, 01 May 2007 00:00:00 +0000 The Equity Equation https://paulgraham.com/equity.html An investor wants to give you money for a certain percentage of your startup. Should you take it? You're about to hire your first employee. How much stock should you give him?These are some of the hardest questions founders face. And yet both have the same answer:1/(1 - n)Whenever you're trading stock in your company for anything, whether it's money or an employee or a deal with another company, the test for whether to do it is the same. You should give up n% of your company if what you tra... https://paulgraham.com/equity.html Sun, 01 Jul 2007 00:00:00 +0000 Stuff https://paulgraham.com/stuff.html I have too much stuff. Most people in America do. In fact, the poorer people are, the more stuff they seem to have. Hardly anyone is 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. You can still see evidence of that if you look for it. For example, in my house in Cambridge, which was built in 1876, the bedrooms don't have closets. In those days people's stuff fit in a chest of drawers. Even as recently as a few de... https://paulgraham.com/stuff.html Sun, 01 Jul 2007 00:00:00 +0000 Holding a Program in One's Head https://paulgraham.com/head.html A good programmer working intensively on his own code can hold it in his mind the way a mathematician holds a problem he's working on. Mathematicians don't answer questions by working them out on paper the way schoolchildren are taught to. They do more in their heads: they try to understand a problem space well enough that they can walk around it the way you can walk around the memory of the house you grew up in. At its best programming is the same. You hold the whole program in your head, a... https://paulgraham.com/head.html Wed, 01 Aug 2007 00:00:00 +0000 How Not to Die https://paulgraham.com/die.html Want to start a startup? Get funded by Y Combinator. August 2007(This is a talk I gave at the last Y Combinator dinner of the summer. Usually we don't have a speaker at the last dinner; it's more of a party. But it seemed worth spoiling the atmosphere if I could save some of the startups from preventable deaths. So at the last minute I cooked up this rather grim talk. I didn't mean this as an essay; I wrote it down because I only had two hours before dinner and think fastest while writ... https://paulgraham.com/die.html Wed, 01 Aug 2007 00:00:00 +0000 News from the Front https://paulgraham.com/colleges.html A few weeks ago I had a thought so heretical that it really surprised me. 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 college was more or less the meaning of life when I was growing up. What was I? A student. To do that well meant to get good grades. Why did one have to get good grades? To get into a good college. And why did one want to do that? There seemed to be several reasons: you'd learn more, get better jobs, m... https://paulgraham.com/colleges.html Sat, 01 Sep 2007 00:00:00 +0000 How to Do Philosophy https://paulgraham.com/philosophy.html In high school I decided I was going to study philosophy in college. I had several motives, some more honorable than others. One of the less honorable was to shock people. College was regarded as job training where I grew up, so studying philosophy seemed an impressively impractical thing to do. Sort of like slashing holes in your clothes or putting a safety pin through your ear, which were other forms of impressive impracticality then just coming into fashion.But I had some more honest motiv... https://paulgraham.com/philosophy.html Sat, 01 Sep 2007 00:00:00 +0000 The Future of Web Startups https://paulgraham.com/webstartups.html Want to start a startup? Get funded by Y Combinator. October 2007(This essay is derived from a keynote at FOWA in October 2007.)There's something interesting happening right now. Startups are undergoing the same transformation that technology does when it becomes cheaper.It's a pattern we see over and over in technology. Initially there's some device that's very expensive and made in small quantities. Then someone discovers how to make them cheaply; many more get built; and as a result ... https://paulgraham.com/webstartups.html Mon, 01 Oct 2007 00:00:00 +0000 Why to Move to a Startup Hub https://paulgraham.com/startuphubs.html After the last talk I gave, one of the organizers got up on the stage to deliver an impromptu rebuttal. That never happened before. I only heard the first few sentences, but that was enough to tell what I said that upset him: that startups would do better if they moved to Silicon Valley.This conference was in London, and most of the audience seemed to be from the UK. So saying startups should move to Silicon Valley seemed like a nationalistic remark: an obnoxious American telling them that i... https://paulgraham.com/startuphubs.html Mon, 01 Oct 2007 00:00:00 +0000 Six Principles for Making New Things https://paulgraham.com/newthings.html The fiery reaction to the release of Arc had an unexpected consequence: it made me realize I had a design philosophy. The main complaint of the more articulate critics was that Arc seemed so flimsy. After years of working on it, all I had to show for myself were a few thousand lines of macros? Why hadn't I worked on more substantial problems?As I was mulling over these remarks it struck me how familiar they seemed. This was exactly the kind of thing people said at first about Viaweb, and Y Co... https://paulgraham.com/newthings.html Fri, 01 Feb 2008 00:00:00 +0000 Trolls https://paulgraham.com/trolls.html A user on Hacker News recently posted a comment that set me thinking: Something about hacker culture that never really set well with me was this — the nastiness. ... I just don't understand why people troll like they do. I've thought a lot over the last couple years about the problem of trolls. It's an old one, as old as forums, but we're still just learning what the causes are and how to address them.There are two senses of the word "troll." In the original sense it meant someone, usu... https://paulgraham.com/trolls.html Fri, 01 Feb 2008 00:00:00 +0000 A New Venture Animal https://paulgraham.com/ycombinator.html , rev May 2013(This essay grew out of something I wrote for myself to figure out what we do. Even though Y Combinator is now 3 years old, we're still trying to understand its implications.) I was annoyed recently to read a description of Y Combinator that said "Y Combinator does seed funding for startups." What was especially annoying about it was that I wrote it. This doesn't really convey what we do. And the reason it's inaccurate is that, paradoxically, funding very early stage startups i... https://paulgraham.com/ycombinator.html Sat, 01 Mar 2008 00:00:00 +0000 You Weren't Meant to Have a Boss https://paulgraham.com/boss.html Want to start a startup? Get funded by Y Combinator. March 2008, rev. June 2008Technology tends to separate normal from natural. Our bodies weren't designed to eat the foods that people in rich countries eat, or to get so little exercise. There may be a similar problem with the way we work: a normal job may be as bad for us intellectually as white flour or sugar is for us physically.I began to suspect this after spending several years working with startup founders. I've now worked wit... https://paulgraham.com/boss.html Sat, 01 Mar 2008 00:00:00 +0000 How to Disagree https://paulgraham.com/disagree.html The web is turning writing into a conversation. Twenty years ago, writers wrote and readers read. The web lets readers respond, and increasingly they do—in comment threads, on forums, and in their own blog posts.Many who respond to something disagree with it. That's to be expected. Agreeing tends to motivate people less than disagreeing. And when you agree there's less to say. You could expand on something the author said, but he has probably already explored the most interesting implicatio... https://paulgraham.com/disagree.html Sat, 01 Mar 2008 00:00:00 +0000 Some Heroes https://paulgraham.com/heroes.html There are some topics I save up because they'll be so much fun to write 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. Who could make such a list, even if they wanted to?Einstein isn't on the list, for example, even though he probably deserves to be on any shortlist of admirable people. I once asked a physicist friend if Einstein was really as smart as his fame implies, and she said that yes, he was. So why isn't he on the list?... https://paulgraham.com/heroes.html Tue, 01 Apr 2008 00:00:00 +0000 Why There Aren't More Googles https://paulgraham.com/googles.html Want to start a startup? Get funded by Y Combinator. April 2008Umair Haque wrote recently that the reason there aren't more Googles is that most startups get bought before they can change the world. Google, despite serious interest from Microsoft and Yahoo—what must have seemed like lucrative interest at the time—didn't sell out. Google might simply have been nothing but Yahoo's or MSN's search box.Why isn't it? Because Google had a deeply felt sense of purpose: a conviction to ... https://paulgraham.com/googles.html Tue, 01 Apr 2008 00:00:00 +0000 Be Good https://paulgraham.com/good.html (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 phrase that became our motto: Make something people want. We've learned a lot since then, but if I were choosing now that's still the one I'd pick.Another thing we tell founders is not to worry too much about the business model, at least at first. Not because making money is unimportant, but because it's so much easier than building something great.A couple weeks ago I... https://paulgraham.com/good.html Tue, 01 Apr 2008 00:00:00 +0000 Lies We Tell Kids https://paulgraham.com/lies.html Adults lie constantly to kids. I'm not saying we should stop, but I 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, and some of the lies we were told still affect us. So by studying the ways adults lie to kids, we may be able to clear our heads of lies we were told.I'm using the word "lie" in a very general sense: not just overt falsehoods, but also all the more subtle ways we mislead kids. Though "lie" has negative c... https://paulgraham.com/lies.html Thu, 01 May 2008 00:00:00 +0000 Disconnecting Distraction https://paulgraham.com/distraction.html Note: The strategy described at the end of this essay didn't work. It would work for a while, and then I'd gradually find myself using the Internet on my work computer. I'm trying other strategies now, but I think this time I'll wait till I'm sure they work before writing about them.May 2008Procrastination feeds on distractions. Most people find it uncomfortable just to sit and do nothing; you avoid work by doing something else.So one way to beat procrastination is to starve it of distractions... https://paulgraham.com/distraction.html Thu, 01 May 2008 00:00:00 +0000 Cities and Ambition https://paulgraham.com/cities.html Great cities attract ambitious people. You can sense it when you walk around one. In a hundred subtle ways, the city sends you a message: you could do more; you should try harder.The surprising thing is how different these messages can be. New York tells you, above all: you should make more money. There are other messages too, of course. You should be hipper. You should be better looking. But the clearest message is that you should be richer.What I like about Boston (or rather Cambridge) ... https://paulgraham.com/cities.html Thu, 01 May 2008 00:00:00 +0000 The Pooled-Risk Company Management Company https://paulgraham.com/prcmc.html At this year's startup school, David Heinemeier Hansson gave a talk in which he suggested that startup founders should do things the old fashioned way. Instead of hoping to get rich by building a valuable company and then selling stock in a "liquidity event," founders should start companies that make money and live off the revenues.Sounds like a good plan. Let's think about the optimal way to do this.One disadvantage of living off the revenues of your company is that you have to keep running ... https://paulgraham.com/prcmc.html Tue, 01 Jul 2008 00:00:00 +0000 A Fundraising Survival Guide https://paulgraham.com/fundraising.html Want to start a startup? Get funded by Y Combinator. August 2008Raising money is the second hardest part of starting a startup. The hardest part is making something people want: most startups that die, die because they didn't do that. But the second biggest cause of death is probably the difficulty of raising money. Fundraising is brutal.One reason it's so brutal is simply the brutality of markets. People who've spent most of their lives in schools or big companies may not have been expos... https://paulgraham.com/fundraising.html Fri, 01 Aug 2008 00:00:00 +0000 Why to Start a Startup in a Bad Economy https://paulgraham.com/badeconomy.html Want to start a startup? Get funded by Y Combinator. October 2008The economic situation is apparently so grim that some experts fear we 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 to start a startup. I'm not claiming it's a particularly good time either. The truth is more boring: the state of the economy doesn't matter much either way.If we've learned one thing from funding so m... https://paulgraham.com/badeconomy.html Wed, 01 Oct 2008 00:00:00 +0000 The Other Half of "Artists Ship" https://paulgraham.com/artistsship.html One of the differences between big companies and startups is that big companies tend to have developed procedures to protect themselves against mistakes. A startup walks like a toddler, bashing into things and falling over all the time. A big company is more deliberate.The gradual accumulation of checks in an organization is a kind of learning, based on disasters that have happened to it or others like it. After giving a contract to a supplier who goes bankrupt and fails to deliver, for examp... https://paulgraham.com/artistsship.html Sat, 01 Nov 2008 00:00:00 +0000 The High-Res Society https://paulgraham.com/highres.html For nearly all of history the success of a society was proportionate to its ability to assemble large and disciplined organizations. Those who bet on economies of scale generally won, which meant the largest organizations were the most successful ones.Things have already changed so much that this is hard for us to believe, but till just a few decades ago the largest organizations tended to be the most progressive. An ambitious kid graduating from college in 1960 wanted to work in the huge, glea... https://paulgraham.com/highres.html Mon, 01 Dec 2008 00:00:00 +0000 Could VC be a Casualty of the Recession? https://paulgraham.com/divergence.html (I originally wrote this at the request of a company producing a report about entrepreneurship. Unfortunately after reading it they decided it was too controversial to include.) VC funding will probably dry up somewhat during the present recession, like it usually does in bad times. But this time the result may be different. This time the number of new startups may not decrease. And that could be dangerous for VCs.When VC funding dried up after the Internet Bubble, startups dried up too. T... https://paulgraham.com/divergence.html Mon, 01 Dec 2008 00:00:00 +0000 After Credentials https://paulgraham.com/credentials.html A few months ago I read a New York Times article on South Korean cram schools that said Admission to the right university can make or break an ambitious young South Korean. A parent added: "In our country, college entrance exams determine 70 to 80 percent of a person's future." It was striking how old fashioned this sounded. And yet when I was in high school it wouldn't have seemed too far off as a description of the US. Which means things must have been changing here.The course of... https://paulgraham.com/credentials.html Mon, 01 Dec 2008 00:00:00 +0000 Keep Your Identity Small https://paulgraham.com/identity.html I finally realized today why politics and religion yield such uniquely useless discussions.As a rule, any mention of religion on an online forum degenerates into a religious argument. Why? Why does this happen with religion and not with Javascript or baking or other topics people talk about on forums?What's different about religion is that people don't feel they need to have any particular expertise to have opinions about it. All they need is strongly held beliefs, and anyone can have those. ... https://paulgraham.com/identity.html Sun, 01 Feb 2009 00:00:00 +0000 Startups in 13 Sentences https://paulgraham.com/13sentences.html Want to start a startup? Get funded by Y Combinator. Watch how this essay was written. February 2009One of the things I always tell startups is a principle I learned from Paul Buchheit: it's better to make a few people really happy than to make a lot of people semi-happy. I was saying recently to a reporter that if I could only tell startups 10 things, this would be one of them. Then I thought: what would the other 9 be?When I made the list there turned out to be 13: 1. Pick good co... https://paulgraham.com/13sentences.html Sun, 01 Feb 2009 00:00:00 +0000 What I've Learned from Hacker News https://paulgraham.com/hackernews.html Hacker News was two years old last week. Initially it was supposed to be a side project—an application to sharpen Arc on, and a place for current and future Y Combinator founders to exchange news. It's grown bigger and taken up more time than I expected, but I don't regret that because I've learned so much from working on it.GrowthWhen we launched in February 2007, weekday traffic was around 1600 daily uniques. It's since grown to around 22,000. This growth rate is a bit higher than I'd like... https://paulgraham.com/hackernews.html Sun, 01 Feb 2009 00:00:00 +0000 Can You Buy a Silicon Valley? Maybe. https://paulgraham.com/maybe.html A lot of cities look at Silicon Valley and ask "How could we make something like that happen here?" The organic way to do it is to establish a first-rate university in a place where rich people want to live. That's how Silicon Valley happened. But could you shortcut the process by funding startups?Possibly. Let's consider what it would take.The first thing to understand is that encouraging startups is a different problem from encouraging startups in a particular city. The latter is much more ... https://paulgraham.com/maybe.html Sun, 01 Feb 2009 00:00:00 +0000 Why TV Lost https://paulgraham.com/convergence.html About twenty years ago people noticed computers and TV were on a collision course and started to speculate about what they'd produce when they converged. We now know the answer: computers. It's clear now that even by using the word "convergence" we were giving TV too much credit. This won't be convergence so much as replacement. People may still watch things they call "TV shows," but they'll watch them mostly on computers.What decided the contest for computers? Four forces, three of which on... https://paulgraham.com/convergence.html Sun, 01 Mar 2009 00:00:00 +0000 How to Be an Angel Investor https://paulgraham.com/angelinvesting.html (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 investing. Seven years later I still hadn't started. I put it off because it seemed mysterious and complicated. It turns out to be easier than I expected, and also more interesting.The part I thought was hard, the mechanics of investing, really isn't. You give a startup money and they give you stock. You'll probably get either preferred stock, which means stock with extra r... https://paulgraham.com/angelinvesting.html Sun, 01 Mar 2009 00:00:00 +0000 Relentlessly Resourceful https://paulgraham.com/relres.html Want to start a startup? Get funded by Y Combinator. March 2009A couple days ago I finally got being a good startup founder down to two words: relentlessly resourceful.Till then the best I'd managed was to get the opposite quality down to one: hapless. Most dictionaries say hapless means unlucky. But the dictionaries are not doing a very good job. A team that outplays its opponents but loses because of a bad decision by the referee could be called unlucky, but not hapless. Hapless impl... https://paulgraham.com/relres.html Sun, 01 Mar 2009 00:00:00 +0000 Five Founders https://paulgraham.com/5founders.html Inc recently asked me who I thought were the 5 most interesting startup founders of the last 30 years. How do you decide who's the most interesting? The best test seemed to be influence: who are the 5 who've influenced me most? Who do I use as examples when I'm talking 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 for most people you could ask. A lot of startup culture is Apple culture. He was the origina... https://paulgraham.com/5founders.html Wed, 01 Apr 2009 00:00:00 +0000 The Founder Visa https://paulgraham.com/foundervisa.html 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 ... https://paulgraham.com/foundervisa.html Wed, 01 Apr 2009 00:00:00 +0000 Why Twitter is a Big Deal https://paulgraham.com/twitter.html Om Malik is the most recent of many people to ask why Twitter is such a big deal.The reason is that it's a new messaging protocol, where you don't specify the recipients. New protocols are rare. Or more precisely, new protocols that take off are. There are only a handful of commonly used ones: TCP/IP (the Internet), SMTP (email), HTTP (the web), and so on. So any new protocol is a big deal. But Twitter is a protocol owned by a private company. That's even rarer.Curiously, the fact that the... https://paulgraham.com/twitter.html Wed, 01 Apr 2009 00:00:00 +0000 A Local Revolution? https://paulgraham.com/revolution.html 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 productive 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... https://paulgraham.com/revolution.html Wed, 01 Apr 2009 00:00:00 +0000 Maker's Schedule, Manager's Schedule https://paulgraham.com/makersschedule.html "...the mere consciousness of an engagement will sometimes worry a whole day."– Charles Dickens July 2009One reason programmers dislike meetings so much is that they're on a different type of schedule from other people. Meetings cost them more.There are two types of schedule, which I'll call the manager's schedule and the maker's schedule. The manager's schedule is for bosses. It's embodied in the traditional appointment book, with each day cut into one hour intervals. You can block off ... https://paulgraham.com/makersschedule.html Wed, 01 Jul 2009 00:00:00 +0000 Ramen Profitable https://paulgraham.com/ramenprofitable.html Want to start a startup? Get funded by Y Combinator. July 2009Now that the term "ramen profitable" has become widespread, I ought to explain precisely what the idea entails.Ramen profitable means a startup makes just enough to pay the founders' living expenses. This is a different form of profitability than startups have traditionally aimed for. Traditional profitability means a big bet is finally paying off, whereas the main importance of ramen profitability is that it buys you time. [1]... https://paulgraham.com/ramenprofitable.html Wed, 01 Jul 2009 00:00:00 +0000 The Trouble with the Segway https://paulgraham.com/segway.html The Segway hasn't delivered on its initial promise, to put it mildly. There are several reasons why, but one is that people don't want to be seen riding them. Someone riding a Segway looks like a dork.My friend Trevor Blackwell built his own Segway, which we called the Segwell. He also built a one-wheeled version, the Eunicycle, which looks exactly like a regular unicycle till you realize the rider isn't pedaling. He has ridden them both to downtown Mountain View to get coffee. When he ride... https://paulgraham.com/segway.html Wed, 01 Jul 2009 00:00:00 +0000 What Kate Saw in Silicon Valley https://paulgraham.com/kate.html Kate Courteau is the architect who designed Y Combinator's office. Recently we managed to recruit her to help us run YC when she's not busy with architectural projects. Though she'd heard a lot about YC 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 to me, so I was curious to hear what had surprised her most about it. This was her list:1. How many startups fail.Kate knew in principle that startups were very... https://paulgraham.com/kate.html Sat, 01 Aug 2009 00:00:00 +0000 The Anatomy of Determination https://paulgraham.com/determination.html Want to start a startup? Get funded by Y Combinator. September 2009Like all investors, we spend a lot of time trying to learn how to predict which startups will succeed. We probably spend more time thinking about it than most, because we invest the earliest. Prediction is usually all we have to rely on.We learned quickly that the most important predictor of success is determination. At first we thought it might be intelligence. Everyone likes to believe that's what makes startups succeed.... https://paulgraham.com/determination.html Tue, 01 Sep 2009 00:00:00 +0000 The List of N Things https://paulgraham.com/nthings.html I bet you the current issue of Cosmopolitan has an article whose title begins with a number. "7 Things He Won't Tell You about Sex," or something like that. Some popular magazines feature articles of this type on the cover of every issue. That can't be happening by accident. Editors must know they attract readers.Why do readers like the list of n things so much? Mainly because it's easier to read than a regular article. [1] Structurally, the list of n things is a degenerate case of essay.... https://paulgraham.com/nthings.html Tue, 01 Sep 2009 00:00:00 +0000 Post-Medium Publishing https://paulgraham.com/publishing.html Publishers of all types, from news to music, are unhappy that consumers won't pay for content anymore. At least, that's how they see it.In fact consumers never really were paying for content, and publishers weren't really selling it either. If the content was what they were selling, why has the price of books or music or movies always depended mostly on the format? Why didn't better content cost more? [1]A copy of Time costs $5 for 58 pages, or 8.6 cents a page. The Economist costs $7 for 8... https://paulgraham.com/publishing.html Tue, 01 Sep 2009 00:00:00 +0000 Persuade xor Discover https://paulgraham.com/discover.html When meeting people you don't know very well, the convention is to seem extra friendly. You smile and say "pleased to meet you," whether you are or not. There's nothing dishonest about this. Everyone knows that these little social lies aren't meant to be taken literally, just as everyone knows that "Can you pass the salt?" is only grammatically a question.I'm perfectly willing to smile and say "pleased to meet you" when meeting new people. But there is another set of customs for being ingra... https://paulgraham.com/discover.html Tue, 01 Sep 2009 00:00:00 +0000 What Startups Are Really Like https://paulgraham.com/really.html Want to start a startup? Get funded by Y Combinator. October 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 to ask the founders of the startups we'd funded. What hadn't I written about yet?I'm in the unusual position of being able to test the essays I write about startups. I hope the ones on other topics are right, but I have no way to test them. The ones on startups get tested by about 70 people every ... https://paulgraham.com/really.html Thu, 01 Oct 2009 00:00:00 +0000 Apple's Mistake https://paulgraham.com/apple.html Want to start a startup? Get funded by Y Combinator. November 2009I don't think Apple realizes how badly the App Store approval process is broken. Or rather, I don't think they realize how much it matters that it's broken.The way Apple runs the App Store has harmed their reputation with programmers more than anything else they've ever done. Their reputation with programmers used to be great. It used to be the most common complaint you heard about Apple was that their fans admired them too... https://paulgraham.com/apple.html Sun, 01 Nov 2009 00:00:00 +0000 Organic Startup Ideas https://paulgraham.com/organic.html Want to start a startup? Get funded by Y Combinator. April 2010The best way to come up with startup ideas is to ask yourself the question: what do you wish someone would make for you?There are two types of startup ideas: those that grow organically out of your own life, and those that you decide, from afar, are going to be necessary to some class of users other than you. Apple was the first type. Apple happened because Steve Wozniak wanted a computer. Unlike most people who wanted comput... https://paulgraham.com/organic.html Thu, 01 Apr 2010 00:00:00 +0000 How to Lose Time and Money https://paulgraham.com/selfindulgence.html When we sold our startup in 1998 I suddenly got a lot of money. I now had to think about something I hadn't had to think about before: how not to lose it. I knew it was possible to go from rich to poor, just as it was possible to go from poor to rich. But while I'd spent a lot of the past several years studying the paths from poor to rich, I knew practically nothing about the paths from rich to poor. Now, in order to avoid them, I had to learn where they were.So I started to pay attention ... https://paulgraham.com/selfindulgence.html Thu, 01 Jul 2010 00:00:00 +0000 The Top Idea in Your Mind https://paulgraham.com/top.html Want to start a startup? Get funded by Y Combinator. July 2010I realized recently that what one thinks about in the shower in the morning is more important than I'd thought. I knew it was a good time to have ideas. Now I'd go further: now I'd say it's hard to do a really good job on anything you don't think about in the shower.Everyone who's worked on difficult problems is probably familiar with the phenomenon of working hard to figure something out, failing, and then suddenly seeing the ... https://paulgraham.com/top.html Thu, 01 Jul 2010 00:00:00 +0000 The Acceleration of Addictiveness https://paulgraham.com/addiction.html What hard liquor, cigarettes, heroin, and crack have in common is that they're all more concentrated forms of less addictive predecessors. Most if not all the things we describe as addictive are. And the scary thing is, the process that created them is accelerating.We wouldn't want to stop it. It's the same process that cures diseases: technological progress. Technological progress means making things do more of what we want. When the thing we want is something we want to want, we consider t... https://paulgraham.com/addiction.html Thu, 01 Jul 2010 00:00:00 +0000 The Future of Startup Funding https://paulgraham.com/future.html Want to start a startup? Get funded by Y Combinator. August 2010Two years ago I wrote about what I called "a huge, unexploited opportunity in startup funding:" the growing disconnect between VCs, whose current business model requires them to invest large amounts, and a large class of startups that need less than they used to. Increasingly, startups want a couple hundred thousand dollars, not a couple million. [1]The opportunity is a lot less unexploited now. Investors have poured into th... https://paulgraham.com/future.html Sun, 01 Aug 2010 00:00:00 +0000 What Happened to Yahoo https://paulgraham.com/yahoo.html Want to start a startup? Get funded by Y Combinator. August 2010When I went to work for Yahoo after they bought our startup in 1998, it felt like the center of the world. It was supposed to be the next big thing. It was supposed to be what Google turned out to be.What went wrong? The problems that hosed Yahoo go back a long time, practically to the beginning of the company. They were already very visible when I got there in 1998. Yahoo had two problems Google didn't: easy money, and am... https://paulgraham.com/yahoo.html Sun, 01 Aug 2010 00:00:00 +0000 High Resolution Fundraising https://paulgraham.com/hiresfund.html Want to start a startup? Get funded by Y Combinator. September 2010The reason startups have been using more convertible notes in angel rounds is that they make deals close faster. By making it easier for startups to give different prices to different investors, they help them break the sort of deadlock that happens when investors all wait to see who else is going to invest.By far the biggest influence on investors' opinions of a startup is the opinion of other investors. There are very, ... https://paulgraham.com/hiresfund.html Wed, 01 Sep 2010 00:00:00 +0000 Where to See Silicon Valley https://paulgraham.com/seesv.html Want to start a startup? Get funded by Y Combinator. October 2010Silicon Valley proper is mostly suburban sprawl. At first glance it doesn't seem there's anything to see. It's not the sort of place that has conspicuous monuments. But if you look, there are subtle signs you're in a place that's different from other places.1. Stanford UniversityStanford is a strange place. Structurally it is to an ordinary university what suburbia is to a city. It's enormously spread out, and feels surpr... https://paulgraham.com/seesv.html Fri, 01 Oct 2010 00:00:00 +0000 The New Funding Landscape https://paulgraham.com/superangels.html Want to start a startup? Get funded by Y Combinator. October 2010After barely changing at all for decades, the startup funding business is now in what could, at least by comparison, be called turmoil. At Y Combinator we've seen dramatic changes in the funding environment for startups. Fortunately one of them is much higher valuations.The trends we've been seeing are probably not YC-specific. I wish I could say they were, but the main cause is probably just that we see trends first—partly... https://paulgraham.com/superangels.html Fri, 01 Oct 2010 00:00:00 +0000 What We Look for in Founders https://paulgraham.com/founders.html Want to start a startup? Get funded by Y Combinator. October 2010 (I wrote this for Forbes, who asked me to write something about the qualities we look for in founders. In print they had to cut the last item because they didn't have room.)1. DeterminationThis has turned out to be the most important quality in startup founders. We thought when we started Y Combinator that the most important quality would be intelligence. That's the myth in the Valley. And certainly you don't want founder... https://paulgraham.com/founders.html Fri, 01 Oct 2010 00:00:00 +0000 Tablets https://paulgraham.com/tablets.html I was thinking recently how inconvenient it was not to have a general term for iPhones, iPads, and the corresponding things running Android. The closest to a general term seems to be "mobile devices," but that (a) applies to any mobile phone, and (b) doesn't really capture what's distinctive about the iPad.After a few seconds it struck me that what we'll end up calling these things is tablets. The only reason we even consider calling them "mobile devices" is that the iPhone preceded the iPad. ... https://paulgraham.com/tablets.html Wed, 01 Dec 2010 00:00:00 +0000 Founder Control https://paulgraham.com/control.html Want to start a startup? Get funded by Y Combinator. December 2010Someone we funded is talking to VCs now, and asked me how common it was for a startup's founders to retain control of the board after a series A round. He said VCs told him this almost never happened.Ten years ago that was true. In the past, founders rarely kept control of the board through a series A. The traditional series A board consisted of two founders, two VCs, and one independent member. More recently the recipe is... https://paulgraham.com/control.html Wed, 01 Dec 2010 00:00:00 +0000 Subject: Airbnb https://paulgraham.com/airbnb.html Yesterday Fred Wilson published a remarkable post about missing Airbnb. VCs miss good startups all the time, but it's extraordinarily rare for one to talk about it publicly till long afterward. So that post is further evidence what a rare bird Fred is. He's probably the nicest VC I know.Reading Fred's post made me go back and look at the emails I exchanged with him at the time, trying to convince him to invest in Airbnb. It was quite interesting to read. You can see Fred's mind at work as ... https://paulgraham.com/airbnb.html Tue, 01 Mar 2011 00:00:00 +0000 The Patent Pledge https://paulgraham.com/patentpledge.html I realized recently that we may be able to solve part of the patent problem without waiting for the government.I've never been 100% sure whether patents help or hinder technological progress. When I was a kid I thought they helped. I thought they protected inventors from having their ideas stolen by big companies. Maybe that was truer in the past, when more things were physical. But regardless of whether patents are in general a good thing, there do seem to be bad ways of using them. And sinc... https://paulgraham.com/patentpledge.html Mon, 01 Aug 2011 00:00:00 +0000 Why Startup Hubs Work https://paulgraham.com/hubs.html Want to start a startup? Get funded by Y Combinator. October 2011If you look at a list of US cities sorted by population, the number of successful startups per capita varies by orders of magnitude. Somehow it's as if most places were sprayed with startupicide.I wondered about this for years. I could see the average town was like a roach motel for startup ambitions: smart, ambitious people went in, but no startups came out. But I was never able to figure out exactly what happened inside th... https://paulgraham.com/hubs.html Sat, 01 Oct 2011 00:00:00 +0000 Snapshot: Viaweb, June 1998 https://paulgraham.com/vw.html A few hours before the Yahoo acquisition was announced in June 1998 I took a snapshot of Viaweb's site. I thought it might be interesting to look at one day.The first thing one notices is is how tiny the pages are. Screens were a lot smaller in 1998. If I remember correctly, our frontpage used 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 and they weren't antialiased. If you wanted to make pages that looked good, ... https://paulgraham.com/vw.html Sun, 01 Jan 2012 00:00:00 +0000 Schlep Blindness https://paulgraham.com/schlep.html Want to start a startup? Get funded by Y Combinator. January 2012There are great startup ideas lying around unexploited right under our noses. One reason we don't see them is a phenomenon I call schlep blindness. Schlep was originally a Yiddish word but has passed into general use in the US. It means a tedious, unpleasant task.No one likes schleps, but hackers especially dislike them. Most hackers who start startups wish they could do it by just writing some clever software, putting it... https://paulgraham.com/schlep.html Sun, 01 Jan 2012 00:00:00 +0000 A Word to the Resourceful https://paulgraham.com/word.html Want to start a startup? Get funded by Y Combinator. January 2012A year ago I noticed a pattern in the least successful startups we'd funded: they all seemed hard to talk to. It felt as if there was some kind of wall between us. I could never quite tell if they understood what I was saying.This caught my attention because earlier we'd noticed a pattern among the most successful startups, and it seemed to hinge on a different quality. We found the startups that did best were the ones with... https://paulgraham.com/word.html Sun, 01 Jan 2012 00:00:00 +0000 Frighteningly Ambitious Startup Ideas https://paulgraham.com/ambitious.html Want to start a startup? Get funded by Y Combinator. March 2012One of the more surprising things I've noticed while working on Y Combinator is how frightening the most ambitious startup ideas are. In this essay I'm going to demonstrate this phenomenon by describing some. Any one of them could make you a billionaire. That might sound like an attractive prospect, and yet when I describe these ideas you may notice you find yourself shrinking away from them.Don't worry, it's not a sign of we... https://paulgraham.com/ambitious.html Thu, 01 Mar 2012 00:00:00 +0000 Defining Property https://paulgraham.com/property.html As a child I read a book of stories about a famous judge in eighteenth century Japan called Ooka Tadasuke. One of the cases he decided was brought by the owner of a food shop. A poor student who could afford only rice was eating his rice while enjoying the delicious cooking smells coming from the food shop. The owner wanted the student to pay for the smells he was enjoying.The student was stealing his smells!This story often comes to mind when I hear the RIAA and MPAA accusing people of steal... https://paulgraham.com/property.html Thu, 01 Mar 2012 00:00:00 +0000 How Y Combinator Started https://paulgraham.com/ycstart.html Y Combinator's 7th birthday was March 11. As usual we were so busy we didn't notice till a few days after. I don't think we've ever managed to remember our birthday on our birthday. On March 11 2005, Jessica and I were walking home from dinner in Harvard Square. Jessica was working at an investment bank at the time, but she didn't like it much, so she had interviewed for a job as director of marketing at a Boston VC fund. The VC fund was doing what now seems a comically familiar thing for ... https://paulgraham.com/ycstart.html Thu, 01 Mar 2012 00:00:00 +0000 Writing and Speaking https://paulgraham.com/speak.html I'm not a very good speaker. I say "um" a lot. Sometimes I have to pause when I lose my train of thought. I wish I were a better speaker. But I don't wish I were a better speaker like I wish I were a better writer. What I really want is to have good ideas, and that's a much bigger part of being a good writer than being a good speaker.Having good ideas is most of writing well. If you know what you're talking about, you can say it in the plainest words and you'll be perceived as having a good... https://paulgraham.com/speak.html Thu, 01 Mar 2012 00:00:00 +0000 The Top of My Todo List https://paulgraham.com/todo.html A palliative care nurse called Bronnie Ware made a list of the biggest regrets of the dying. Her list seems plausible. I could see myself — can see myself — making at least 4 of these 5 mistakes.If you had to compress them into a single piece of advice, it might be: don't be a cog. The 5 regrets paint a portrait of post-industrial man, who shrinks himself into a shape that fits his circumstances, then turns dutifully till he stops.The alarming thing is, the mistakes that produce these regrets... https://paulgraham.com/todo.html Sun, 01 Apr 2012 00:00:00 +0000 Black Swan Farming https://paulgraham.com/swan.html Want to start a startup? Get funded by Y Combinator. September 2012I've done several types of work over the years but I don't know another as counterintuitive as startup investing.The two most important things to understand about startup investing, as a business, are (1) that effectively all the returns are concentrated in a few big winners, and (2) that the best ideas look initially like bad ideas.The first rule I knew intellectually, but didn't really grasp till it happened to us. The to... https://paulgraham.com/swan.html Sat, 01 Sep 2012 00:00:00 +0000 Startup = Growth https://paulgraham.com/growth.html Want to start a startup? Get funded by Y Combinator. September 2012A startup is a company designed to grow fast. Being newly founded does not in itself make a company a startup. Nor is it necessary for a startup to work on technology, or take venture funding, or have some sort of "exit." The only essential thing is growth. Everything else we associate with startups follows from growth.If you want to start one it's important to understand that. Startups are so hard that you can't be point... https://paulgraham.com/growth.html Sat, 01 Sep 2012 00:00:00 +0000 The Hardware Renaissance https://paulgraham.com/hw.html Want to start a startup? Get funded by Y Combinator. October 2012One advantage of Y Combinator's early, broad focus is that we see trends before most other people. And one of the most conspicuous trends in the last batch was the large number of hardware startups. Out of 84 companies, 7 were making hardware. On the whole they've done better than the companies that weren't.They've faced resistance from investors of course. Investors have a deep-seated bias against hardware. But investors'... https://paulgraham.com/hw.html Mon, 01 Oct 2012 00:00:00 +0000 How to Get Startup Ideas https://paulgraham.com/startupideas.html Want to start a startup? Get funded by Y Combinator. November 2012The way to get startup ideas is not to try to think of startup ideas. It's to look for problems, preferably problems you have yourself.The very best startup ideas tend to have three things in common: they're something the founders themselves want, that they themselves can build, and that few others realize are worth doing. Microsoft, Apple, Yahoo, Google, and Facebook all began this way. ProblemsWhy is it so important to wo... https://paulgraham.com/startupideas.html Thu, 01 Nov 2012 00:00:00 +0000 Startup Investing Trends https://paulgraham.com/invtrend.html (This talk was written for an audience of investors.)Y Combinator has now funded 564 startups including the current batch, which has 53. The total valuation of the 287 that have valuations (either by raising an equity round, getting acquired, or dying) is about $11.7 billion, and the 511 prior to the current batch have collectively raised about $1.7 billion. [1]As usual those numbers are dominated by a few big winners. The top 10 startups account for 8.6 of that 11.7 billion. But there is a p... https://paulgraham.com/invtrend.html Sat, 01 Jun 2013 00:00:00 +0000 Do Things that Don't Scale https://paulgraham.com/ds.html Want to start a startup? Get funded by Y Combinator. July 2013One of the most common types of advice we give at Y Combinator is to do things that don't scale. A lot of would-be founders believe that startups either take off or don't. You build something, make it available, and if you've made a better mousetrap, people beat a path to your door as promised. Or they don't, in which case the market must not exist. [1]Actually startups take off because the founders make them take off. There m... https://paulgraham.com/ds.html Mon, 01 Jul 2013 00:00:00 +0000 How to Convince Investors https://paulgraham.com/convince.html Want to start a startup? Get funded by Y Combinator. August 2013When people hurt themselves lifting heavy things, it's usually because they try to lift with their back. The right way to lift heavy things is to let your legs do the work. Inexperienced founders make the same mistake when trying to convince investors. They try to convince with their pitch. Most would be better off if they let their startup do the work — if they started by understanding why their startup is worth investing ... https://paulgraham.com/convince.html Thu, 01 Aug 2013 00:00:00 +0000 Investor Herd Dynamics https://paulgraham.com/herd.html Want to start a startup? Get funded by Y Combinator. August 2013The biggest component in most investors' opinion of you is the opinion of other investors. Which is of course a recipe for exponential growth. When one investor wants to invest in you, that makes other investors want to, which makes others want to, and so on.Sometimes inexperienced founders mistakenly conclude that manipulating these forces is the essence of fundraising. They hear stories about stampedes to invest in success... https://paulgraham.com/herd.html Thu, 01 Aug 2013 00:00:00 +0000 How to Raise Money https://paulgraham.com/fr.html Want to start a startup? Get funded by Y Combinator. September 2013Most startups that raise money do it more than once. A typical trajectory might be (1) to get started with a few tens of thousands from something like Y Combinator or individual angels, then (2) raise a few hundred thousand to a few million to build the company, and then (3) once the company is clearly succeeding, raise one or more later rounds to accelerate growth.Reality can be messier. Some companies raise money twice ... https://paulgraham.com/fr.html Sun, 01 Sep 2013 00:00:00 +0000 Before the Startup https://paulgraham.com/before.html Want to start a startup? Get funded by Y Combinator. October 2014(This essay is derived from a guest lecture in Sam Altman's startup class at Stanford. It's intended for college students, but much of it is applicable to potential founders at other ages.)One of the advantages of having kids is that when you have to give advice, you can ask yourself "what would I tell my own kids?" My kids are little, but I can imagine what I'd tell them about startups if they were in college, and that's wh... https://paulgraham.com/before.html Wed, 01 Oct 2014 00:00:00 +0000 Mean People Fail https://paulgraham.com/mean.html It struck me recently how few of the most successful people I know are mean. There are exceptions, but remarkably few.Meanness isn't rare. In fact, one of the things the internet has shown us is how mean people can be. A few decades ago, only famous people and professional writers got to publish their opinions. Now everyone can, and we can all see the long tail of meanness that had previously been hidden.And yet while there are clearly a lot of mean people out there, there are next to none a... https://paulgraham.com/mean.html Sat, 01 Nov 2014 00:00:00 +0000 The Fatal Pinch https://paulgraham.com/pinch.html Many startups go through a point a few months before they die where although they have a significant amount of money in the bank, they're also losing a lot each month, and revenue growth is either nonexistent or mediocre. The company has, say, 6 months of runway. Or to put it more brutally, 6 months before they're out of business. They expect to avoid that by raising more from investors. [1]That last sentence is the fatal one.There may be nothing founders are so prone to delude themselves abo... https://paulgraham.com/pinch.html Mon, 01 Dec 2014 00:00:00 +0000 How You Know https://paulgraham.com/know.html I've read Villehardouin's chronicle of the Fourth Crusade at least two times, maybe three. And yet if I had to write down everything I remember from it, I doubt it would amount to much more than a page. Multiply this times several hundred, and I get an uneasy feeling when I look at my bookshelves. What use is it to read all these books if I remember so little from them?A few months ago, as I was reading Constance Reid's excellent biography of Hilbert, I figured out if not the answer to this qu... https://paulgraham.com/know.html Mon, 01 Dec 2014 00:00:00 +0000 How to Be an Expert in a Changing World https://paulgraham.com/ecw.html If the world were static, we could have monotonically increasing confidence in our beliefs. The more (and more varied) experience a belief survived, the less likely it would be false. Most people implicitly believe something like this about their opinions. And they're justified in doing so with opinions about things that don't change much, like human nature. But you can't trust your opinions in the same way about things that change, which could include practically everything else.When expert... https://paulgraham.com/ecw.html Mon, 01 Dec 2014 00:00:00 +0000 Let the Other 95% of Great Programmers In https://paulgraham.com/95.html American technology companies want the government to make immigration easier because they say they can't find enough programmers in the US. Anti-immigration people say that instead of letting foreigners take these jobs, we should train more Americans to be programmers. Who's right?The technology companies are right. What the anti-immigration people don't understand is that there is a huge variation in ability between competent programmers and exceptional ones, and while you can train people to ... https://paulgraham.com/95.html Mon, 01 Dec 2014 00:00:00 +0000 Don't Talk to Corp Dev https://paulgraham.com/corpdev.html Corporate Development, aka corp dev, is the group within companies that buys other companies. If you're talking to someone from corp dev, 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 sell your company right now and (b) you're sufficiently likely to get an offer at an acceptable price. In practice that means startups should only talk to corp dev when they're either doing really well or really badly. If you're doing really badly,... https://paulgraham.com/corpdev.html Thu, 01 Jan 2015 00:00:00 +0000 What Doesn't Seem Like Work? https://paulgraham.com/work.html My father is a mathematician. For most of my childhood he worked for Westinghouse, modelling nuclear reactors.He was one of those lucky people who know early on what they want to do. When you talk to him about his childhood, there's a clear watershed at about age 12, when he "got interested in maths."He grew up in the small Welsh seacoast town of Pwllheli. As we retraced his walk to school on Google Street View, he said that it had been nice growing up in the country."Didn't it get boring when... https://paulgraham.com/work.html Thu, 01 Jan 2015 00:00:00 +0000 The Ronco Principle https://paulgraham.com/ronco.html No one, VC or angel, has invested in more of the top startups than Ron Conway. He knows what happened in every deal in the Valley, half the time because he arranged it.And yet he's a super nice guy. In fact, nice is not the word. Ronco is good. I know of zero instances in which he has behaved badly. It's hard even to imagine.When I first came to Silicon Valley I thought "How lucky that someone so powerful is so benevolent." But gradually I realized it wasn't luck. It was by being benevolent... https://paulgraham.com/ronco.html Thu, 01 Jan 2015 00:00:00 +0000 What Microsoft Is this the Altair Basic of? https://paulgraham.com/altair.html One of the most valuable exercises you can try if you want to understand startups is to look at the most successful companies and explain why they were not as lame as they seemed when they first launched. Because they practically all seemed lame at first. Not just small, lame. Not just the first step up a big mountain. More like the first step into a swamp.A Basic interpreter for the Altair? How could that ever grow into a giant company? People sleeping on airbeds in strangers' apartments? ... https://paulgraham.com/altair.html Sun, 01 Feb 2015 00:00:00 +0000 Change Your Name https://paulgraham.com/name.html If you have a US startup called X and you don't have x.com, you should probably change your name.The reason is not just that people can't find you. For companies with mobile apps, especially, having the right domain name is not as critical as it used to be for getting users. The problem with not having the .com of your name is that it signals weakness. Unless you're so big that your reputation precedes you, a marginal domain suggests you're a marginal company. Whereas (as Stripe shows) havin... https://paulgraham.com/name.html Sat, 01 Aug 2015 00:00:00 +0000 Why It's Safe for Founders to Be Nice https://paulgraham.com/safe.html I recently got an email from a founder that helped me understand something important: why it's safe for startup founders to be nice people.I grew up with a cartoon idea of a very successful businessman (in the cartoon it was always a man): a rapacious, cigar-smoking, table-thumping guy in his fifties who wins by exercising power, and isn't too fussy about how. As I've written before, one of the things that has surprised me most about startups is how few of the most successful founders are like... https://paulgraham.com/safe.html Sat, 01 Aug 2015 00:00:00 +0000 Default Alive or Default Dead? https://paulgraham.com/aord.html When I talk to a startup that's been operating for more than 8 or 9 months, the first thing I want to know is almost always the same. Assuming their expenses remain constant and their revenue growth is what it has been over the last several months, do they make it to profitability on the money they have left? Or to put it more dramatically, by default do they live or die?The startling thing is how often the founders themselves don't know. Half the founders I talk to don't know whether they're d... https://paulgraham.com/aord.html Thu, 01 Oct 2015 00:00:00 +0000 Write Like You Talk https://paulgraham.com/talk.html Here's a simple trick for getting more people to read what you write: write in spoken language.Something comes over most people when they start writing. They write in a different language than they'd use if they were talking to a friend. The sentence structure and even the words are different. No one uses "pen" as a verb in spoken English. You'd feel like an idiot 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: The ... https://paulgraham.com/talk.html Thu, 01 Oct 2015 00:00:00 +0000 A Way to Detect Bias https://paulgraham.com/bias.html This will come as a surprise to a lot of people, but in some cases it's possible to detect bias in a selection process without knowing anything about the applicant pool. Which is exciting because among other things it means third parties can use this technique to detect bias whether those doing the selecting want them to or not.You can use this technique whenever (a) you have at least a random sample of the applicants that were selected, (b) their subsequent performance is measured, and (c) the... https://paulgraham.com/bias.html Thu, 01 Oct 2015 00:00:00 +0000 Jessica Livingston https://paulgraham.com/jessica.html A few months ago an article about Y Combinator said that early on it had been a "one-man show." It's sadly common to read that sort of thing. But the problem with that description is not just that it's unfair. It's also misleading. Much of what's most novel about YC is due to Jessica Livingston. If you don't understand her, you don'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, and the next day we recruited my fri... https://paulgraham.com/jessica.html Sun, 01 Nov 2015 00:00:00 +0000 The Refragmentation https://paulgraham.com/re.html One advantage of being old is that you can see change happen in your lifetime. A lot of the change I've seen is fragmentation. US politics is much more polarized than it used to be. Culturally we have ever less common ground. The creative class flocks to a handful of happy cities, abandoning the rest. And increasing economic inequality means the spread between rich and poor is growing too. I'd like to propose a hypothesis: that all these trends are instances of the same phenomenon. And more... https://paulgraham.com/re.html Fri, 01 Jan 2016 00:00:00 +0000 Economic Inequality https://paulgraham.com/ineq.html Since the 1970s, economic inequality in the US has increased dramatically. And in particular, the rich have gotten a lot richer. Nearly everyone who writes about the topic says that economic inequality should be decreased.I'm interested in this question because I was one of the founders of a company called Y Combinator that helps people start startups. Almost by definition, if a startup succeeds, its founders become rich. Which means by helping startup founders I've been helping to increase econ... https://paulgraham.com/ineq.html Fri, 01 Jan 2016 00:00:00 +0000 Life is Short https://paulgraham.com/vb.html Life is short, as everyone knows. When I was a kid I used to wonder about this. Is life actually short, or are we really complaining about its finiteness? Would we be just as likely to feel life was short if we lived 10 times as long?Since there didn't seem any way to answer this question, I stopped wondering about it. Then I had kids. That gave me a way to answer the question, and the answer is that life actually is short.Having kids showed me how to convert a continuous quantity, time, into... https://paulgraham.com/vb.html Fri, 01 Jan 2016 00:00:00 +0000 How to Make Pittsburgh a Startup Hub https://paulgraham.com/pgh.html (This is a talk I gave at an event called Opt412 in Pittsburgh. Much of it will apply to other towns. But not all, because as I say in the talk, Pittsburgh has some important advantages over most would-be startup hubs.)What would it take to make Pittsburgh into a startup hub, like Silicon Valley? I understand Pittsburgh pretty well, because I grew up here, in Monroeville. And I understand Silicon Valley pretty well because that's where I live now. Could you get that kind of startup ecosystem ... https://paulgraham.com/pgh.html Fri, 01 Apr 2016 00:00:00 +0000 The Risk of Discovery https://paulgraham.com/disc.html Because biographies of famous scientists tend to edit out their mistakes, we underestimate the degree of risk they were willing to take. And because anything a famous scientist did that wasn't a mistake has probably now become the conventional wisdom, those choices don't seem risky either.Biographies of Newton, for example, understandably focus more on physics than alchemy or theology. The impression we get is that his unerring judgment led him straight to truths no one else had noticed. How t... https://paulgraham.com/disc.html Sun, 01 Jan 2017 00:00:00 +0000 Charisma / Power https://paulgraham.com/pow.html People who are powerful but uncharismatic will tend to be disliked. Their power makes them a target for criticism that they don't have the charisma to disarm. That was Hillary Clinton's problem. It also tends to be a problem for any CEO who is more of a builder than a schmoozer. And yet the builder-type CEO is (like Hillary) probably the best person for the job.I don't think there is any solution to this problem. It's human nature. The best we can do is to recognize that it's happening, and to u... https://paulgraham.com/pow.html Sun, 01 Jan 2017 00:00:00 +0000 General and Surprising https://paulgraham.com/sun.html The most valuable insights are both general and surprising. F = ma for example. But general and surprising is a hard combination to achieve. That territory tends to be picked clean, precisely because those insights are so valuable.Ordinarily, the best that people can do is one without the other: either surprising without being general (e.g. gossip), or general without being surprising (e.g. platitudes).Where things get interesting is the moderately valuable insights. You get those from small a... https://paulgraham.com/sun.html Fri, 01 Sep 2017 00:00:00 +0000 The Bus Ticket Theory of Genius https://paulgraham.com/genius.html Everyone knows that to do great work you need both natural ability and determination. But there's a third ingredient that's not as well understood: an obsessive interest in a particular topic.To explain this point I need to burn my reputation with some group of people, and I'm going to choose bus ticket collectors. There are people who collect old bus tickets. Like many collectors, they have an obsessive interest in the minutiae of what they collect. They can keep track of distinctions between ... https://paulgraham.com/genius.html Fri, 01 Nov 2019 00:00:00 +0000 Novelty and Heresy https://paulgraham.com/nov.html If you discover something new, there's a significant chance you'll be accused of some form of heresy.To discover new things, you have to work on ideas that are good but non-obvious; if an idea is obviously good, other people are probably already working on it. One common way for a good idea to be non-obvious is for it to be hidden in the shadow of some mistaken assumption that people are very attached to. But anything you discover from working on such an idea will tend to contradict the mistaken... https://paulgraham.com/nov.html Fri, 01 Nov 2019 00:00:00 +0000 The Lesson to Unlearn https://paulgraham.com/lesson.html The most damaging thing you learned in school wasn't something you learned in any specific class. It was learning to get good grades.When I was in college, a particularly earnest philosophy grad student once told me that he never cared what grade he got in a class, only what he learned in it. This stuck in my mind because it was the only time I ever heard anyone say such a thing.For me, as for most students, the measurement of what I was learning completely dominated actual learning in college. ... https://paulgraham.com/lesson.html Sun, 01 Dec 2019 00:00:00 +0000 Having Kids https://paulgraham.com/kids.html Before I had kids, I was afraid of having kids. Up to that point I felt about kids the way the young Augustine felt about living virtuously. I'd have been sad to think I'd never have children. But did I want them now? No.If I had kids, I'd become a parent, and parents, as I'd known since I was a kid, were uncool. They were dull and responsible and had no fun. And while it's not surprising that kids would believe that, to be honest I hadn't seen much as an adult to change my mind. Whenever I'd n... https://paulgraham.com/kids.html Sun, 01 Dec 2019 00:00:00 +0000 Fashionable Problems https://paulgraham.com/fp.html I've seen the same pattern in many different fields: even though lots of people have worked hard in the field, only a small fraction of the space of possibilities has been explored, because they've all worked on similar things.Even the smartest, most imaginative people are surprisingly conservative when deciding what to work on. People who would never dream of being fashionable in any other way get sucked into working on fashionable problems.If you want to try working on unfashionable problems, ... https://paulgraham.com/fp.html Sun, 01 Dec 2019 00:00:00 +0000 The Two Kinds of Moderate https://paulgraham.com/mod.html There are two distinct ways to be politically moderate: on purpose and by accident. Intentional moderates are trimmers, deliberately choosing a position mid-way between the extremes of right and left. Accidental moderates end up in the middle, on average, because they make up their own minds about each question, and the far right and far left are roughly equally wrong.You can distinguish intentional from accidental moderates by the distribution of their opinions. If the far left opinion on some ... https://paulgraham.com/mod.html Sun, 01 Dec 2019 00:00:00 +0000 Haters https://paulgraham.com/fh.html (I originally intended this for startup founders, who are often surprised by the attention they get as their companies grow, but it applies equally to anyone who becomes famous.)If you become sufficiently famous, you'll acquire some fans who like you too much. These people are sometimes called "fanboys," and though I dislike that term, I'm going to have to use it here. We need some word for them, because this is a distinct phenomenon from someone simply liking your work.A fanboy is obsessive an... https://paulgraham.com/fh.html Wed, 01 Jan 2020 00:00:00 +0000 Being a Noob https://paulgraham.com/noob.html When I was young, I thought old people had everything figured out. Now that I'm old, I know this isn't true.I constantly feel like a noob. It seems like I'm always talking to some startup working in a new field I know nothing about, or reading a book about a topic I don't understand well enough, or visiting some new country where I don't know how things work.It's not pleasant to feel like a noob. And the word "noob" is certainly not a compliment. And yet today I realized something encouraging ab... https://paulgraham.com/noob.html Wed, 01 Jan 2020 00:00:00 +0000 How to Write Usefully https://paulgraham.com/useful.html What should an essay be? Many people would say persuasive. That's what a lot of us were taught essays should be. But I think we can aim for something more ambitious: that an essay should be useful.To start with, that means it should be correct. But it's not enough merely to be correct. It's easy to make a statement correct by making it vague. That's a common flaw in academic writing, for example. If you know nothing at all about an issue, you can't go wrong by saying that the issue is a complex ... https://paulgraham.com/useful.html Sat, 01 Feb 2020 00:00:00 +0000 Coronavirus and Credibility https://paulgraham.com/cred.html I recently saw a video of TV journalists and politicians confidently saying that the coronavirus would be no worse than the flu. What struck me about it was not just how mistaken they seemed, but how daring. How could they feel safe saying such things?The answer, I realized, is that they didn't think they could get caught. They didn't realize there was any danger in making false predictions. These people constantly make false predictions, and get away with it, because the things they make pred... https://paulgraham.com/cred.html Wed, 01 Apr 2020 00:00:00 +0000 Orthodox Privilege https://paulgraham.com/orth.html "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 There has been a lot of talk about privilege lately. Although the concept is overused, there is something to it, and in particular to the idea that privilege makes you blind — that you can't see things that are visible to someone whose life is very different from yours.But one of the most pervasive exam... https://paulgraham.com/orth.html Wed, 01 Jul 2020 00:00:00 +0000 The Four Quadrants of Conformism https://paulgraham.com/conformism.html One of the most revealing ways to classify people is by the degree and aggressiveness of their conformism. Imagine a Cartesian coordinate system whose horizontal axis runs from conventional-minded on the left to independent-minded on the right, and whose vertical axis runs from passive at the bottom to aggressive at the top. The resulting four quadrants define four types of people. Starting in the upper left and going counter-clockwise: aggressively conventional-minded, passively conventional-mi... https://paulgraham.com/conformism.html Wed, 01 Jul 2020 00:00:00 +0000 Modeling a Wealth Tax https://paulgraham.com/wtax.html Some politicians are proposing to introduce wealth taxes in addition to income and capital gains taxes. Let's try modeling the effects of various levels of wealth tax to see what they would mean in practice for a startup founder.Suppose you start a successful startup in your twenties, and then live for another 60 years. How much of your stock will a wealth tax consume?If the wealth tax applies to all your assets, it's easy to calculate its effect. A wealth tax of 1% means you get to keep 99% of ... https://paulgraham.com/wtax.html Sat, 01 Aug 2020 00:00:00 +0000 Early Work https://paulgraham.com/early.html One of the biggest things holding people back from doing great work is the fear of making something lame. And this fear is not an irrational one. Many great projects go through a stage early on where they don't seem very impressive, even to their creators. You have to push through this stage to reach the great work that lies beyond. But many people don't. Most people don't even reach the stage of making something they're embarrassed by, let alone continue past it. They're too frightened even to ... https://paulgraham.com/early.html Thu, 01 Oct 2020 00:00:00 +0000 How to Think for Yourself https://paulgraham.com/think.html There are some kinds of work that you can't do well without thinking differently from your peers. To be a successful scientist, for example, it's not enough just to be correct. Your ideas have to be both correct and novel. You can't publish papers saying things other people already know. You need to say things no one else has realized yet.The same is true for investors. It's not enough for a public market investor to predict correctly how a company will do. If a lot of other people make the same... https://paulgraham.com/think.html Sun, 01 Nov 2020 00:00:00 +0000 The Airbnbs https://paulgraham.com/airbnbs.html To celebrate Airbnb's IPO and to help future founders, I thought it might be useful to explain what was special about Airbnb.What was special about the Airbnbs was how earnest they were. They did nothing half-way, and we could sense this even in the interview. Sometimes after we interviewed a startup we'd be uncertain what to do, and have to talk it over. Other times we'd just look at one another and smile. The Airbnbs' interview was that kind. We didn't even like the idea that much. Nor did use... https://paulgraham.com/airbnbs.html Thu, 01 Jan 2009 00:00:00 +0000 Billionaires Build https://paulgraham.com/ace.html As I was deciding what to write about next, I was surprised to find that two separate essays I'd been planning to write were actually the same.The first is about how to ace your Y Combinator interview. There has been so much nonsense written about this topic that I've been meaning for years to write something telling founders the truth.The second is about something politicians sometimes say — that the only way to become a billionaire is by exploiting people — and why this is mistaken.Keep readin... https://paulgraham.com/ace.html Tue, 01 Dec 2020 00:00:00 +0000 Earnestness https://paulgraham.com/earnest.html Jessica and I have certain words that have special significance when we're talking about startups. The highest compliment we can pay to founders is to describe them as "earnest." This is not by itself a guarantee of success. You could be earnest but incapable. But when founders are both formidable (another of our words) and earnest, they're as close to unstoppable as you get.Earnestness sounds like a boring, even Victorian virtue. It seems a bit of an anachronism that people in Silicon Valley wo... https://paulgraham.com/earnest.html Tue, 01 Dec 2020 00:00:00 +0000 What I Worked On https://paulgraham.com/worked.html Before college the two main things I worked on, outside of school, were writing and programming. I didn't write essays. I wrote what beginning writers were supposed to write then, and probably still are: short stories. My stories were awful. They had hardly any plot, just characters with strong feelings, which I imagined made them deep.The first programs I tried writing were on the IBM 1401 that our school district used for what was then called "data processing." This was in 9th grade, so I was ... https://paulgraham.com/worked.html Mon, 01 Jan 1996 00:00:00 +0000 Donate Unrestricted https://paulgraham.com/donate.html The secret curse of the nonprofit world is restricted donations. If you haven't been involved with nonprofits, you may never have heard this phrase before. But if you have been, it probably made you wince.Restricted donations mean donations where the donor limits what can be done with the money. This is common with big donations, perhaps the default. And yet it's usually a bad idea. Usually the way the donor wants the money spent is not the way the nonprofit would have chosen. Otherwise there wo... https://paulgraham.com/donate.html Mon, 01 Mar 2021 00:00:00 +0000 Write Simply https://paulgraham.com/simply.html I try to write using ordinary words and simple sentences.That kind of writing is easier to read, and the easier something is to read, the more deeply readers will engage with it. The less energy they expend on your prose, the more they'll have left for your ideas.And the further they'll read. Most readers' energy tends to flag part way through an article or essay. If the friction of reading is low enough, more keep going till the end.There's an Italian dish called saltimbocca, which means "leap ... https://paulgraham.com/simply.html Mon, 01 Mar 2021 00:00:00 +0000 How People Get Rich Now https://paulgraham.com/richnow.html Every year since 1982, Forbes magazine has published a list of the richest Americans. If we compare the 100 richest people in 1982 to the 100 richest in 2020, we notice some big differences.In 1982 the most common source of wealth was inheritance. Of the 100 richest people, 60 inherited from an ancestor. There were 10 du Pont heirs alone. By 2020 the number of heirs had been cut in half, accounting for only 27 of the biggest 100 fortunes.Why would the percentage of heirs decrease? Not because in... https://paulgraham.com/richnow.html Thu, 01 Apr 2021 00:00:00 +0000 The Real Reason to End the Death Penalty https://paulgraham.com/real.html When intellectuals talk about the death penalty, they talk about things like whether it's permissible for the state to take someone's life, whether the death penalty acts as a deterrent, and whether more death sentences are given to some groups than others. But in practice the debate about the death penalty is not about whether it's ok to kill murderers. It's about whether it's ok to kill innocent people, because at least 4% of people on death row are innocent.When I was a kid I imagined that it... https://paulgraham.com/real.html Thu, 01 Apr 2021 00:00:00 +0000 An NFT That Saves Lives https://paulgraham.com/nft.html Noora Health, a nonprofit I've supported for years, just launched a new NFT. It has a dramatic name, Save Thousands of Lives, because that's what the proceeds will do.Noora has been saving lives for 7 years. They run programs in hospitals in South Asia to teach new mothers how to take care of their babies once they get home. They're in 165 hospitals now. And because they know the numbers before and after they start at a new hospital, they can measure the impact they have. It is massive. For eve... https://paulgraham.com/nft.html Sat, 01 May 2021 00:00:00 +0000 Crazy New Ideas https://paulgraham.com/newideas.html There's one kind of opinion I'd be very afraid to express publicly. If someone I knew to be both a domain expert and a reasonable person proposed an idea that sounded preposterous, I'd be very reluctant to say "That will never work."Anyone who has studied the history of ideas, and especially the history of science, knows that's how big things start. Someone proposes an idea that sounds crazy, most people dismiss it, then it gradually takes over the world.Most implausible-sounding ideas are in fa... https://paulgraham.com/newideas.html Sat, 01 May 2021 00:00:00 +0000 Fierce Nerds https://paulgraham.com/fn.html Most people think of nerds as quiet, diffident people. In ordinary social situations they are — as quiet and diffident as the star quarterback would be if he found himself in the middle of a physics symposium. And for the same reason: they are fish out of water. But the apparent diffidence of nerds is an illusion due to the fact that when non-nerds observe them, it's usually in ordinary social situations. In fact some nerds are quite fierce.The fierce nerds are a small but interesting group. The... https://paulgraham.com/fn.html Sat, 01 May 2021 00:00:00 +0000 A Project of One's Own https://paulgraham.com/own.html A few days ago, on the way home from school, my nine year old son told me he couldn't wait to get home to write more of the story he was working on. This made me as happy as anything I've heard him say — not just because he was excited about his story, but because he'd discovered this way of working. Working on a project of your own is as different from ordinary work as skating is from walking. It's more fun, but also much more productive.What proportion of great work has been done by people who... https://paulgraham.com/own.html Tue, 01 Jun 2021 00:00:00 +0000 How to Work Hard https://paulgraham.com/hwh.html It might not seem there's much to learn about how to work hard. Anyone who's been to school knows what it entails, even if they chose not to do it. There are 12 year olds who work amazingly hard. And yet when I ask if I know more about working hard now than when I was in school, the answer is definitely yes.One thing I know is that if you want to do great things, you'll have to work very hard. I wasn't sure of that as a kid. Schoolwork varied in difficulty; one didn't always have to work super h... https://paulgraham.com/hwh.html Tue, 01 Jun 2021 00:00:00 +0000 Weird Languages https://paulgraham.com/weird.html When people say that in their experience all programming languages are basically equivalent, they're making a statement not about languages but about the kind of programming they've done.99.5% of programming consists of gluing together calls to library functions. All popular languages are equally good at this. So one can easily spend one's whole career operating in the intersection of popular programming languages.But the other .5% of programming is disproportionately interesting. If you want to... https://paulgraham.com/weird.html Sun, 01 Aug 2021 00:00:00 +0000 Beyond Smart https://paulgraham.com/smart.html If you asked people what was special about Einstein, most would say that he was really smart. Even the ones who tried to give you a more sophisticated-sounding answer would probably think this first. Till a few years ago I would have given the same answer myself. But that wasn't what was special about Einstein. What was special about him was that he had important new ideas. Being very smart was a necessary precondition for having those ideas, but the two are not identical.It may seem a hair-spli... https://paulgraham.com/smart.html Fri, 01 Oct 2021 00:00:00 +0000 Is There Such a Thing as Good Taste? https://paulgraham.com/goodtaste.html (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. Some people like some things, and other people like other things, and who's to say who's right?It seemed so obvious that there was no such thing as good taste that it was only through indirect evidence that I realized my father was wrong. And that's what I'm going to give you here: a proof by reductio ad absurdum. If we start from the premise that there's no such thing a... https://paulgraham.com/goodtaste.html Mon, 01 Nov 2021 00:00:00 +0000 Putting Ideas into Words https://paulgraham.com/words.html Writing about something, even something you know well, usually shows you that you didn't know it as well as you thought. Putting ideas into words is a severe test. The first words you choose are usually wrong; you have to rewrite sentences over and over to get them exactly right. And your ideas won't just be imprecise, but incomplete too. Half the ideas that end up in an essay will be ones you thought of while you were writing it. Indeed, that's why I write them.Once you publish something, the ... https://paulgraham.com/words.html Tue, 01 Feb 2022 00:00:00 +0000 Heresy https://paulgraham.com/heresy.html One of the most surprising things I've witnessed in my lifetime is the rebirth of the concept of heresy.In his excellent biography of Newton, Richard Westfall writes about the moment when he was elected a fellow of Trinity College: Supported comfortably, Newton was free to devote himself wholly to whatever he chose. To remain on, he had only to avoid the three unforgivable sins: crime, heresy, and marriage. [1] The first time I read that, in the 1990s, it sounded amusingly medieval. Ho... https://paulgraham.com/heresy.html Fri, 01 Apr 2022 00:00:00 +0000 What I've Learned from Users https://paulgraham.com/users.html I recently told applicants to Y Combinator that the best advice I could give for getting in, per word, was Explain what you've learned from users. That tests a lot of things: whether you're paying attention to users, how well you understand them, and even how much they need what you're making.Afterward I asked myself the same question. What have I learned from YC's users, the startups we've funded?The first thing that came to mind was that most startups have the same problems. No two have e... https://paulgraham.com/users.html Thu, 01 Sep 2022 00:00:00 +0000 Alien Truth https://paulgraham.com/alien.html If there were intelligent beings elsewhere in the universe, they'd share certain truths in common with us. The truths of mathematics would be the same, because they're true by definition. Ditto for the truths of physics; the mass of a carbon atom would be the same on their planet. But I think we'd share other truths with aliens besides the truths of math and physics, and that it would be worthwhile to think about what these might be.For example, I think we'd share the principle that a controlled... https://paulgraham.com/alien.html Sat, 01 Oct 2022 00:00:00 +0000 What You (Want to)* Want https://paulgraham.com/want.html Since I was about 9 I've been puzzled by the apparent contradiction between being made of matter that behaves in a predictable way, and the feeling that I could choose to do whatever I wanted. At the time I had a self-interested motive for exploring the question. At that age (like most succeeding ages) I was always in trouble with the authorities, and it seemed to me that there might possibly be some way to get out of trouble by arguing that I wasn't responsible for my actions. I gradually lost ... https://paulgraham.com/want.html Tue, 01 Nov 2022 00:00:00 +0000 The Need to Read https://paulgraham.com/read.html In the science fiction books I read as a kid, reading had often been replaced by some more efficient way of acquiring knowledge. Mysterious "tapes" would load it into one's brain like a program being loaded into a computer.That sort of thing is unlikely to happen anytime soon. Not just because it would be hard to build a replacement for reading, but because even if one existed, it would be insufficient. Reading about x doesn't just teach you about x; it also teaches you how to write. [1]Would th... https://paulgraham.com/read.html Tue, 01 Nov 2022 00:00:00 +0000 How to Get New Ideas https://paulgraham.com/getideas.html (Someone fed my essays into GPT to make something that could answer questions based on them, then asked it where good ideas come from. The answer 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, or missing, or broken? You can see anomalies in everyday life (much of standup comedy is based on this), but the best place to look for them is at the frontiers of knowledge.Knowledge grows fractally. From a dist... https://paulgraham.com/getideas.html Sun, 01 Jan 2023 00:00:00 +0000 How to Do Great Work https://paulgraham.com/greatwork.html If you collected lists of techniques for doing great work in a lot of different fields, what would the intersection look like? I decided to find out by making it.Partly my goal was to create a guide that could be used by someone working in any field. But I was also curious about the shape of the intersection. And one thing this exercise shows is that it does have a definite shape; it's not just a point labelled "work hard."The following recipe assumes you're very ambitious. The first step is to ... https://paulgraham.com/greatwork.html Sat, 01 Jul 2023 00:00:00 +0000 Superlinear Returns https://paulgraham.com/superlinear.html One of the most important things I didn't understand about the world when I was a child is the degree to which the returns for performance are superlinear.Teachers and coaches implicitly told us the returns were linear. "You get out," I heard a thousand times, "what you put in." They meant well, but this is rarely true. If your product is only half as good as your competitor's, you don't get half as many customers. You get no customers, and you go out of business.It's obviously true that the ret... https://paulgraham.com/superlinear.html Sun, 01 Oct 2023 00:00:00 +0000 The Best Essay https://paulgraham.com/best.html Despite its title this isn't meant to be the best essay. My goal here is to figure out what the best essay would be like.It would be well-written, but you can write well about any topic. What made it special would be what it was about.Obviously some topics would be better than others. It probably wouldn't be about this year's lipstick colors. But it wouldn't be vaporous talk about elevated themes either. A good essay has to be surprising. It has to tell people something they don't already know.T... https://paulgraham.com/best.html Fri, 01 Mar 2024 00:00:00 +0000 How to Start Google https://paulgraham.com/google.html (This is a talk I gave to 14 and 15 year olds about what to do now if they might want to start a startup later. Lots of schools think they should tell students something about startups. This is what I think they should tell them.)Most of you probably think that when you're released into the so-called real world you'll eventually have to get some kind of job. That's not true, and today I'm going to talk about a trick you can use to avoid ever having to get a job.The trick is to start your own com... https://paulgraham.com/google.html Fri, 01 Mar 2024 00:00:00 +0000 The Reddits https://paulgraham.com/reddits.html I met the Reddits before we even started Y Combinator. In fact they were one of the reasons we started it.YC grew out of a talk I gave to the Harvard Computer Society (the undergrad computer club) about how to start a startup. Everyone else in the audience was probably local, but Steve and Alexis came up on the train from the University of Virginia, where they were seniors. Since they'd come so far I agreed to meet them for coffee. They told me about the startup idea we'd later fund them to drop... https://paulgraham.com/reddits.html Fri, 01 Mar 2024 00:00:00 +0000 The Right Kind of Stubborn https://paulgraham.com/persistence.html Successful people tend to be persistent. New ideas often don't work at first, but they're not deterred. They keep trying and eventually find something that does.Mere obstinacy, on the other hand, is a recipe for failure. Obstinate people are so annoying. They won't listen. They beat their heads against a wall and get nowhere.But is there any real difference between these two cases? Are persistent and obstinate people actually behaving differently? Or are they doing the same thing, and we just la... https://paulgraham.com/persistence.html Mon, 01 Jul 2024 00:00:00 +0000 Founder Mode https://paulgraham.com/foundermode.html At a YC event last week Brian Chesky gave a talk that everyone who was there will remember. Most founders I talked to afterward said it was the best they'd ever heard. Ron Conway, for the first time in his life, forgot to take notes. I'm not going to try to reproduce it here. Instead I want to talk about a question it raised.The theme of Brian's talk was that the conventional wisdom about how to run larger companies is mistaken. As Airbnb grew, well-meaning people advised him that he had to run ... https://paulgraham.com/foundermode.html Sun, 01 Sep 2024 00:00:00 +0000 When To Do What You Love https://paulgraham.com/when.html There's some debate about whether it's a good idea to "follow your passion." In fact the question is impossible to answer with a simple yes or no. Sometimes you should and sometimes you shouldn't, but the border between should and shouldn't is very complicated. The only way to give a general answer is to trace it.When people talk about this question, there's always an implicit "instead of." All other things being equal, why wouldn't you work on what interests you the most? So even raising the qu... https://paulgraham.com/when.html Sun, 01 Sep 2024 00:00:00 +0000 Writes and Write-Nots https://paulgraham.com/writes.html I'm usually reluctant to make predictions about technology, but I feel fairly confident about this one: in a couple decades there won't be many people who can write.One of the strangest things you learn if you're a writer is how many people have trouble writing. Doctors know how many people have a mole they're worried about; people who are good at setting up computers know how many people aren't; writers know how many people need help writing.The reason so many people have trouble writing is tha... https://paulgraham.com/writes.html Tue, 01 Oct 2024 00:00:00 +0000 The Origins of Wokeness https://paulgraham.com/woke.html The word "prig" isn't very common now, but if you look up the definition, it will sound familiar. Google's isn't bad: A self-righteously moralistic person who behaves as if superior to others. This sense of the word originated in the 18th century, and its age is an important clue: it shows that although wokeness is a comparatively recent phenomenon, it's an instance of a much older one.There's a certain kind of person who's attracted to a shallow, exacting kind of moral purity, and who dem... https://paulgraham.com/woke.html Wed, 01 Jan 2025 00:00:00 +0000 What to Do https://paulgraham.com/do.html What should one do? That may seem a strange question, but it's not meaningless or unanswerable. It's the sort of question kids ask before they learn not to ask big questions. I only came across it myself in the process of investigating something else. But once I did, I thought I should at least try to answer it.So what should one do? One should help people, and take care of the world. Those two are obvious. But is there anything else? When I ask that, the answer that pops up is Make good new thi... https://paulgraham.com/do.html Sat, 01 Mar 2025 00:00:00 +0000 Good Writing https://paulgraham.com/goodwriting.html There are two senses in which writing can be good: it can sound good, and the ideas can be right. It can have nice, flowing sentences, and it can draw correct conclusions about important things. It might seem as if these two kinds of good would be unrelated, like the speed of a car and the color it's painted. And yet I don't think they are. I think writing that sounds good is more likely to be right.So here we have the most exciting kind of idea: one that seems both preposterous and true. Let's ... https://paulgraham.com/goodwriting.html Thu, 01 May 2025 00:00:00 +0000 The Shape of the Essay Field https://paulgraham.com/field.html An essay has to tell people something they don't already know. But there are three different reasons people might not know something, and they yield three very different kinds of essays.One reason people won't know something is if it's not important to know. That doesn't mean it will make a bad essay. For example, you might write a good essay about a particular model of car. Readers would learn something from it. It would add to their picture of the world. For a handful of readers it might even ... https://paulgraham.com/field.html Sun, 01 Jun 2025 00:00:00 +0000 The Brand Age https://paulgraham.com/brandage.html In the early 1970s disaster struck the Swiss watch industry. Now people call it the quartz crisis, but in fact it was a compound of three separate disasters that all happened at about the same time.The first was competition from Japan. The Swiss had been watching the Japanese in the rear view mirror all through the 1960s, and they'd been improving at an alarming rate. But even so the Swiss were surprised in 1968 when the Japanese swept all the top spots for mechanical watches at the Geneva Obser... https://paulgraham.com/brandage.html Sun, 01 Mar 2026 00:00:00 +0000 How to Lose Time and Money https://paulgraham.com/selfindulgence.html When we sold our startup in 1998 I suddenly got a lot of money. I now had to think about something I hadn't had to think about before: how not to lose it. I knew it was possible to go from rich to poor, just as it was possible to go from poor to rich. But while I'd spent a lot of the past several years studying the paths from poor to rich, I knew practically nothing about the paths from rich to poor. Now, in order to avoid them, I had to learn where they were.So I started to pay attention ... https://paulgraham.com/selfindulgence.html Thu, 01 Jul 2010 00:00:00 +0000 Having Kids https://paulgraham.com/kids.html Before I had kids, I was afraid of having kids. Up to that point I felt about kids the way the young Augustine felt about living virtuously. I'd have been sad to think I'd never have children. But did I want them now? No.If I had kids, I'd become a parent, and parents, as I'd known since I was a kid, were uncool. They were dull and responsible and had no fun. And while it's not surprising that kids would believe that, to be honest I hadn't seen much as an adult to change my mind. Whenever I'd n... https://paulgraham.com/kids.html Sun, 01 Dec 2019 00:00:00 +0000 How to Do Great Work https://paulgraham.com/greatwork.html If you collected lists of techniques for doing great work in a lot of different fields, what would the intersection look like? I decided to find out by making it.Partly my goal was to create a guide that could be used by someone working in any field. But I was also curious about the shape of the intersection. And one thing this exercise shows is that it does have a definite shape; it's not just a point labelled "work hard."The following recipe assumes you're very ambitious. The first step is to ... https://paulgraham.com/greatwork.html Sat, 01 Jul 2023 00:00:00 +0000 ================================================ FILE: feeds/feed_perplexity_hub.xml ================================================ Perplexity Blog https://www.perplexity.ai/hub Updates from Perplexity AI http://www.rssboard.org/rss-specification python-feedgen https://www.perplexity.ai/favicon.ico Perplexity Blog https://www.perplexity.ai/hub en Wed, 13 May 2026 11:22:00 +0000 Personal Computer is Available to All Mac Users https://www.perplexity.ai/hub/blog/personal-computer-is-available-to-all-mac-users Personal Computer is Available to All Mac Users https://www.perplexity.ai/hub/blog/personal-computer-is-available-to-all-mac-users Company Thu, 07 May 2026 00:00:00 +0000 Introducing Finance Search in the Agent API https://www.perplexity.ai/hub/blog/introducing-finance-search-in-the-agent-api Introducing Finance Search in the Agent API https://www.perplexity.ai/hub/blog/introducing-finance-search-in-the-agent-api Company Wed, 06 May 2026 00:00:00 +0000 Announcing Premium Health Sources https://www.perplexity.ai/hub/blog/announcing-premium-health-sources Announcing Premium Health Sources https://www.perplexity.ai/hub/blog/announcing-premium-health-sources Company Tue, 05 May 2026 00:00:00 +0000 Computer for Professional Finance https://www.perplexity.ai/hub/blog/computer-for-professional-finance Computer for Professional Finance https://www.perplexity.ai/hub/blog/computer-for-professional-finance Company Tue, 05 May 2026 00:00:00 +0000 Computer in Teams is here https://www.perplexity.ai/hub/blog/computer-in-teams-is-here Computer in Teams is here https://www.perplexity.ai/hub/blog/computer-in-teams-is-here Updates Mon, 04 May 2026 00:00:00 +0000 Computer at Work https://www.perplexity.ai/hub/blog/computer-at-work Computer at Work https://www.perplexity.ai/hub/blog/computer-at-work Company Thu, 30 Apr 2026 00:00:00 +0000 How Perplexity Builds Accuracy into Frontier AI https://www.perplexity.ai/hub/blog/how-perplexity-builds-accuracy-into-frontier-ai How Perplexity Builds Accuracy into Frontier AI https://www.perplexity.ai/hub/blog/how-perplexity-builds-accuracy-into-frontier-ai Research Wed, 22 Apr 2026 00:00:00 +0000 Computer is Now Your Personal CFO https://www.perplexity.ai/hub/blog/plaid-integration-provides-full-view-of-personal-finances Computer is Now Your Personal CFO https://www.perplexity.ai/hub/blog/plaid-integration-provides-full-view-of-personal-finances Updates Thu, 09 Apr 2026 00:00:00 +0000 Introducing Computer for Taxes https://www.perplexity.ai/hub/blog/introducing-computer-for-taxes Introducing Computer for Taxes https://www.perplexity.ai/hub/blog/introducing-computer-for-taxes Company Thu, 02 Apr 2026 00:00:00 +0000 Computer in Slack: From Shared Context to Finished Work https://www.perplexity.ai/hub/blog/computer-in-slack-from-shared-context-to-finished-work Computer in Slack: From Shared Context to Finished Work https://www.perplexity.ai/hub/blog/computer-in-slack-from-shared-context-to-finished-work Company Wed, 01 Apr 2026 00:00:00 +0000 Announcing the Secure Intelligence Institute https://www.perplexity.ai/hub/blog/announcing-the-secure-intelligence-institute Announcing the Secure Intelligence Institute https://www.perplexity.ai/hub/blog/announcing-the-secure-intelligence-institute Company Tue, 31 Mar 2026 00:00:00 +0000 Perplexity APIs Power AI Browsing on Samsung Devices https://www.perplexity.ai/hub/blog/perplexity-apis-power-ai-browsing-on-samsung-devices Perplexity APIs Power AI Browsing on Samsung Devices https://www.perplexity.ai/hub/blog/perplexity-apis-power-ai-browsing-on-samsung-devices Company Thu, 26 Mar 2026 00:00:00 +0000 Introducing Perplexity Health https://www.perplexity.ai/hub/blog/introducing-perplexity-health Introducing Perplexity Health https://www.perplexity.ai/hub/blog/introducing-perplexity-health Company Thu, 19 Mar 2026 00:00:00 +0000 Introducing the Perplexity Health Advisory Board https://www.perplexity.ai/hub/blog/introducing-the-perplexity-health-advisory-board Introducing the Perplexity Health Advisory Board https://www.perplexity.ai/hub/blog/introducing-the-perplexity-health-advisory-board Company Thu, 19 Mar 2026 00:00:00 +0000 Comet is Now Available on iOS https://www.perplexity.ai/hub/blog/meet-comet-for-ios Comet is Now Available on iOS https://www.perplexity.ai/hub/blog/meet-comet-for-ios Updates Wed, 18 Mar 2026 00:00:00 +0000 Comet Enterprise is here https://www.perplexity.ai/hub/blog/comet-enterprise-is-here Comet Enterprise is here https://www.perplexity.ai/hub/blog/comet-enterprise-is-here Enterprise Tue, 17 Mar 2026 00:00:00 +0000 Perplexity Joins the NVIDIA Nemotron Coalition https://www.perplexity.ai/hub/blog/perplexity-joins-the-nvidia-nemotron-coalition Perplexity Joins the NVIDIA Nemotron Coalition https://www.perplexity.ai/hub/blog/perplexity-joins-the-nvidia-nemotron-coalition Company Mon, 16 Mar 2026 00:00:00 +0000 Computer for Enterprise https://www.perplexity.ai/hub/blog/computer-for-enterprise Computer for Enterprise https://www.perplexity.ai/hub/blog/computer-for-enterprise Enterprise Thu, 12 Mar 2026 00:00:00 +0000 Announcing Premium Sources https://www.perplexity.ai/hub/blog/announcing-premium-sources Announcing Premium Sources https://www.perplexity.ai/hub/blog/announcing-premium-sources Company Thu, 12 Mar 2026 00:00:00 +0000 Everything is Computer https://www.perplexity.ai/hub/blog/everything-is-computer Everything is Computer https://www.perplexity.ai/hub/blog/everything-is-computer Company Wed, 11 Mar 2026 00:00:00 +0000 Agent API: A Managed Runtime for Agentic Workflows https://www.perplexity.ai/hub/blog/agent-api-a-managed-runtime-for-agentic-workflows Agent API: A Managed Runtime for Agentic Workflows https://www.perplexity.ai/hub/blog/agent-api-a-managed-runtime-for-agentic-workflows Developers Wed, 11 Mar 2026 00:00:00 +0000 Search API: Better Extraction, Dynamic Benchmarks https://www.perplexity.ai/hub/blog/search-api-better-extraction-dynamic-benchmarks Search API: Better Extraction, Dynamic Benchmarks https://www.perplexity.ai/hub/blog/search-api-better-extraction-dynamic-benchmarks Developers Wed, 11 Mar 2026 00:00:00 +0000 Sandbox API: Isolated Code Execution for AI Agents https://www.perplexity.ai/hub/blog/sandbox-api-isolated-code-execution-for-ai-agents Sandbox API: Isolated Code Execution for AI Agents https://www.perplexity.ai/hub/blog/sandbox-api-isolated-code-execution-for-ai-agents Developers Wed, 11 Mar 2026 00:00:00 +0000 The AI is the Computer https://www.perplexity.ai/hub/blog/the-ai-is-the-computer The AI is the Computer https://www.perplexity.ai/hub/blog/the-ai-is-the-computer Company Tue, 03 Mar 2026 00:00:00 +0000 Perplexity APIs deliver powerful AI to the world’s largest Android device maker https://www.perplexity.ai/hub/blog/perplexity-apis-deliver-powerful-ai-to-the-world’s-largest-android-device-maker Perplexity APIs deliver powerful AI to the world’s largest Android device maker https://www.perplexity.ai/hub/blog/perplexity-apis-deliver-powerful-ai-to-the-world’s-largest-android-device-maker Company Thu, 26 Feb 2026 00:00:00 +0000 Introducing Perplexity Computer https://www.perplexity.ai/hub/blog/introducing-perplexity-computer Introducing Perplexity Computer https://www.perplexity.ai/hub/blog/introducing-perplexity-computer Company Wed, 25 Feb 2026 00:00:00 +0000 How We Built Security Into Comet From Day One https://www.perplexity.ai/hub/blog/how-we-built-security-into-comet-from-day-one How We Built Security Into Comet From Day One https://www.perplexity.ai/hub/blog/how-we-built-security-into-comet-from-day-one Security Fri, 20 Feb 2026 00:00:00 +0000 Introducing Model Council https://www.perplexity.ai/hub/blog/introducing-model-council Introducing Model Council https://www.perplexity.ai/hub/blog/introducing-model-council Company Thu, 05 Feb 2026 00:00:00 +0000 Inside the Rise of Enterprise AI Model-Switching https://www.perplexity.ai/hub/blog/inside-the-rise-of-enterprise-ai-model-switching Inside the Rise of Enterprise AI Model-Switching https://www.perplexity.ai/hub/blog/inside-the-rise-of-enterprise-ai-model-switching Company Tue, 03 Feb 2026 00:00:00 +0000 Finish Your Annual Plan Faster With Perplexity https://www.perplexity.ai/hub/blog/finish-your-annual-plan-faster-with-perplexity Finish Your Annual Plan Faster With Perplexity https://www.perplexity.ai/hub/blog/finish-your-annual-plan-faster-with-perplexity Enterprise Mon, 26 Jan 2026 00:00:00 +0000 Happy 25th Birthday, Wikipedia https://www.perplexity.ai/hub/blog/happy-25th-birthday-wikipedia Happy 25th Birthday, Wikipedia https://www.perplexity.ai/hub/blog/happy-25th-birthday-wikipedia Company Thu, 15 Jan 2026 00:00:00 +0000 Introducing Perplexity for Public Safety Organizations https://www.perplexity.ai/hub/blog/introducing-perplexity-for-public-safety-organizations Introducing Perplexity for Public Safety Organizations https://www.perplexity.ai/hub/blog/introducing-perplexity-for-public-safety-organizations Company Thu, 08 Jan 2026 00:00:00 +0000 How People Use AI Agents https://www.perplexity.ai/hub/blog/how-people-use-ai-agents How People Use AI Agents https://www.perplexity.ai/hub/blog/how-people-use-ai-agents Updates Tue, 09 Dec 2025 00:00:00 +0000 Perplexity x Cristiano Ronaldo https://www.perplexity.ai/hub/blog/perplexity-x-cristiano-ronaldo Perplexity x Cristiano Ronaldo https://www.perplexity.ai/hub/blog/perplexity-x-cristiano-ronaldo Company Thu, 04 Dec 2025 00:00:00 +0000 Building Safer AI Browsers with BrowseSafe https://www.perplexity.ai/hub/blog/building-safer-ai-browsers-with-browsesafe Building Safer AI Browsers with BrowseSafe https://www.perplexity.ai/hub/blog/building-safer-ai-browsers-with-browsesafe Research Tue, 02 Dec 2025 00:00:00 +0000 Introducing AI assistants with memory https://www.perplexity.ai/hub/blog/introducing-ai-assistants-with-memory Introducing AI assistants with memory https://www.perplexity.ai/hub/blog/introducing-ai-assistants-with-memory Company Wed, 26 Nov 2025 00:00:00 +0000 Shopping That Puts You First https://www.perplexity.ai/hub/blog/shopping-that-puts-you-first Shopping That Puts You First https://www.perplexity.ai/hub/blog/shopping-that-puts-you-first Company Tue, 25 Nov 2025 00:00:00 +0000 Comet for Android is Here https://www.perplexity.ai/hub/blog/comet-for-android-is-here Comet for Android is Here https://www.perplexity.ai/hub/blog/comet-for-android-is-here Updates Thu, 20 Nov 2025 00:00:00 +0000 Announcing our Partnership with the United States Government https://www.perplexity.ai/hub/blog/announcing-our-partnership-with-the-united-states-government Announcing our Partnership with the United States Government https://www.perplexity.ai/hub/blog/announcing-our-partnership-with-the-united-states-government Company Wed, 19 Nov 2025 00:00:00 +0000 Comet Assistant puts you in control https://www.perplexity.ai/hub/blog/comet-assistant-puts-you-in-control Comet Assistant puts you in control https://www.perplexity.ai/hub/blog/comet-assistant-puts-you-in-control Company Fri, 14 Nov 2025 00:00:00 +0000 The New Comet Assistant https://www.perplexity.ai/hub/blog/the-new-comet-assistant The New Comet Assistant https://www.perplexity.ai/hub/blog/the-new-comet-assistant Company Thu, 06 Nov 2025 00:00:00 +0000 Bullying is Not Innovation https://www.perplexity.ai/hub/blog/bullying-is-not-innovation Bullying is Not Innovation https://www.perplexity.ai/hub/blog/bullying-is-not-innovation Company Tue, 04 Nov 2025 00:00:00 +0000 Introducing Privacy Snapshot https://www.perplexity.ai/hub/blog/introducing-privacy-snapshot Introducing Privacy Snapshot https://www.perplexity.ai/hub/blog/introducing-privacy-snapshot Company Fri, 31 Oct 2025 00:00:00 +0000 Introducing Perplexity Patents: AI-Powered Patent Search for Everyone https://www.perplexity.ai/hub/blog/introducing-perplexity-patents Introducing Perplexity Patents: AI-Powered Patent Search for Everyone https://www.perplexity.ai/hub/blog/introducing-perplexity-patents Company Thu, 30 Oct 2025 00:00:00 +0000 AI at work: getting more done with less hype https://www.perplexity.ai/hub/blog/ai-at-work-getting-more-done-with-less-hype AI at work: getting more done with less hype https://www.perplexity.ai/hub/blog/ai-at-work-getting-more-done-with-less-hype Company Tue, 28 Oct 2025 00:00:00 +0000 Mitigating Prompt Injection in Comet https://www.perplexity.ai/hub/blog/mitigating-prompt-injection-in-comet Mitigating Prompt Injection in Comet https://www.perplexity.ai/hub/blog/mitigating-prompt-injection-in-comet Company Wed, 22 Oct 2025 00:00:00 +0000 The Internet is Better on Comet https://www.perplexity.ai/hub/blog/comet-is-now-available-to-everyone-worldwide The Internet is Better on Comet https://www.perplexity.ai/hub/blog/comet-is-now-available-to-everyone-worldwide Company Thu, 02 Oct 2025 00:00:00 +0000 Announcing Comet Plus Launch Partners https://www.perplexity.ai/hub/blog/announcing-comet-plus-launch-partners Announcing Comet Plus Launch Partners https://www.perplexity.ai/hub/blog/announcing-comet-plus-launch-partners Company Wed, 01 Oct 2025 00:00:00 +0000 Introducing the Perplexity Search API https://www.perplexity.ai/hub/blog/introducing-the-perplexity-search-api Introducing the Perplexity Search API https://www.perplexity.ai/hub/blog/introducing-the-perplexity-search-api Developers Thu, 25 Sep 2025 00:00:00 +0000 A Personal Assistant for Your Inbox https://www.perplexity.ai/hub/blog/a-personal-assistant-for-your-inbox A Personal Assistant for Your Inbox https://www.perplexity.ai/hub/blog/a-personal-assistant-for-your-inbox Updates Mon, 22 Sep 2025 00:00:00 +0000 Secure Credentials on Comet with 1Password https://www.perplexity.ai/hub/blog/secure-credentials-on-comet-with-1password Secure Credentials on Comet with 1Password https://www.perplexity.ai/hub/blog/secure-credentials-on-comet-with-1password Company Wed, 17 Sep 2025 00:00:00 +0000 Power your organization’s full potential https://www.perplexity.ai/hub/blog/power-your-organization-s-full-potential Power your organization’s full potential https://www.perplexity.ai/hub/blog/power-your-organization-s-full-potential Enterprise Wed, 17 Sep 2025 00:00:00 +0000 Introducing Perplexity for Government https://www.perplexity.ai/hub/blog/introducing-perplexity-for-government Introducing Perplexity for Government https://www.perplexity.ai/hub/blog/introducing-perplexity-for-government Company Mon, 08 Sep 2025 00:00:00 +0000 Introducing Comet Plus https://www.perplexity.ai/hub/blog/introducing-comet-plus Introducing Comet Plus https://www.perplexity.ai/hub/blog/introducing-comet-plus Company Mon, 25 Aug 2025 00:00:00 +0000 The Intelligent Business: Introducing Comet for Enterprise Pro https://www.perplexity.ai/hub/blog/the-intelligent-business-introducing-comet-for-enterprise-pro The Intelligent Business: Introducing Comet for Enterprise Pro https://www.perplexity.ai/hub/blog/the-intelligent-business-introducing-comet-for-enterprise-pro Company Thu, 14 Aug 2025 00:00:00 +0000 Perplexity x Theo Von’s This Past Weekend https://www.perplexity.ai/hub/blog/perplexity-x-theo-von-s-this-past-weekend Perplexity x Theo Von’s This Past Weekend https://www.perplexity.ai/hub/blog/perplexity-x-theo-von-s-this-past-weekend Company Thu, 14 Aug 2025 00:00:00 +0000 GPT-OSS on Day 0 https://www.perplexity.ai/hub/blog/gpt-oss-on-day-0 GPT-OSS on Day 0 https://www.perplexity.ai/hub/blog/gpt-oss-on-day-0 Developers Fri, 08 Aug 2025 00:00:00 +0000 Book a Table with Perplexity and OpenTable https://www.perplexity.ai/hub/blog/book-a-table-with-perplexity-and-opentable Book a Table with Perplexity and OpenTable https://www.perplexity.ai/hub/blog/book-a-table-with-perplexity-and-opentable Company Mon, 04 Aug 2025 00:00:00 +0000 Agents or Bots? Making Sense of AI on the Open Web https://www.perplexity.ai/hub/blog/agents-or-bots-making-sense-of-ai-on-the-open-web Agents or Bots? Making Sense of AI on the Open Web https://www.perplexity.ai/hub/blog/agents-or-bots-making-sense-of-ai-on-the-open-web Company Mon, 04 Aug 2025 00:00:00 +0000 Disaggregated Prefill and Decode https://www.perplexity.ai/hub/blog/disaggregated-prefill-and-decode Disaggregated Prefill and Decode https://www.perplexity.ai/hub/blog/disaggregated-prefill-and-decode Developers Fri, 01 Aug 2025 00:00:00 +0000 Welcoming Gannett to the Perplexity Publisher Program https://www.perplexity.ai/hub/blog/welcoming-gannett-to-the-perplexity-publisher-program Welcoming Gannett to the Perplexity Publisher Program https://www.perplexity.ai/hub/blog/welcoming-gannett-to-the-perplexity-publisher-program Company Wed, 30 Jul 2025 00:00:00 +0000 Introducing Comet: Browse at the speed of thought https://www.perplexity.ai/hub/blog/introducing-comet Introducing Comet: Browse at the speed of thought https://www.perplexity.ai/hub/blog/introducing-comet Company Wed, 09 Jul 2025 00:00:00 +0000 Introducing Perplexity Max https://www.perplexity.ai/hub/blog/introducing-perplexity-max Introducing Perplexity Max https://www.perplexity.ai/hub/blog/introducing-perplexity-max Company Wed, 02 Jul 2025 00:00:00 +0000 Bringing European AI Models to Global Audiences https://www.perplexity.ai/hub/blog/bringing-european-ai-models-to-global-audiences Bringing European AI Models to Global Audiences https://www.perplexity.ai/hub/blog/bringing-european-ai-models-to-global-audiences Company Wed, 11 Jun 2025 00:00:00 +0000 Accelerating Sonar Through Speculation https://www.perplexity.ai/hub/blog/accelerating-sonar-through-speculation Accelerating Sonar Through Speculation https://www.perplexity.ai/hub/blog/accelerating-sonar-through-speculation Research Tue, 10 Jun 2025 00:00:00 +0000 Answers for Every Investor https://www.perplexity.ai/hub/blog/answers-for-every-investor Answers for Every Investor https://www.perplexity.ai/hub/blog/answers-for-every-investor Updates Thu, 05 Jun 2025 00:00:00 +0000 Introducing Perplexity Labs https://www.perplexity.ai/hub/blog/introducing-perplexity-labs Introducing Perplexity Labs https://www.perplexity.ai/hub/blog/introducing-perplexity-labs Company Thu, 29 May 2025 00:00:00 +0000 Perplexity x Lewis Hamilton https://www.perplexity.ai/hub/blog/perplexity-x-lewis-hamilton Perplexity x Lewis Hamilton https://www.perplexity.ai/hub/blog/perplexity-x-lewis-hamilton Company Wed, 28 May 2025 00:00:00 +0000 More Value In Every Answer: New Benefits For Every Level of Perplexity User https://www.perplexity.ai/hub/blog/more-value-in-every-answer-new-benefits-for-every-level-of-perplexity-user More Value In Every Answer: New Benefits For Every Level of Perplexity User https://www.perplexity.ai/hub/blog/more-value-in-every-answer-new-benefits-for-every-level-of-perplexity-user Company Wed, 21 May 2025 00:00:00 +0000 Perplexity and SAP: Turbocharging Joule with Real-Time Answers for Every Enterprise https://www.perplexity.ai/hub/blog/perplexity-and-sap-turbocharging-joule-with-real-time-answers-for-every-enterprise Perplexity and SAP: Turbocharging Joule with Real-Time Answers for Every Enterprise https://www.perplexity.ai/hub/blog/perplexity-and-sap-turbocharging-joule-with-real-time-answers-for-every-enterprise Company Tue, 20 May 2025 00:00:00 +0000 Perplexity Partners with Wiley to Power Educational AI Search https://www.perplexity.ai/hub/blog/perplexity-partners-with-wiley-to-power-educational-ai-search Perplexity Partners with Wiley to Power Educational AI Search https://www.perplexity.ai/hub/blog/perplexity-partners-with-wiley-to-power-educational-ai-search Company Thu, 08 May 2025 00:00:00 +0000 RL Training For Math Reasoning https://www.perplexity.ai/hub/blog/rl-training-for-math-reasoning RL Training For Math Reasoning https://www.perplexity.ai/hub/blog/rl-training-for-math-reasoning Research Mon, 05 May 2025 00:00:00 +0000 Announcing Our Global Partnership with Motorola https://www.perplexity.ai/hub/blog/announcing-our-global-partnership-with-motorola Announcing Our Global Partnership with Motorola https://www.perplexity.ai/hub/blog/announcing-our-global-partnership-with-motorola Company Thu, 24 Apr 2025 00:00:00 +0000 Choice is the Remedy https://www.perplexity.ai/hub/blog/choice-is-the-remedy Choice is the Remedy https://www.perplexity.ai/hub/blog/choice-is-the-remedy Company Mon, 21 Apr 2025 00:00:00 +0000 Lower Latency and Higher Throughput with Multi-node DeepSeek Deployment https://www.perplexity.ai/hub/blog/lower-latency-and-higher-throughput-with-multi-node-deepseek-deployment Lower Latency and Higher Throughput with Multi-node DeepSeek Deployment https://www.perplexity.ai/hub/blog/lower-latency-and-higher-throughput-with-multi-node-deepseek-deployment Research Fri, 18 Apr 2025 00:00:00 +0000 How Perplexity Enterprise Pro Keeps Your Data Secure https://www.perplexity.ai/hub/blog/how-perplexity-enterprise-pro-keeps-your-data-secure How Perplexity Enterprise Pro Keeps Your Data Secure https://www.perplexity.ai/hub/blog/how-perplexity-enterprise-pro-keeps-your-data-secure Company Thu, 17 Apr 2025 00:00:00 +0000 Perplexity Sonar Dominates New Search Arena Evaluation https://www.perplexity.ai/hub/blog/perplexity-sonar-dominates-new-search-arena-evolution Perplexity Sonar Dominates New Search Arena Evaluation https://www.perplexity.ai/hub/blog/perplexity-sonar-dominates-new-search-arena-evolution Company Mon, 14 Apr 2025 00:00:00 +0000 Efficient and Portable Mixture-of-Experts Communication https://www.perplexity.ai/hub/blog/efficient-and-portable-mixture-of-experts-communication Efficient and Portable Mixture-of-Experts Communication https://www.perplexity.ai/hub/blog/efficient-and-portable-mixture-of-experts-communication Research Wed, 02 Apr 2025 00:00:00 +0000 Rebuilding TikTok in America https://www.perplexity.ai/hub/blog/rebuilding-tiktok-in-america Rebuilding TikTok in America https://www.perplexity.ai/hub/blog/rebuilding-tiktok-in-america Company Fri, 21 Mar 2025 00:00:00 +0000 Improved Sonar Models: Industry Leading Performance at Lower Costs https://www.perplexity.ai/hub/blog/new-sonar-search-modes-outperform-openai-in-cost-and-performance Improved Sonar Models: Industry Leading Performance at Lower Costs https://www.perplexity.ai/hub/blog/new-sonar-search-modes-outperform-openai-in-cost-and-performance Company Wed, 19 Mar 2025 00:00:00 +0000 Perplexity Expands Partnership with SoftBank to Launch Enterprise Pro Japan https://www.perplexity.ai/hub/blog/perplexity-expands-partnership-with-softbank-to-launch-enterprise-pro-japan Perplexity Expands Partnership with SoftBank to Launch Enterprise Pro Japan https://www.perplexity.ai/hub/blog/perplexity-expands-partnership-with-softbank-to-launch-enterprise-pro-japan Company Mon, 17 Mar 2025 00:00:00 +0000 Open-sourcing R1 1776 https://www.perplexity.ai/hub/blog/open-sourcing-r1-1776 Open-sourcing R1 1776 https://www.perplexity.ai/hub/blog/open-sourcing-r1-1776 Research Tue, 18 Feb 2025 00:00:00 +0000 Introducing Perplexity Deep Research https://www.perplexity.ai/hub/blog/introducing-perplexity-deep-research Introducing Perplexity Deep Research https://www.perplexity.ai/hub/blog/introducing-perplexity-deep-research Company Fri, 14 Feb 2025 00:00:00 +0000 Meet New Sonar https://www.perplexity.ai/hub/blog/meet-new-sonar Meet New Sonar https://www.perplexity.ai/hub/blog/meet-new-sonar Updates Tue, 11 Feb 2025 00:00:00 +0000 High-Performance GPU Memory Transfer on AWS Sagemaker Hyperpod https://www.perplexity.ai/hub/blog/high-performance-gpu-memory-transfer-on-aws High-Performance GPU Memory Transfer on AWS Sagemaker Hyperpod https://www.perplexity.ai/hub/blog/high-performance-gpu-memory-transfer-on-aws Research Mon, 10 Feb 2025 00:00:00 +0000 Introducing the Sonar Pro API by Perplexity https://www.perplexity.ai/hub/blog/introducing-the-sonar-pro-api Introducing the Sonar Pro API by Perplexity https://www.perplexity.ai/hub/blog/introducing-the-sonar-pro-api Developers Tue, 21 Jan 2025 00:00:00 +0000 Perplexity’s Fall 2024 Campus Strategist Program https://www.perplexity.ai/hub/blog/perplexity-s-2024-campus-strategist-program Perplexity’s Fall 2024 Campus Strategist Program https://www.perplexity.ai/hub/blog/perplexity-s-2024-campus-strategist-program Company Wed, 18 Dec 2024 00:00:00 +0000 Welcoming Carbon to the Perplexity Team https://www.perplexity.ai/hub/blog/welcoming-carbon-to-the-perplexity-team Welcoming Carbon to the Perplexity Team https://www.perplexity.ai/hub/blog/welcoming-carbon-to-the-perplexity-team Company Wed, 18 Dec 2024 00:00:00 +0000 Perplexity Expands Publisher Program with 15 New Media Partners https://www.perplexity.ai/hub/blog/perplexity-expands-publisher-program-with-15-new-media-partners Perplexity Expands Publisher Program with 15 New Media Partners https://www.perplexity.ai/hub/blog/perplexity-expands-publisher-program-with-15-new-media-partners Company Thu, 05 Dec 2024 00:00:00 +0000 Research nonprofits with Charity Navigator on Perplexity https://www.perplexity.ai/hub/blog/research-nonprofits-with-charity-navigator-on-perplexity Research nonprofits with Charity Navigator on Perplexity https://www.perplexity.ai/hub/blog/research-nonprofits-with-charity-navigator-on-perplexity Company Tue, 03 Dec 2024 00:00:00 +0000 Shop like a Pro https://www.perplexity.ai/hub/blog/shop-like-a-pro Shop like a Pro https://www.perplexity.ai/hub/blog/shop-like-a-pro Company Mon, 18 Nov 2024 00:00:00 +0000 Why we’re experimenting with advertising https://www.perplexity.ai/hub/blog/why-we-re-experimenting-with-advertising Why we’re experimenting with advertising https://www.perplexity.ai/hub/blog/why-we-re-experimenting-with-advertising Company Tue, 12 Nov 2024 00:00:00 +0000 Introducing the Election Information Hub https://www.perplexity.ai/hub/blog/introducing-the-election-information-hub Introducing the Election Information Hub https://www.perplexity.ai/hub/blog/introducing-the-election-information-hub Company Fri, 01 Nov 2024 00:00:00 +0000 About the Dow Jones lawsuit https://www.perplexity.ai/hub/blog/about-the-dow-jones-lawsuit About the Dow Jones lawsuit https://www.perplexity.ai/hub/blog/about-the-dow-jones-lawsuit Company Thu, 24 Oct 2024 00:00:00 +0000 A student's guide to using Perplexity Spaces https://www.perplexity.ai/hub/blog/a-student-s-guide-to-using-perplexity-spaces A student's guide to using Perplexity Spaces https://www.perplexity.ai/hub/blog/a-student-s-guide-to-using-perplexity-spaces Company Tue, 22 Oct 2024 00:00:00 +0000 Introducing Internal Knowledge Search and Spaces https://www.perplexity.ai/hub/blog/introducing-internal-knowledge-search-and-spaces Introducing Internal Knowledge Search and Spaces https://www.perplexity.ai/hub/blog/introducing-internal-knowledge-search-and-spaces Company Thu, 17 Oct 2024 00:00:00 +0000 Meet our First Channel Partners & Data Integrators https://www.perplexity.ai/hub/blog/meet-our-first-channel-partners-data-integrators Meet our First Channel Partners & Data Integrators https://www.perplexity.ai/hub/blog/meet-our-first-channel-partners-data-integrators Company Thu, 17 Oct 2024 00:00:00 +0000 Getting started with Perplexity https://www.perplexity.ai/hub/blog/getting-started-with-perplexity Getting started with Perplexity https://www.perplexity.ai/hub/blog/getting-started-with-perplexity Company Tue, 01 Oct 2024 00:00:00 +0000 Redeem a free year of Perplexity Pro through Xfinity Rewards https://www.perplexity.ai/hub/blog/redeem-a-free-year-of-perplexity-pro-through-xfinity-rewards Redeem a free year of Perplexity Pro through Xfinity Rewards https://www.perplexity.ai/hub/blog/redeem-a-free-year-of-perplexity-pro-through-xfinity-rewards Company Thu, 29 Aug 2024 00:00:00 +0000 Perplexity makes gift to Northwestern Medill to research AI and journalism https://www.perplexity.ai/hub/blog/perplexity-makes-gift-to-northwestern-medill-to-research-ai-and-journalism Perplexity makes gift to Northwestern Medill to research AI and journalism https://www.perplexity.ai/hub/blog/perplexity-makes-gift-to-northwestern-medill-to-research-ai-and-journalism Company Thu, 08 Aug 2024 00:00:00 +0000 Eligible Uber One members can now unlock a complimentary full year of Perplexity Pro https://www.perplexity.ai/hub/blog/eligible-uber-one-members-can-now-unlock-a-complimentary-full-year-of-perplexity-pro Eligible Uber One members can now unlock a complimentary full year of Perplexity Pro https://www.perplexity.ai/hub/blog/eligible-uber-one-members-can-now-unlock-a-complimentary-full-year-of-perplexity-pro Company Thu, 01 Aug 2024 00:00:00 +0000 Introducing the Perplexity Publishers’ Program https://www.perplexity.ai/hub/blog/introducing-the-perplexity-publishers-program Introducing the Perplexity Publishers’ Program https://www.perplexity.ai/hub/blog/introducing-the-perplexity-publishers-program Company Tue, 30 Jul 2024 00:00:00 +0000 Perplexity collaborates with Amazon Web Services to launch Enterprise Pro https://www.perplexity.ai/hub/blog/perplexity-collaborates-with-amazon-web-services-to-launch-enterprise-pro Perplexity collaborates with Amazon Web Services to launch Enterprise Pro https://www.perplexity.ai/hub/blog/perplexity-collaborates-with-amazon-web-services-to-launch-enterprise-pro Company Tue, 09 Jul 2024 00:00:00 +0000 Pro Search: Upgraded for more advanced problem-solving https://www.perplexity.ai/hub/blog/pro-search-upgraded-for-more-advanced-problem-solving Pro Search: Upgraded for more advanced problem-solving https://www.perplexity.ai/hub/blog/pro-search-upgraded-for-more-advanced-problem-solving Updates Tue, 02 Jul 2024 00:00:00 +0000 Bringing Perplexity to education and not-for-profits https://www.perplexity.ai/hub/blog/bringing-perplexity-to-education-and-not-for-profits Bringing Perplexity to education and not-for-profits https://www.perplexity.ai/hub/blog/bringing-perplexity-to-education-and-not-for-profits Company Thu, 27 Jun 2024 00:00:00 +0000 Introducing Perplexity Pages https://www.perplexity.ai/hub/blog/perplexity-pages Introducing Perplexity Pages https://www.perplexity.ai/hub/blog/perplexity-pages Company Thu, 30 May 2024 00:00:00 +0000 Perplexity launches Enterprise Pro https://www.perplexity.ai/hub/blog/perplexity-launches-enterprise-pro Perplexity launches Enterprise Pro https://www.perplexity.ai/hub/blog/perplexity-launches-enterprise-pro Company Tue, 23 Apr 2024 00:00:00 +0000 Perplexity Pro is coming to all SK Telecom users https://www.perplexity.ai/hub/blog/perplexity-pro-is-coming-to-all-sk-telecom-users Perplexity Pro is coming to all SK Telecom users https://www.perplexity.ai/hub/blog/perplexity-pro-is-coming-to-all-sk-telecom-users Company Mon, 26 Feb 2024 00:00:00 +0000 Perplexity Partners with ElevenLabs to launch 'Discover Daily' Podcast https://www.perplexity.ai/hub/blog/perplexity-partners-with-elevenlabs-to-launch-discover-daily-podcast Perplexity Partners with ElevenLabs to launch 'Discover Daily' Podcast https://www.perplexity.ai/hub/blog/perplexity-partners-with-elevenlabs-to-launch-discover-daily-podcast Company Fri, 23 Feb 2024 00:00:00 +0000 Arc x Perplexity https://www.perplexity.ai/hub/blog/arc-x-perplexity Arc x Perplexity https://www.perplexity.ai/hub/blog/arc-x-perplexity Company Fri, 26 Jan 2024 00:00:00 +0000 Perplexity raises Series B funding round https://www.perplexity.ai/hub/blog/perplexity-raises-series-b-funding-round Perplexity raises Series B funding round https://www.perplexity.ai/hub/blog/perplexity-raises-series-b-funding-round Company Thu, 04 Jan 2024 00:00:00 +0000 Introducing PPLX Online LLMs https://www.perplexity.ai/hub/blog/introducing-pplx-online-llms Introducing PPLX Online LLMs https://www.perplexity.ai/hub/blog/introducing-pplx-online-llms Company Wed, 29 Nov 2023 00:00:00 +0000 Turbocharging Llama 2 70B with NVIDIA H100 https://www.perplexity.ai/hub/blog/turbocharging-llama-2-70b-with-nvidia-h100 Turbocharging Llama 2 70B with NVIDIA H100 https://www.perplexity.ai/hub/blog/turbocharging-llama-2-70b-with-nvidia-h100 Research Fri, 17 Nov 2023 00:00:00 +0000 Introducing pplx-api https://www.perplexity.ai/hub/blog/introducing-pplx-api Introducing pplx-api https://www.perplexity.ai/hub/blog/introducing-pplx-api Developers Wed, 04 Oct 2023 00:00:00 +0000 Perplexity raises Series A funding round https://www.perplexity.ai/hub/blog/announcing-our-series-a-funding-round-and-mobile-app-launch Perplexity raises Series A funding round https://www.perplexity.ai/hub/blog/announcing-our-series-a-funding-round-and-mobile-app-launch Company Tue, 28 Mar 2023 00:00:00 +0000 ================================================ FILE: feeds/feed_pinecone.xml ================================================ Pinecone Blog https://www.pinecone.io/blog/ Latest updates from Pinecone http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 11:22:40 +0000 Full Text Search: Architecture and Design https://www.pinecone.io/blog/full-text-search-architecture/ Full Text Search: Architecture and Design https://www.pinecone.io/blog/full-text-search-architecture/ Engineering Thu, 07 May 2026 00:00:00 +0000 Full Text Search in Pinecone, Now in Public Preview https://www.pinecone.io/blog/full-text-search/ Full Text Search in Pinecone, Now in Public Preview https://www.pinecone.io/blog/full-text-search/ Featured Thu, 07 May 2026 00:00:00 +0000 Builder Plan: for the stage between prototype and scale https://www.pinecone.io/blog/builder-plan/ Builder Plan: for the stage between prototype and scale https://www.pinecone.io/blog/builder-plan/ Company, Product Wed, 06 May 2026 00:00:00 +0000 Introducing Pinecone Marketplace:  Getting to Production in Minutes https://www.pinecone.io/blog/marketplace/ Introducing Pinecone Marketplace:  Getting to Production in Minutes https://www.pinecone.io/blog/marketplace/ Product Tue, 05 May 2026 00:00:00 +0000 Better Models Won’t Save Your Agent https://www.pinecone.io/blog/introducing-nexus-knowledge-engine/ Better Models Won’t Save Your Agent https://www.pinecone.io/blog/introducing-nexus-knowledge-engine/ Engineering Mon, 04 May 2026 00:00:00 +0000 Pinecone Nexus: The Knowledge Engine for Agents https://www.pinecone.io/blog/knowledge-infrastructure-for-agents/ Pinecone Nexus: The Knowledge Engine for Agents https://www.pinecone.io/blog/knowledge-infrastructure-for-agents/ Featured Mon, 04 May 2026 00:00:00 +0000 Pinecone Dedicated Read Nodes: Now Generally Available https://www.pinecone.io/blog/dedicated-read-nodes-ga/ Pinecone Dedicated Read Nodes: Now Generally Available https://www.pinecone.io/blog/dedicated-read-nodes-ga/ Product Wed, 15 Apr 2026 00:00:00 +0000 Four New GA Features for Dedicated Read Nodes That Give Teams More Control and Observability https://www.pinecone.io/blog/dedicated-read-nodes-ga-features/ Four New GA Features for Dedicated Read Nodes That Give Teams More Control and Observability https://www.pinecone.io/blog/dedicated-read-nodes-ga-features/ Product Wed, 15 Apr 2026 00:00:00 +0000 Load Balancing AI Services for Availability and Speed https://www.pinecone.io/blog/load-balancing/ Load Balancing AI Services for Availability and Speed https://www.pinecone.io/blog/load-balancing/ Engineering Tue, 14 Apr 2026 00:00:00 +0000 Pinecone Assistant: A Managed Knowledge Layer for Production AI Applications https://www.pinecone.io/blog/assistant-managed-knowledge-layer/ Pinecone Assistant: A Managed Knowledge Layer for Production AI Applications https://www.pinecone.io/blog/assistant-managed-knowledge-layer/ Product Thu, 02 Apr 2026 00:00:00 +0000 Garbage Day: How Pinecone Safely Deletes Billions of Objects at Scale https://www.pinecone.io/blog/janitor/ Garbage Day: How Pinecone Safely Deletes Billions of Objects at Scale https://www.pinecone.io/blog/janitor/ Engineering Thu, 05 Mar 2026 00:00:00 +0000 When "Performance" Means Two Different Things https://www.pinecone.io/blog/performance-as-a-measurement/ When "Performance" Means Two Different Things https://www.pinecone.io/blog/performance-as-a-measurement/ Research Tue, 03 Mar 2026 00:00:00 +0000 Pinecone BYOC: Pinecone in your AWS, GCP, or Azure account, no vendor access https://www.pinecone.io/blog/byoc/ Pinecone BYOC: Pinecone in your AWS, GCP, or Azure account, no vendor access https://www.pinecone.io/blog/byoc/ Product Thu, 19 Feb 2026 00:00:00 +0000 Use the Pinecone Plugin for Claude Code to develop AI Applications Faster https://www.pinecone.io/blog/pinecone-plugin-for-claude-code/ Use the Pinecone Plugin for Claude Code to develop AI Applications Faster https://www.pinecone.io/blog/pinecone-plugin-for-claude-code/ Product Wed, 11 Feb 2026 00:00:00 +0000 Millions at Stake: How Melange's High-Recall Retrieval Prevents Litigation Collapse https://www.pinecone.io/blog/millions-at-stake-melange/ Millions at Stake: How Melange's High-Recall Retrieval Prevents Litigation Collapse https://www.pinecone.io/blog/millions-at-stake-melange/ Customers Mon, 09 Feb 2026 00:00:00 +0000 Pinecone Assistant Node in n8n: Turn Any Data Source Into Knowledge https://www.pinecone.io/blog/pinecone-assistant-node/ Pinecone Assistant Node in n8n: Turn Any Data Source Into Knowledge https://www.pinecone.io/blog/pinecone-assistant-node/ Product Wed, 28 Jan 2026 00:00:00 +0000 Pinecone Dedicated Read Nodes are now in Public Preview https://www.pinecone.io/blog/dedicated-read-nodes/ Pinecone Dedicated Read Nodes are now in Public Preview https://www.pinecone.io/blog/dedicated-read-nodes/ Product Mon, 01 Dec 2025 00:00:00 +0000 New Bulk Data Operations: Update, Delete, and Fetch by Metadata https://www.pinecone.io/blog/update-delete-and-fetch-by-metadata/ New Bulk Data Operations: Update, Delete, and Fetch by Metadata https://www.pinecone.io/blog/update-delete-and-fetch-by-metadata/ Product Thu, 30 Oct 2025 00:00:00 +0000 The Hidden Cost of Building: Lessons from Aquant https://www.pinecone.io/blog/hidden-cost-of-building-aquant/ The Hidden Cost of Building: Lessons from Aquant https://www.pinecone.io/blog/hidden-cost-of-building-aquant/ Customers Wed, 22 Oct 2025 00:00:00 +0000 Simplifying Vector Embeddings with Pinecone Integrated Inference Capabilities https://www.pinecone.io/blog/simplifying-vector-embeddings-with-pinecone-integrated-inference/ Simplifying Vector Embeddings with Pinecone Integrated Inference Capabilities https://www.pinecone.io/blog/simplifying-vector-embeddings-with-pinecone-integrated-inference/ Company, Product Thu, 09 Oct 2025 00:00:00 +0000 Pinecone joins Microsoft Marketplace as a Launch Partner https://www.pinecone.io/blog/pinecone-joins-microsoft-marketplace-as-a-launch-partner/ Pinecone joins Microsoft Marketplace as a Launch Partner https://www.pinecone.io/blog/pinecone-joins-microsoft-marketplace-as-a-launch-partner/ Product Thu, 25 Sep 2025 00:00:00 +0000 Build an AI knowledge assistant with Google Docs and Pinecone https://www.pinecone.io/blog/build-an-ai-knowledge-assistant-with-google-docs-and-pinecone/ Build an AI knowledge assistant with Google Docs and Pinecone https://www.pinecone.io/blog/build-an-ai-knowledge-assistant-with-google-docs-and-pinecone/ Product Wed, 17 Sep 2025 00:00:00 +0000 GTM Engineering: Clay + Pinecone for AI-powered Sales Outbound https://www.pinecone.io/blog/gtm-engineering-clay-pinecone-for-ai-powered-sales-outbound/ GTM Engineering: Clay + Pinecone for AI-powered Sales Outbound https://www.pinecone.io/blog/gtm-engineering-clay-pinecone-for-ai-powered-sales-outbound/ Product Wed, 17 Sep 2025 00:00:00 +0000 Moving Pinecone forward with Ash Ashutosh as CEO and Edo spearheading our growing AI ambitions as Chief Scientist https://www.pinecone.io/blog/growing-ai-ambitions/ Moving Pinecone forward with Ash Ashutosh as CEO and Edo spearheading our growing AI ambitions as Chief Scientist https://www.pinecone.io/blog/growing-ai-ambitions/ Company Mon, 08 Sep 2025 00:00:00 +0000 Announcing Pinecone Pioneers: A Program for Builders, Organizers, and Community Leaders https://www.pinecone.io/blog/announcing-pinecone-pioneers-program/ Announcing Pinecone Pioneers: A Program for Builders, Organizers, and Community Leaders https://www.pinecone.io/blog/announcing-pinecone-pioneers-program/ Company Thu, 07 Aug 2025 00:00:00 +0000 Build more knowledgeable AI applications with new LLMs and greater control in Pinecone Assistant https://www.pinecone.io/blog/assistant-new-llms/ Build more knowledgeable AI applications with new LLMs and greater control in Pinecone Assistant https://www.pinecone.io/blog/assistant-new-llms/ Product Wed, 18 Jun 2025 00:00:00 +0000 #NYTECHWEEK 2025 https://www.pinecone.io/blog/a16z-nytechweek-2025/ #NYTECHWEEK 2025 https://www.pinecone.io/blog/a16z-nytechweek-2025/ Company Tue, 17 Jun 2025 00:00:00 +0000 Cascading retrieval with multi-vector representations: balancing efficiency and effectiveness https://www.pinecone.io/blog/cascading-retrieval-with-multi-vector-representations/ Cascading retrieval with multi-vector representations: balancing efficiency and effectiveness https://www.pinecone.io/blog/cascading-retrieval-with-multi-vector-representations/ Research Wed, 28 May 2025 00:00:00 +0000 Vector databases aren't just for large-scale enterprise AI https://www.pinecone.io/blog/vector-databases-not-just-for-large-enterprise-ai/ Vector databases aren't just for large-scale enterprise AI https://www.pinecone.io/blog/vector-databases-not-just-for-large-enterprise-ai/ Product Mon, 26 May 2025 00:00:00 +0000 Build secure, scalable agentic AI workflows with Rubrik Annapurna and Pinecone https://www.pinecone.io/blog/secure-agentic-workflows-rubrik/ Build secure, scalable agentic AI workflows with Rubrik Annapurna and Pinecone https://www.pinecone.io/blog/secure-agentic-workflows-rubrik/ Product, Customers Thu, 24 Apr 2025 00:00:00 +0000 Add context to your agent with Pinecone Assistant MCP remote server https://www.pinecone.io/blog/assistant-MCP/ Add context to your agent with Pinecone Assistant MCP remote server https://www.pinecone.io/blog/assistant-MCP/ Product Tue, 22 Apr 2025 00:00:00 +0000 Tool up: Pinecone’s first MCP servers are here https://www.pinecone.io/blog/first-MCPs/ Tool up: Pinecone’s first MCP servers are here https://www.pinecone.io/blog/first-MCPs/ Product Tue, 22 Apr 2025 00:00:00 +0000 Optimizing Pinecone for agents (and more) https://www.pinecone.io/blog/optimizing-pinecone/ Optimizing Pinecone for agents (and more) https://www.pinecone.io/blog/optimizing-pinecone/ Product, Engineering Mon, 17 Mar 2025 00:00:00 +0000 Launch Week: Pinecone for agents, search, recommendations, and more https://www.pinecone.io/blog/launch-week-march-2025/ Launch Week: Pinecone for agents, search, recommendations, and more https://www.pinecone.io/blog/launch-week-march-2025/ Product Mon, 17 Mar 2025 00:00:00 +0000 Retrieval Inference for scale and performance https://www.pinecone.io/blog/optimizing-retrieval-inference/ Retrieval Inference for scale and performance https://www.pinecone.io/blog/optimizing-retrieval-inference/ Engineering Wed, 12 Mar 2025 00:00:00 +0000 Evolving Pinecone's architecture to meet the demands of Knowledgeable AI https://www.pinecone.io/blog/evolving-pinecone-for-knowledgeable-ai/ Evolving Pinecone's architecture to meet the demands of Knowledgeable AI https://www.pinecone.io/blog/evolving-pinecone-for-knowledgeable-ai/ Product, Engineering Tue, 25 Feb 2025 00:00:00 +0000 Bringing the leading vector database to your cloud https://www.pinecone.io/blog/byoc-early-access/ Bringing the leading vector database to your cloud https://www.pinecone.io/blog/byoc-early-access/ Product Thu, 20 Feb 2025 00:00:00 +0000 Easily build knowledgeable chat and agent-based applications in minutes with Pinecone Assistant, now generally available https://www.pinecone.io/blog/pinecone-assistant-generally-available/ Easily build knowledgeable chat and agent-based applications in minutes with Pinecone Assistant, now generally available https://www.pinecone.io/blog/pinecone-assistant-generally-available/ Product Wed, 22 Jan 2025 00:00:00 +0000 Accelerate prototyping and development with Pinecone Local https://www.pinecone.io/blog/pinecone-local/ Accelerate prototyping and development with Pinecone Local https://www.pinecone.io/blog/pinecone-local/ Product Fri, 06 Dec 2024 00:00:00 +0000 Introducing cascading retrieval: Unifying dense and sparse with reranking https://www.pinecone.io/blog/cascading-retrieval/ Introducing cascading retrieval: Unifying dense and sparse with reranking https://www.pinecone.io/blog/cascading-retrieval/ Research Mon, 02 Dec 2024 00:00:00 +0000 Introducing Pinecone Rerank V0 https://www.pinecone.io/blog/pinecone-rerank-v0-announcement/ Introducing Pinecone Rerank V0 https://www.pinecone.io/blog/pinecone-rerank-v0-announcement/ Research Mon, 02 Dec 2024 00:00:00 +0000 Strengthening security and increasing control with CMEK and API key roles https://www.pinecone.io/blog/strengthening-security-and-control/ Strengthening security and increasing control with CMEK and API key roles https://www.pinecone.io/blog/strengthening-security-and-control/ Product Mon, 02 Dec 2024 00:00:00 +0000 Introducing integrated inference: Embed, rerank, and retrieve your data with a single API https://www.pinecone.io/blog/integrated-inference/ Introducing integrated inference: Embed, rerank, and retrieve your data with a single API https://www.pinecone.io/blog/integrated-inference/ Product Mon, 02 Dec 2024 00:00:00 +0000 From Idea to Action: How Pinecone Assistant Meaningfully Accelerates AI Business https://www.pinecone.io/blog/pinecone-assistant-accelerates-business/ From Idea to Action: How Pinecone Assistant Meaningfully Accelerates AI Business https://www.pinecone.io/blog/pinecone-assistant-accelerates-business/ Product Thu, 21 Nov 2024 00:00:00 +0000 Building AI apps on Azure with Pinecone just got a lot easier https://www.pinecone.io/blog/building-ai-apps-on-azure-with-pinecone-just-got-a-lot-easier/ Building AI apps on Azure with Pinecone just got a lot easier https://www.pinecone.io/blog/building-ai-apps-on-azure-with-pinecone-just-got-a-lot-easier/ Product Tue, 19 Nov 2024 00:00:00 +0000 Unlock enhanced performance and usage monitoring with Datadog and new Prometheus endpoints https://www.pinecone.io/blog/datadog-prometheus-for-serverless/ Unlock enhanced performance and usage monitoring with Datadog and new Prometheus endpoints https://www.pinecone.io/blog/datadog-prometheus-for-serverless/ Product Wed, 06 Nov 2024 00:00:00 +0000 September 2024 Product Update https://www.pinecone.io/blog/september-2024-product-update/ September 2024 Product Update https://www.pinecone.io/blog/september-2024-product-update/ Product Tue, 01 Oct 2024 00:00:00 +0000 Introducing import from object storage for more efficient data transfer to Pinecone serverless https://www.pinecone.io/blog/import-from-object-storage/ Introducing import from object storage for more efficient data transfer to Pinecone serverless https://www.pinecone.io/blog/import-from-object-storage/ Product Tue, 24 Sep 2024 00:00:00 +0000 Simplify, enhance, and evaluate RAG development with Pinecone Assistant, now in public preview https://www.pinecone.io/blog/pinecone-assistant-for-all/ Simplify, enhance, and evaluate RAG development with Pinecone Assistant, now in public preview https://www.pinecone.io/blog/pinecone-assistant-for-all/ Product Wed, 18 Sep 2024 00:00:00 +0000 August 2024 Product Update https://www.pinecone.io/blog/august-2024-product-update/ August 2024 Product Update https://www.pinecone.io/blog/august-2024-product-update/ Product Tue, 03 Sep 2024 00:00:00 +0000 Pinecone serverless is now generally available on Google Cloud, adding knowledge to AI assistants and other applications https://www.pinecone.io/blog/gcp-serverless-ga/ Pinecone serverless is now generally available on Google Cloud, adding knowledge to AI assistants and other applications https://www.pinecone.io/blog/gcp-serverless-ga/ Product Tue, 27 Aug 2024 00:00:00 +0000 Build knowledgeable AI with Pinecone serverless, now generally available on Microsoft Azure https://www.pinecone.io/blog/azure-serverless-ga/ Build knowledgeable AI with Pinecone serverless, now generally available on Microsoft Azure https://www.pinecone.io/blog/azure-serverless-ga/ Product Tue, 27 Aug 2024 00:00:00 +0000 Introducing reranking to Pinecone Inference to simplify building accurate AI https://www.pinecone.io/blog/introducing-reranking-to-pinecone-inference/ Introducing reranking to Pinecone Inference to simplify building accurate AI https://www.pinecone.io/blog/introducing-reranking-to-pinecone-inference/ Product Thu, 15 Aug 2024 00:00:00 +0000 July 2024 Product Update https://www.pinecone.io/blog/july-2024-product-update/ July 2024 Product Update https://www.pinecone.io/blog/july-2024-product-update/ Product Thu, 01 Aug 2024 00:00:00 +0000 Connect to Pinecone within your platform to enable a seamless AI development experience https://www.pinecone.io/blog/connect-to-pinecone-within-your-platform/ Connect to Pinecone within your platform to enable a seamless AI development experience https://www.pinecone.io/blog/connect-to-pinecone-within-your-platform/ Product Wed, 24 Jul 2024 00:00:00 +0000 Introducing Pinecone API Versioning https://www.pinecone.io/blog/introducing-pinecone-api-versioning/ Introducing Pinecone API Versioning https://www.pinecone.io/blog/introducing-pinecone-api-versioning/ Product Thu, 18 Jul 2024 00:00:00 +0000 RAG Brag with Inkeep Co-Founder Nick Gomez https://www.pinecone.io/blog/rag-brag-inkeep/ RAG Brag with Inkeep Co-Founder Nick Gomez https://www.pinecone.io/blog/rag-brag-inkeep/ Company Wed, 17 Jul 2024 00:00:00 +0000 Introducing Pinecone Inference to streamline your AI workflow https://www.pinecone.io/blog/pinecone-inference/ Introducing Pinecone Inference to streamline your AI workflow https://www.pinecone.io/blog/pinecone-inference/ Product Tue, 09 Jul 2024 00:00:00 +0000 June 2024 Product Update https://www.pinecone.io/blog/june-2024-product-update/ June 2024 Product Update https://www.pinecone.io/blog/june-2024-product-update/ Product Mon, 01 Jul 2024 00:00:00 +0000 Benchmarking AI Assistants https://www.pinecone.io/blog/ai-assistant-quality/ Benchmarking AI Assistants https://www.pinecone.io/blog/ai-assistant-quality/ Engineering Tue, 25 Jun 2024 00:00:00 +0000 Introducing Pinecone Assistant in Beta https://www.pinecone.io/blog/pinecone-assistant/ Introducing Pinecone Assistant in Beta https://www.pinecone.io/blog/pinecone-assistant/ Product Tue, 25 Jun 2024 00:00:00 +0000 RAG Brag with My AskAI founders, Mike Heap and Alex Rainey https://www.pinecone.io/blog/rag-brag-myaskai/ RAG Brag with My AskAI founders, Mike Heap and Alex Rainey https://www.pinecone.io/blog/rag-brag-myaskai/ Company Fri, 14 Jun 2024 00:00:00 +0000 Glasp achieves 5X cost savings in knowledge access for millions of users with Pinecone https://www.pinecone.io/blog/glasp/ Glasp achieves 5X cost savings in knowledge access for millions of users with Pinecone https://www.pinecone.io/blog/glasp/ Company Wed, 05 Jun 2024 00:00:00 +0000 May Monthly Product Update https://www.pinecone.io/blog/may2024-monthly-product-update/ May Monthly Product Update https://www.pinecone.io/blog/may2024-monthly-product-update/ Product Mon, 03 Jun 2024 00:00:00 +0000 Welcome Lauren Nemeth and Bob Muglia https://www.pinecone.io/blog/welcome-lauren-nemeth-and-bob-muglia/ Welcome Lauren Nemeth and Bob Muglia https://www.pinecone.io/blog/welcome-lauren-nemeth-and-bob-muglia/ Company Mon, 03 Jun 2024 00:00:00 +0000 Expanding AI Development with Pinecone, GitHub CoPilot, and Azure OpenAI https://www.pinecone.io/blog/the-ultimate-developer-toolkit-for-genai/ Expanding AI Development with Pinecone, GitHub CoPilot, and Azure OpenAI https://www.pinecone.io/blog/the-ultimate-developer-toolkit-for-genai/ Product Tue, 21 May 2024 00:00:00 +0000 Pinecone serverless on AWS is generally available https://www.pinecone.io/blog/serverless-generally-available/ Pinecone serverless on AWS is generally available https://www.pinecone.io/blog/serverless-generally-available/ Product Tue, 21 May 2024 00:00:00 +0000 Introducing Private Endpoints for Pinecone serverless https://www.pinecone.io/blog/private-endpoints/ Introducing Private Endpoints for Pinecone serverless https://www.pinecone.io/blog/private-endpoints/ Product Tue, 21 May 2024 00:00:00 +0000 Build Better RAG Applications with Pinecone and Vectorize https://www.pinecone.io/blog/build-better-rag-applications-with-pinecone-and-vectorize/ Build Better RAG Applications with Pinecone and Vectorize https://www.pinecone.io/blog/build-better-rag-applications-with-pinecone-and-vectorize/ Product Tue, 14 May 2024 00:00:00 +0000 April Monthly Product Update https://www.pinecone.io/blog/april-2024-product-update/ April Monthly Product Update https://www.pinecone.io/blog/april-2024-product-update/ Product Wed, 01 May 2024 00:00:00 +0000 Going Global: Building the Global Control Plane API https://www.pinecone.io/blog/global-api/ Going Global: Building the Global Control Plane API https://www.pinecone.io/blog/global-api/ Engineering Mon, 22 Apr 2024 00:00:00 +0000 Free plan gets 3x more capacity with serverless upgrade https://www.pinecone.io/blog/serverless-free/ Free plan gets 3x more capacity with serverless upgrade https://www.pinecone.io/blog/serverless-free/ Product Wed, 17 Apr 2024 00:00:00 +0000 Pinecone vs. Postgres pgvector: For vector search, easy isn’t so easy https://www.pinecone.io/blog/pinecone-vs-pgvector/ Pinecone vs. Postgres pgvector: For vector search, easy isn’t so easy https://www.pinecone.io/blog/pinecone-vs-pgvector/ Engineering Wed, 17 Apr 2024 00:00:00 +0000 Introducing the Pinecone Partner Program: Integrate and Grow with Pinecone https://www.pinecone.io/blog/introducing-the-pinecone-partner-program/ Introducing the Pinecone Partner Program: Integrate and Grow with Pinecone https://www.pinecone.io/blog/introducing-the-pinecone-partner-program/ Company Mon, 08 Apr 2024 00:00:00 +0000 Sixfold's Transformation of Insurance Underwriting with Pinecone https://www.pinecone.io/blog/sixfold/ Sixfold's Transformation of Insurance Underwriting with Pinecone https://www.pinecone.io/blog/sixfold/ Company Fri, 05 Apr 2024 00:00:00 +0000 March Monthly Product Update https://www.pinecone.io/blog/Marchproductupdate/ March Monthly Product Update https://www.pinecone.io/blog/Marchproductupdate/ Product Mon, 01 Apr 2024 00:00:00 +0000 Introducing the First Hallucination-Free LLM https://www.pinecone.io/blog/hallucination-free-llm/ Introducing the First Hallucination-Free LLM https://www.pinecone.io/blog/hallucination-free-llm/ Company Mon, 01 Apr 2024 00:00:00 +0000 Your Guide to Vectorizing Structured Text https://www.pinecone.io/blog/structured-data/ Your Guide to Vectorizing Structured Text https://www.pinecone.io/blog/structured-data/ Product Tue, 26 Mar 2024 00:00:00 +0000 Simplify Stream Processing For GenAI Applications With Confluent Cloud for Apache Flink® https://www.pinecone.io/blog/confluent-apache-flink-service/ Simplify Stream Processing For GenAI Applications With Confluent Cloud for Apache Flink® https://www.pinecone.io/blog/confluent-apache-flink-service/ Company Tue, 19 Mar 2024 00:00:00 +0000 RAG Brag with Shortwave CEO Andrew Lee https://www.pinecone.io/blog/rag-brag-with-shortwave/ RAG Brag with Shortwave CEO Andrew Lee https://www.pinecone.io/blog/rag-brag-with-shortwave/ Company Thu, 14 Mar 2024 00:00:00 +0000 Winning in AI means mastering the new stack https://www.pinecone.io/blog/the-new-ai-stack/ Winning in AI means mastering the new stack https://www.pinecone.io/blog/the-new-ai-stack/ Product Thu, 15 Feb 2024 00:00:00 +0000 Azure OpenAI, meet Canopy https://www.pinecone.io/blog/canopy-azureopenai/ Azure OpenAI, meet Canopy https://www.pinecone.io/blog/canopy-azureopenai/ Engineering Thu, 15 Feb 2024 00:00:00 +0000 Memory for Open-Source LLMs https://www.pinecone.io/blog/memory-for-open-source-llms/ Memory for Open-Source LLMs https://www.pinecone.io/blog/memory-for-open-source-llms/ Engineering Wed, 14 Feb 2024 00:00:00 +0000 5 reasons to build with Pinecone serverless https://www.pinecone.io/blog/why-serverless/ 5 reasons to build with Pinecone serverless https://www.pinecone.io/blog/why-serverless/ Product Mon, 29 Jan 2024 00:00:00 +0000 Vectors as AI Data Primitives https://www.pinecone.io/blog/vectors-as-ai-data-primitives/ Vectors as AI Data Primitives https://www.pinecone.io/blog/vectors-as-ai-data-primitives/ Company Wed, 24 Jan 2024 00:00:00 +0000 RAG makes LLMs better and equal https://www.pinecone.io/blog/rag-study/ RAG makes LLMs better and equal https://www.pinecone.io/blog/rag-study/ Engineering Tue, 16 Jan 2024 00:00:00 +0000 How Pinecone and its partners are transforming GenAI with serverless https://www.pinecone.io/blog/serverless-launch-partners/ How Pinecone and its partners are transforming GenAI with serverless https://www.pinecone.io/blog/serverless-launch-partners/ Product Tue, 16 Jan 2024 00:00:00 +0000 Introducing Pinecone Serverless https://www.pinecone.io/blog/serverless/ Introducing Pinecone Serverless https://www.pinecone.io/blog/serverless/ Company Tue, 16 Jan 2024 00:00:00 +0000 Reimagining the vector database to enable knowledgeable AI https://www.pinecone.io/blog/serverless-architecture/ Reimagining the vector database to enable knowledgeable AI https://www.pinecone.io/blog/serverless-architecture/ Engineering Tue, 16 Jan 2024 00:00:00 +0000 Pinecone algorithms set new records for BigANN https://www.pinecone.io/blog/pinecone-algorithms-set-new-records-for-bigann/ Pinecone algorithms set new records for BigANN https://www.pinecone.io/blog/pinecone-algorithms-set-new-records-for-bigann/ Engineering Thu, 11 Jan 2024 00:00:00 +0000 Practical Tips for Working with Pinecone at Scale https://www.pinecone.io/blog/working-at-scale/ Practical Tips for Working with Pinecone at Scale https://www.pinecone.io/blog/working-at-scale/ Engineering Wed, 20 Dec 2023 00:00:00 +0000 Launch production-grade architectures using Pinecone's vector database in minutes with the AWS Reference Architecture https://www.pinecone.io/blog/aws-reference-architecture/ Launch production-grade architectures using Pinecone's vector database in minutes with the AWS Reference Architecture https://www.pinecone.io/blog/aws-reference-architecture/ Engineering Mon, 27 Nov 2023 00:00:00 +0000 Pinecone recognized as the most popular vector database https://www.pinecone.io/blog/pinecone-most-popular-vector-database-and-fortune-2023-50-ai-innovator-finalist/ Pinecone recognized as the most popular vector database https://www.pinecone.io/blog/pinecone-most-popular-vector-database-and-fortune-2023-50-ai-innovator-finalist/ Company Tue, 21 Nov 2023 00:00:00 +0000 Introducing Canopy: An easy, free, and flexible RAG framework powered by Pinecone https://www.pinecone.io/blog/canopy-rag-framework/ Introducing Canopy: An easy, free, and flexible RAG framework powered by Pinecone https://www.pinecone.io/blog/canopy-rag-framework/ Product Wed, 08 Nov 2023 00:00:00 +0000 Pinecone is now available on the Azure Marketplace https://www.pinecone.io/blog/azure-marketplace/ Pinecone is now available on the Azure Marketplace https://www.pinecone.io/blog/azure-marketplace/ Product Mon, 30 Oct 2023 00:00:00 +0000 Great Algorithms Are Not Enough https://www.pinecone.io/blog/hnsw-not-enough/ Great Algorithms Are Not Enough https://www.pinecone.io/blog/hnsw-not-enough/ Engineering Fri, 27 Oct 2023 00:00:00 +0000 Pinecone is now HIPAA compliant https://www.pinecone.io/blog/hipaa/ Pinecone is now HIPAA compliant https://www.pinecone.io/blog/hipaa/ Product Wed, 11 Oct 2023 00:00:00 +0000 An (Opinionated) Checklist to Choose a Vector Database https://www.pinecone.io/blog/an-opinionated-checklist-to-choose-a-vector-database/ An (Opinionated) Checklist to Choose a Vector Database https://www.pinecone.io/blog/an-opinionated-checklist-to-choose-a-vector-database/ Product Wed, 13 Sep 2023 00:00:00 +0000 Pinecone as a Knowledge Base for Amazon Bedrock https://www.pinecone.io/blog/amazon-bedrock-integration/ Pinecone as a Knowledge Base for Amazon Bedrock https://www.pinecone.io/blog/amazon-bedrock-integration/ Product Wed, 13 Sep 2023 00:00:00 +0000 LangChain's Pinecone upsert speed increased by 5X https://www.pinecone.io/blog/langchain-pinecone-upsert-faster/ LangChain's Pinecone upsert speed increased by 5X https://www.pinecone.io/blog/langchain-pinecone-upsert-faster/ Engineering Tue, 12 Sep 2023 00:00:00 +0000 The Pain and the Poetry of Python https://www.pinecone.io/blog/pain-poetry-python/ The Pain and the Poetry of Python https://www.pinecone.io/blog/pain-poetry-python/ Engineering Thu, 31 Aug 2023 00:00:00 +0000 A Look Back at Pinecone's First Hackathon https://www.pinecone.io/blog/the-first-pinecone-hackathon/ A Look Back at Pinecone's First Hackathon https://www.pinecone.io/blog/the-first-pinecone-hackathon/ Company Thu, 03 Aug 2023 00:00:00 +0000 Monitor Pinecone with Datadog https://www.pinecone.io/blog/datadog-integration/ Monitor Pinecone with Datadog https://www.pinecone.io/blog/datadog-integration/ Product Thu, 03 Aug 2023 00:00:00 +0000 Less is More: Why Use Retrieval Instead of Larger Context Windows https://www.pinecone.io/blog/why-use-retrieval-instead-of-larger-context/ Less is More: Why Use Retrieval Instead of Larger Context Windows https://www.pinecone.io/blog/why-use-retrieval-instead-of-larger-context/ Engineering Thu, 20 Jul 2023 00:00:00 +0000 Run Pinecone on Azure https://www.pinecone.io/blog/azure/ Run Pinecone on Azure https://www.pinecone.io/blog/azure/ Product Thu, 13 Jul 2023 00:00:00 +0000 Start now, then take your time: Removing the Pinecone waitlist and inactivity policy https://www.pinecone.io/blog/gcp-starter/ Start now, then take your time: Removing the Pinecone waitlist and inactivity policy https://www.pinecone.io/blog/gcp-starter/ Product Wed, 12 Jul 2023 00:00:00 +0000 Opening up our free plan https://www.pinecone.io/blog/updated-free-plan/ Opening up our free plan https://www.pinecone.io/blog/updated-free-plan/ Product Wed, 26 Apr 2023 00:00:00 +0000 Announcing Our $100M Series B Funding to Build Long-Term Memory for AI https://www.pinecone.io/blog/series-b/ Announcing Our $100M Series B Funding to Build Long-Term Memory for AI https://www.pinecone.io/blog/series-b/ Company Wed, 26 Apr 2023 00:00:00 +0000 Supporting our growing number of free users https://www.pinecone.io/blog/free-plan-update/ Supporting our growing number of free users https://www.pinecone.io/blog/free-plan-update/ Company Fri, 14 Apr 2023 00:00:00 +0000 Introducing Single Sign-On (SSO) for Pinecone https://www.pinecone.io/blog/single-sign-on/ Introducing Single Sign-On (SSO) for Pinecone https://www.pinecone.io/blog/single-sign-on/ Product Tue, 21 Mar 2023 00:00:00 +0000 March 1st Partial Database Outage https://www.pinecone.io/blog/march-1-2023-incident/ March 1st Partial Database Outage https://www.pinecone.io/blog/march-1-2023-incident/ Company Thu, 09 Mar 2023 00:00:00 +0000 Welcome Vector Databases, Welcome Bob https://www.pinecone.io/blog/2022-growth-welcome-bob/ Welcome Vector Databases, Welcome Bob https://www.pinecone.io/blog/2022-growth-welcome-bob/ Company Tue, 28 Feb 2023 00:00:00 +0000 Introducing support for sparse-dense embeddings for better search result https://www.pinecone.io/blog/sparse-dense/ Introducing support for sparse-dense embeddings for better search result https://www.pinecone.io/blog/sparse-dense/ Product Thu, 23 Feb 2023 00:00:00 +0000 New usage insights to plan, test, and grow with confidence https://www.pinecone.io/blog/usage-dashboards/ New usage insights to plan, test, and grow with confidence https://www.pinecone.io/blog/usage-dashboards/ Product Tue, 14 Feb 2023 00:00:00 +0000 Pinecone is now available on the AWS Marketplace https://www.pinecone.io/blog/pinecone-aws-marketplace/ Pinecone is now available on the AWS Marketplace https://www.pinecone.io/blog/pinecone-aws-marketplace/ Product Mon, 06 Feb 2023 00:00:00 +0000 History in the making: A year of learning, growing, and connecting together https://www.pinecone.io/blog/2022-highlights/ History in the making: A year of learning, growing, and connecting together https://www.pinecone.io/blog/2022-highlights/ Company Fri, 23 Dec 2022 00:00:00 +0000 Pinecone is now available on the Google Cloud Marketplace https://www.pinecone.io/blog/pinecone-gcp-marketplace/ Pinecone is now available on the Google Cloud Marketplace https://www.pinecone.io/blog/pinecone-gcp-marketplace/ Product Thu, 22 Dec 2022 00:00:00 +0000 High-throughput vector indexes now generally available and free https://www.pinecone.io/blog/pods-for-performance/ High-throughput vector indexes now generally available and free https://www.pinecone.io/blog/pods-for-performance/ Product Thu, 08 Dec 2022 00:00:00 +0000 Organizations: New access controls to makes vector search a company-wide capability https://www.pinecone.io/blog/organizations/ Organizations: New access controls to makes vector search a company-wide capability https://www.pinecone.io/blog/organizations/ Product Wed, 07 Dec 2022 00:00:00 +0000 Introducing the hybrid index to enable keyword-aware semantic search https://www.pinecone.io/blog/hybrid-search/ Introducing the hybrid index to enable keyword-aware semantic search https://www.pinecone.io/blog/hybrid-search/ Product Mon, 31 Oct 2022 00:00:00 +0000 Explore the power of Pinecone with public collections https://www.pinecone.io/blog/public-collections/ Explore the power of Pinecone with public collections https://www.pinecone.io/blog/public-collections/ Product Fri, 16 Sep 2022 00:00:00 +0000 Rewriting a high performance vector database in Rust https://www.pinecone.io/blog/rust-rewrite/ Rewriting a high performance vector database in Rust https://www.pinecone.io/blog/rust-rewrite/ Engineering Wed, 14 Sep 2022 00:00:00 +0000 Inside the Pinecone https://www.pinecone.io/blog/inside-the-pinecone/ Inside the Pinecone https://www.pinecone.io/blog/inside-the-pinecone/ Engineering Mon, 22 Aug 2022 00:00:00 +0000 Vector search just got up to 10x faster, easier to set up, and vertically scalable https://www.pinecone.io/blog/faster-easier-scalable/ Vector search just got up to 10x faster, easier to set up, and vertically scalable https://www.pinecone.io/blog/faster-easier-scalable/ Product Tue, 16 Aug 2022 00:00:00 +0000 Pinecone sponsors the 45th annual SIGIR conference https://www.pinecone.io/blog/sigit-2022/ Pinecone sponsors the 45th annual SIGIR conference https://www.pinecone.io/blog/sigit-2022/ Company Fri, 22 Jul 2022 00:00:00 +0000 ================================================ FILE: feeds/feed_the_batch.xml ================================================ The Batch | DeepLearning.AI https://www.deeplearning.ai/the-batch/ Weekly AI news and insights from DeepLearning.AI's The Batch. http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:51:16 +0000 Seedance Makes A Splash, Nvidia's AI-Guided Chip Designs, Helping Robots Not Forget https://www.deeplearning.ai/the-batch/issue-352 The Batch AI News and Insights: There will be no AI jobpocalypse. https://www.deeplearning.ai/the-batch/issue-352 Fri, 08 May 2026 00:00:00 +0000 GPT-5.5 Outperforms (and Hallucinates), Kimi K2.6 Leads Open LLMs, AI Strains Climate Pledges, Strategic Thinking in LLMs vs. Humans https://www.deeplearning.ai/the-batch/issue-351 The Batch AI News and Insights: The ways we prompt AI are very different in 2026 than 2022 when ChatGPT came out. https://www.deeplearning.ai/the-batch/issue-351 Fri, 01 May 2026 00:00:00 +0000 GLM 5.1 Thinks Strategically, Data-Center Revolt Intensifies, When Helpful LLMs Turn Unhelpful, Humanoid Robots Get to Work https://www.deeplearning.ai/the-batch/issue-350 The Batch AI News and Insights: Coding agents are accelerating different types of software work to different degrees. https://www.deeplearning.ai/the-batch/issue-350 Fri, 24 Apr 2026 00:00:00 +0000 Meta Pivots From Open Weights, Big Pharma Bets On AI, Regulatory Patchwork, Simulating Human Cohorts https://www.deeplearning.ai/the-batch/issue-349 The Batch AI News and Insights: AI-native software engineering teams operate very differently than traditional teams. https://www.deeplearning.ai/the-batch/issue-349 Fri, 17 Apr 2026 00:00:00 +0000 Anthropic’s Claude Mythos Problem, Dark DNA Unveiled, Pitfalls for Assistive Models, Simulating Fluid Dynamics https://www.deeplearning.ai/the-batch/issue-348 The Batch AI News and Insights: As AI agents accelerate coding, what is the future of software engineering? https://www.deeplearning.ai/the-batch/issue-348 Fri, 10 Apr 2026 00:00:00 +0000 Claude Code’s Source Leaks, OpenAI Exits Video Generation, Gemini Adds Music Generation, LLMs Learn at Inference https://www.deeplearning.ai/the-batch/issue-347 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. https://www.deeplearning.ai/the-batch/issue-347 Fri, 03 Apr 2026 00:00:00 +0000 Nvidia’s Open Salvo, OpenAI’s Amazon Deal, Grok Cuts Video Prices, Recursive Language Models https://www.deeplearning.ai/the-batch/issue-346 The Batch AI News and Insights: The anti-AI coalition continues to maneuver to find arguments to slow down AI progress. https://www.deeplearning.ai/the-batch/issue-346 Fri, 27 Mar 2026 00:00:00 +0000 Attacks On Data Centers, Qwen3.5 In All Sizes, DeepSeek’s Huawei Play, Apple’s Multimodal Tokenizer https://www.deeplearning.ai/the-batch/issue-345 The Batch AI News and Insights: I’ve been hearing from people at all levels of seniority about a feeling of job insecurity. https://www.deeplearning.ai/the-batch/issue-345 Fri, 20 Mar 2026 00:00:00 +0000 GPT-5.4 Makes A Splash, AI’s Growth on Mobile, Data Centers Go Off-Grid, Apple’s Diffusion Research https://www.deeplearning.ai/the-batch/issue-344 The Batch AI News and Insights: Should there be a Stack Overflow for AI coding agents to share their learnings with each other? https://www.deeplearning.ai/the-batch/issue-344 Fri, 13 Mar 2026 00:00:00 +0000 Anthropic vs. the U.S. Government, Nano Banana’s Makeover, Frontier Agent Management, Google’s Mathematics Solutions https://www.deeplearning.ai/the-batch/issue-343 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. https://www.deeplearning.ai/the-batch/issue-343 Fri, 06 Mar 2026 00:00:00 +0000 Gemini Seizes the Lead, Investors Panic Over Agentic AI, Optimism at Global AI Summit, Local Versus Cloud https://www.deeplearning.ai/the-batch/issue-342 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. https://www.deeplearning.ai/the-batch/issue-342 Fri, 27 Feb 2026 00:00:00 +0000 The New Open-Weights Leader, Big AI’s Political Influence, Predicting Illness, Faster Reasoning https://www.deeplearning.ai/the-batch/issue-341 The Batch AI News and Insights: Will AI create new job opportunities? My daughter Nova loves cats, and her favorite color is yellow. https://www.deeplearning.ai/the-batch/issue-341 Fri, 20 Feb 2026 00:00:00 +0000 Claude Opus 4.6 Thinks Smarter, xAI Joins SpaceX, AI Outperforms Doctors, Standardized AI Audits https://www.deeplearning.ai/the-batch/issue-340 The Batch AI News and Insights: I recently spoke at the Sundance Film Festival on a panel about AI. https://www.deeplearning.ai/the-batch/issue-340 Fri, 13 Feb 2026 00:00:00 +0000 OpenClaw Runs Amok, Kimi’s Open Model, Ministral Distilled, Wikipedia’s Partners https://www.deeplearning.ai/the-batch/issue-339 The Batch AI News and Insights: Job seekers in the U.S. and many other nations face a tough environment. https://www.deeplearning.ai/the-batch/issue-339 Fri, 06 Feb 2026 00:00:00 +0000 Agents Go Shopping, Intelligence Redefined, Better Text in Pictures, Higher Engagement Means Worse Alignment https://www.deeplearning.ai/the-batch/issue-338 The Batch AI News and Insights: U.S. policies are driving allies away from using American AI technology. https://www.deeplearning.ai/the-batch/issue-338 Fri, 30 Jan 2026 00:00:00 +0000 Self-Driving Reasoning Models, ChatGPT Adds Ads, Apple’s Deal with Google, 3D Generation Pronto https://www.deeplearning.ai/the-batch/issue-337 The Batch AI News and Insights: How can businesses go beyond using AI for incremental efficiency gains to create transformative impact? https://www.deeplearning.ai/the-batch/issue-337 Fri, 23 Jan 2026 00:00:00 +0000 Governments vs. Grok, Meta Buys Agent Tech, Healthcare Chatbots, Limits of AI-Powered Retrieval https://www.deeplearning.ai/the-batch/issue-336 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. https://www.deeplearning.ai/the-batch/issue-336 Fri, 16 Jan 2026 00:00:00 +0000 LLMs Go To Confession, Automated Scientific Research, What Copilot Users Want, Reasoning For Less https://www.deeplearning.ai/the-batch/issue-335 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. https://www.deeplearning.ai/the-batch/issue-335 Fri, 09 Jan 2026 00:00:00 +0000 New Year Special! Hopes for 2026 from David Cox, Adji Bousso Dieng, Juan M. Lavista Ferres, Tanmay Gupta, Pengtao Xie, Sharon Zhou https://www.deeplearning.ai/the-batch/issue-334 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. https://www.deeplearning.ai/the-batch/issue-334 Fri, 02 Jan 2026 00:00:00 +0000 Top Stories of 2025! Big AI Poaches Talent, Reasoning Models Boost Performance, Agents Write Code, Data Centers Drive GDP, China Turns the Tables https://www.deeplearning.ai/the-batch/issue-333 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. https://www.deeplearning.ai/the-batch/issue-333 Fri, 26 Dec 2025 00:00:00 +0000 OpenAI’s Answer to Gemini 3, Runway’s Interactive Worlds, Disney’s Alliance With OpenAI, Adapting LLMs for Low-Data Domains https://www.deeplearning.ai/the-batch/issue-332 The Batch AI News and Insights: As amazing as LLMs are, improving their knowledge today involves a more piecemeal process than is widely appreciated. https://www.deeplearning.ai/the-batch/issue-332 Wed, 17 Dec 2025 00:00:00 +0000 Claude Opus 4.5 Saves Tokens, White House Boosts AI-Powered Science, Amazon Exposes Nova 2 Pro Checkpoints, Small Models Solve Hard Puzzles https://www.deeplearning.ai/the-batch/issue-331 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! https://www.deeplearning.ai/the-batch/issue-331 Wed, 10 Dec 2025 00:00:00 +0000 Meta’s Open 3D Pipeline, World Labs’ Virtual Spaces, Baidu’s Multimodal Models, Coordinating Robot Teams https://www.deeplearning.ai/the-batch/issue-330 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. https://www.deeplearning.ai/the-batch/issue-330 Wed, 03 Dec 2025 00:00:00 +0000 Google Rules Arena Leaderboards, Microsoft+Anthropic, Record Labels Back AI Music, Personality Control for LLMs https://www.deeplearning.ai/the-batch/issue-329 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... https://www.deeplearning.ai/the-batch/issue-329 Wed, 26 Nov 2025 00:00:00 +0000 Self-Driving On U.S. Freeways, Open LLM Tops Agentic Leaderboard, Anthropic Sparks Controversy, Efficient Agentic Search https://www.deeplearning.ai/the-batch/issue-328 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. https://www.deeplearning.ai/the-batch/issue-328 Wed, 19 Nov 2025 00:00:00 +0000 Safer (and Sexier) Chatbots, Better Images Through Reasoning, The Dawn of Industrial AI, Forecasting Time Series https://www.deeplearning.ai/the-batch/issue-327 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. https://www.deeplearning.ai/the-batch/issue-327 Wed, 12 Nov 2025 00:00:00 +0000 OpenAI Reorgs For Profit, MiniMax-M2 Leads Open Coding, Universal Music Group Embraces AI, LLMs Go Private https://www.deeplearning.ai/the-batch/issue-326 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. https://www.deeplearning.ai/the-batch/issue-326 Wed, 05 Nov 2025 00:00:00 +0000 Introducing DeepLearning.AI Pro https://www.deeplearning.ai/the-batch/introducing-deeplearning-ai-pro Introducing DeepLearning.AI Pro https://www.deeplearning.ai/the-batch/introducing-deeplearning-ai-pro Fri, 31 Oct 2025 07:47:02 -0700 Monsters of AI: AI Psychosis, Lethal Drones, Decaying Data, Speculative Bubbles https://www.deeplearning.ai/the-batch/issue-325 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! https://www.deeplearning.ai/the-batch/issue-325 Wed, 29 Oct 2025 00:00:00 +0000 Ling-1T Leads Non-Reasoning Performance, MCP Poses Security Risks, California Regulates AI, Auto-Tune for Agentic Prompts https://www.deeplearning.ai/the-batch/issue-324 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. https://www.deeplearning.ai/the-batch/issue-324 Wed, 22 Oct 2025 00:00:00 +0000 DeepSeek Cuts Inference Costs, OpenAI Tightens Ties with AMD, Thinking Machines Simplifies Fine-Tuning, Robots Improve Spatial Awareness https://www.deeplearning.ai/the-batch/issue-323 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... https://www.deeplearning.ai/the-batch/issue-323 Wed, 15 Oct 2025 00:00:00 +0000 Claude Levels Up, Qwen3 Proliferates, Big AI Diversifies Product Lines, LoRA Adapters on Tap https://www.deeplearning.ai/the-batch/issue-322 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. https://www.deeplearning.ai/the-batch/issue-322 Wed, 08 Oct 2025 00:00:00 +0000 OpenAI’s Trillion-Dollar Bet, Generating Viruses, Modeling Planet Earth, Paying for Training Data https://www.deeplearning.ai/the-batch/issue-321 The Batch AI News and Insights: LandingAI’s Agentic Document Extraction (ADE) turns PDF files into LLM-ready markdown text. https://www.deeplearning.ai/the-batch/issue-321 Wed, 01 Oct 2025 00:00:00 +0000 AI Agents Spend Money, Online Betting Automates, ChatGPT Users Shift, Reinforcement Learning Accelerates https://www.deeplearning.ai/the-batch/issue-320 The Batch AI News and Insights: Last week, China barred its major tech companies from buying Nvidia chips. https://www.deeplearning.ai/the-batch/issue-320 Wed, 24 Sep 2025 00:00:00 +0000 Drone Swarms Go To War, States Ban AI Mental-Health Treatments, Qwen3-Next Accelerates, Transformers Get Energized https://www.deeplearning.ai/the-batch/issue-319 The Batch AI News and Insights: Automated software testing is growing in importance in the era of AI-assisted coding. https://www.deeplearning.ai/the-batch/issue-319 Wed, 17 Sep 2025 00:00:00 +0000 Stronger Chatbot Guardrails, Weaker Google Monopoly, AI-Assisted Education, 10 Million Tokens of Context https://www.deeplearning.ai/the-batch/issue-318 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. https://www.deeplearning.ai/the-batch/issue-318 Wed, 10 Sep 2025 00:00:00 +0000 Gemini’s Environmental Impact, China’s Emerging AI Hub, Chatbot Job Interviews, Security For Agents https://www.deeplearning.ai/the-batch/issue-317 The Batch AI News and Insights: There is significant unmet demand for developers who understand AI. https://www.deeplearning.ai/the-batch/issue-317 Wed, 03 Sep 2025 00:00:00 +0000 AI-Powered Phones Get Proactive, Robot Antelope Joins Herd, LLM Environmental Impacts Get Measured https://www.deeplearning.ai/the-batch/issue-316 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. https://www.deeplearning.ai/the-batch/issue-316 Wed, 27 Aug 2025 00:00:00 +0000 China Questions Nvidia, When Models Memorize, Mixture of Video Experts, OpenAI & Oracle Join Forces https://www.deeplearning.ai/the-batch/issue-315 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. https://www.deeplearning.ai/the-batch/issue-315 Wed, 20 Aug 2025 00:00:00 +0000 GPT-5’s Rough Takeoff, AI Video Blockbusters, India’s Homegrown LLMs, Synthetic Data Generation https://www.deeplearning.ai/the-batch/issue-314 The Batch AI News and Insights: Just as many businesses are transforming to become more capable by using AI, universities are too. https://www.deeplearning.ai/the-batch/issue-314 Wed, 13 Aug 2025 00:00:00 +0000 Open Agentic LLMs Proliferate, Robot Removes Gallbladders, Reasoning Models Boost Emissions, OpenAI Re-Opens https://www.deeplearning.ai/the-batch/issue-313 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). https://www.deeplearning.ai/the-batch/issue-313 Wed, 06 Aug 2025 00:00:00 +0000 Trump Resets AI Policy, Qwen3’s Agentic Advance, U.S. Chips for China, The Trouble With AI Friends https://www.deeplearning.ai/the-batch/issue-312 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. https://www.deeplearning.ai/the-batch/issue-312 Wed, 30 Jul 2025 00:00:00 +0000 Power Moves in AI Coding, Moonshot’s Agentic LLM, How to Comply with EU AI Regs, AI Agents Evolve https://www.deeplearning.ai/the-batch/issue-311 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! https://www.deeplearning.ai/the-batch/issue-311 Wed, 23 Jul 2025 00:00:00 +0000 Grok Raises Questions, Meta Poaches Talent, California Reframes AI Regulations, Multi-Agent Systems Get Stronger https://www.deeplearning.ai/the-batch/issue-310 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. https://www.deeplearning.ai/the-batch/issue-310 Wed, 16 Jul 2025 00:00:00 +0000 How to Make LLMs Commit Blackmail, Robotic Beehive, Walmart’s AI App Factory, Training Web Agents https://www.deeplearning.ai/the-batch/issue-309 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. https://www.deeplearning.ai/the-batch/issue-309 Wed, 09 Jul 2025 00:00:00 +0000 Amazon’s $100 Billion Bet, Meta’s Sensor-Packed Glasses, Anthropic’s Reason-Free Reasoning, Google’s Extreme Weather Prediction https://www.deeplearning.ai/the-batch/issue-308 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. https://www.deeplearning.ai/the-batch/issue-308 Wed, 02 Jul 2025 00:00:00 +0000 Judge Rules Training AI on Copyrighted Works Is Fair Use, Agentic Biology Evolves, Meta Befriends Alexandr Wang https://www.deeplearning.ai/the-batch/issue-307 The Batch AI News and Insights: On Monday, a United States District Court ruled that training LLMs on copyrighted books constitutes fair use. https://www.deeplearning.ai/the-batch/issue-307 Wed, 25 Jun 2025 00:00:00 +0000 Apple Sharpens Its GenAI Profile, Hollywood Joins Copyright Fight, OpenAI Ups Reasoning Quotient, LLM Rights Historical Wrongs https://www.deeplearning.ai/the-batch/issue-306 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. https://www.deeplearning.ai/the-batch/issue-306 Wed, 18 Jun 2025 00:00:00 +0000 FLUX.1 Kontext’s Consistent Characters, Benchmarking Costs Climb, Mary Meeker’s Action-Packed AI Report, Better Video Gen https://www.deeplearning.ai/the-batch/issue-305 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. https://www.deeplearning.ai/the-batch/issue-305 Wed, 11 Jun 2025 00:00:00 +0000 DeepSeek-R1 Refreshed, AI’s Energy Conundrum, Agents Get Phished, Machine Translation in Action https://www.deeplearning.ai/the-batch/issue-304 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. https://www.deeplearning.ai/the-batch/issue-304 Wed, 04 Jun 2025 00:00:00 +0000 Claude 4 Advances Code Gen, How DeepSeek Built V3 For $5.6m, Google I/O Roundup, O’Reilly Versus OpenAI https://www.deeplearning.ai/the-batch/issue-303 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. https://www.deeplearning.ai/the-batch/issue-303 Wed, 28 May 2025 00:00:00 +0000 Codex’s Robot Dev Team, Grok’s Fixation on South Africa, Saudi Arabia’s AI Power Play, 4-Bit Efficiency With 16-Bit Accuracy https://www.deeplearning.ai/the-batch/issue-302 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. https://www.deeplearning.ai/the-batch/issue-302 Wed, 21 May 2025 00:00:00 +0000 Recipes For Reasoning, Open and Compact Code Generator, Looser AI Regulations, More Factual Output https://www.deeplearning.ai/the-batch/issue-301 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. https://www.deeplearning.ai/the-batch/issue-301 Wed, 14 May 2025 00:00:00 +0000 ChatGPT Grovels, Qwen3 Takes on DeepSeek-R1, Johnson & Johnson Reveals AI Strategy, Easy Reasoning Hack https://www.deeplearning.ai/the-batch/issue-300 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. https://www.deeplearning.ai/the-batch/issue-300 Wed, 07 May 2025 00:00:00 +0000 OpenAI’s Hit Image Generator, Hot AI Startups, Better Recommendations, Music Generation for Pros https://www.deeplearning.ai/the-batch/issue-299 The Batch AI News and Insights: I hope we can empower everyone to build with AI. https://www.deeplearning.ai/the-batch/issue-299 Wed, 30 Apr 2025 00:00:00 +0000 OpenAI’s Five New Models, Hugging Face’s Open Robot, U.S. Tightens Grip on AI Chips, Text-Only LLMs Go Multimodal https://www.deeplearning.ai/the-batch/issue-298 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. https://www.deeplearning.ai/the-batch/issue-298 Wed, 23 Apr 2025 00:00:00 +0000 Google Unveils Gemini 2.5, MCP Gains Momentum, Behind Sam Altman’s Fall and Rise, LLMs That Understand Misspellings https://www.deeplearning.ai/the-batch/issue-297 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. https://www.deeplearning.ai/the-batch/issue-297 Wed, 16 Apr 2025 00:00:00 +0000 Inside the Mind of Claude, Llama 4’s Mixture of Vision-Language Experts, More Open Multimodal Models, Neural Net for Tabular Data https://www.deeplearning.ai/the-batch/issue-296 The Batch AI News and Insights: I am so sorry that the U.S. is letting down our friends and allies. https://www.deeplearning.ai/the-batch/issue-296 Wed, 09 Apr 2025 00:00:00 +0000 Open Voice-to-Voice With Vision, ChatGPT Creates Emotional Bonds, Human Action in 3D, Web Scrapers Caught in Maze https://www.deeplearning.ai/the-batch/issue-295 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. https://www.deeplearning.ai/the-batch/issue-295 Wed, 02 Apr 2025 00:00:00 +0000 Compact Vision-Language with Open Weights, Faster Learning, Diffusion in Few Steps, LLMs Aid Tutors https://www.deeplearning.ai/the-batch/issue-294 The Batch AI News and Insights: Fine-tuning small language models has been gaining traction over the past half year. https://www.deeplearning.ai/the-batch/issue-294 Wed, 26 Mar 2025 00:00:00 +0000 Inside Google’s Co-Scientist, Copyright Office Weighs Generated Works, Multilingual (and Good at All of Them), Diffusion for Materials Design https://www.deeplearning.ai/the-batch/issue-293 The Batch AI News and Insights: Last Friday on Pi Day, we held AI Dev 25, a new conference for AI Developers. https://www.deeplearning.ai/the-batch/issue-293 Wed, 19 Mar 2025 00:00:00 +0000 DeepSeek-R1 Uncensored, QwQ-32B Puts Reasoning in Smaller Model, Phi-4-multimodal Takes Spoken Input, Training AI May Not Be Fair Use https://www.deeplearning.ai/the-batch/issue-292 The Batch AI News and Insights: Some people today are discouraging others from learning programming on the grounds AI will automate it. https://www.deeplearning.ai/the-batch/issue-292 Wed, 12 Mar 2025 00:00:00 +0000 GPT-4.5 Goes Big, Claude 3.7 Reasons, Alexa+ Goes Agentic, Generating Text Like an Image https://www.deeplearning.ai/the-batch/issue-291 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. https://www.deeplearning.ai/the-batch/issue-291 Wed, 05 Mar 2025 00:00:00 +0000 Meta Reads Minds, Big AI Spending Climbs, Deepfakes Appropriate Celeb Likenesses, Reasoning in Vectors https://www.deeplearning.ai/the-batch/issue-290 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. https://www.deeplearning.ai/the-batch/issue-290 Wed, 26 Feb 2025 00:00:00 +0000 Grok 3 Scales Up, Mobile Apps Generated To Order, Musk Moves On OpenAI, Officials Reverse Course on AI Regulation https://www.deeplearning.ai/the-batch/issue-289 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. https://www.deeplearning.ai/the-batch/issue-289 Wed, 19 Feb 2025 00:00:00 +0000 OpenAI Does Deep Research, Google Goes to War, Alibaba Answers DeepSeek, Web Agents Do Tree Search https://www.deeplearning.ai/the-batch/issue-288 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. https://www.deeplearning.ai/the-batch/issue-288 Wed, 12 Feb 2025 00:00:00 +0000 o3-mini Puts Reasoning in High Gear, How to Train for Computer Use, Gemini 2.0 Thinks Faster, More-Responsive Voice Interactions https://www.deeplearning.ai/the-batch/issue-287 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. https://www.deeplearning.ai/the-batch/issue-287 Wed, 05 Feb 2025 00:00:00 +0000 Reinforcement Learning Heats Up, White House Orders Muscular AI Policy, Computer Use Gains Momentum, Fine Control of Fine-Tuning https://www.deeplearning.ai/the-batch/issue-286 Reinforcement Learning Heats Up, White House Orders Muscular AI Policy, Computer Use Gains Momentum, Fine Control of Fine-Tuning https://www.deeplearning.ai/the-batch/issue-286 Wed, 29 Jan 2025 14:48:00 -0800 DeepSeek Sharpens Its Reasoning: DeepSeek-R1, an affordable rival to OpenAI’s o1 https://www.deeplearning.ai/the-batch/deepseek-r1-an-affordable-rival-to-openais-o1 DeepSeek Sharpens Its Reasoning: DeepSeek-R1, an affordable rival to OpenAI’s o1 https://www.deeplearning.ai/the-batch/deepseek-r1-an-affordable-rival-to-openais-o1 Wed, 22 Jan 2025 07:18:00 -0800 DeepSeek’s Open Reasoning Model, Affordable Humanoid Robots, Texas’ Restrictive AI Law, GenAI for Electronics https://www.deeplearning.ai/the-batch/issue-285 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. https://www.deeplearning.ai/the-batch/issue-285 Wed, 22 Jan 2025 00:00:00 +0000 Tumbling Training Costs, Desktop AI Supercomputer, Tighter AI Export Restrictions, Improved Contrastive Loss https://www.deeplearning.ai/the-batch/issue-284 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! https://www.deeplearning.ai/the-batch/issue-284 Wed, 15 Jan 2025 00:00:00 +0000 When Good Models Do Bad Things, What Users Really Want, More Training Data!, Better Model Merging https://www.deeplearning.ai/the-batch/issue-283 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. https://www.deeplearning.ai/the-batch/issue-283 Wed, 08 Jan 2025 00:00:00 +0000 Happy New Year! Hopes For 2025 With Mustafa Suleyman, Audrey Tang, Albert Gu, Hanno Basse, Joseph Gonzalez, David Ding https://www.deeplearning.ai/the-batch/issue-282 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. https://www.deeplearning.ai/the-batch/issue-282 Wed, 01 Jan 2025 00:00:00 +0000 Top AI Stories of 2024! Agents Rise, Prices Fall, Models Shrink, Video Takes Off, Acquisitions Morph https://www.deeplearning.ai/the-batch/issue-281 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. https://www.deeplearning.ai/the-batch/issue-281 Wed, 25 Dec 2024 00:00:00 +0000 Phi-4 Breaks Size Barrier, HunyuanVideo Narrows Open Source Gap, Gemini 2.0 Flash Accelerates Multimodal Modeling, LLMs Propose Research Ideas https://www.deeplearning.ai/the-batch/issue-280 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. https://www.deeplearning.ai/the-batch/issue-280 Wed, 18 Dec 2024 00:00:00 +0000 Amazon Nova’s Competitive Price/Performance, OpenAI o1 Pro’s High Price/Performance, Google’s Game Worlds on Tap, Factual LLMs https://www.deeplearning.ai/the-batch/issue-279 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. https://www.deeplearning.ai/the-batch/issue-279 Wed, 11 Dec 2024 00:00:00 +0000 AI Agents Spend Real Money, Breaking Jailbreaks, Mistral Goes Big and Multimodal, AI’s Growing E-Waste Problem https://www.deeplearning.ai/the-batch/issue-278 The Batch AI News and Insights: AI Agents Spend Real Money, Breaking Jailbreaks, Mistral Goes Big and Multimodal, AI’s Growing E-Waste Problem. https://www.deeplearning.ai/the-batch/issue-278 Wed, 04 Dec 2024 00:00:00 +0000 DeepSeek Takes On OpenAI, Robots Fold Laundry, Amazon and Anthropic Expand Partnership, More Efficient Object Detection https://www.deeplearning.ai/the-batch/issue-277 The Batch AI News and Insights: DeepSeek Takes On OpenAI, Robots Fold Laundry, Amazon and Anthropic Expand Partnership, More Efficient Object Detection. https://www.deeplearning.ai/the-batch/issue-277 Wed, 27 Nov 2024 00:00:00 +0000 Next-Gen Models Show Limited Gains, Real-Time Video Generation, China AI Chips Blocked, Transformer Training Streamlined https://www.deeplearning.ai/the-batch/issue-276 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). https://www.deeplearning.ai/the-batch/issue-276 Wed, 20 Nov 2024 00:00:00 +0000 Llama On the Battlefield, Mixture of Experts Pulls Ahead, Open Agentic Platform, Voter Support Chatbot https://www.deeplearning.ai/the-batch/issue-275 The Batch AI News and Insights: Large language models (LLMs) are typically optimized to answer peoples’ questions. https://www.deeplearning.ai/the-batch/issue-275 Wed, 13 Nov 2024 00:00:00 +0000 AI Controls Desktops, Agents Train Algorithms, Does Anyone Comply With the EU’s AI Act?, Robots on the Loading Dock https://www.deeplearning.ai/the-batch/issue-274 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? https://www.deeplearning.ai/the-batch/issue-274 Wed, 06 Nov 2024 00:00:00 +0000 Trick or treat! AI Devours Energy, Innovation Can’t Win, Models Collapse, Benchmark Tests Are Meaningless, No Work for Coders https://www.deeplearning.ai/the-batch/issue-273 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. https://www.deeplearning.ai/the-batch/issue-273 Wed, 30 Oct 2024 00:00:00 +0000 AI Giants Go Nuclear, A Tech Bromance Turns Turbulent, Mistral Sharpens the Edge, Cheaper Video Generation https://www.deeplearning.ai/the-batch/issue-272 The Batch AI News and Insights: Startups live or die by their ability to execute at speed. https://www.deeplearning.ai/the-batch/issue-272 Wed, 23 Oct 2024 00:00:00 +0000 Bogus Apps, AI Boomtown, Better Embeddings, 2024 Highlights https://www.deeplearning.ai/the-batch/issue-271 The Batch AI News and Insights: It’s high time to take geoengineering more seriously as a potential tool to mitigate climate change. https://www.deeplearning.ai/the-batch/issue-271 Wed, 16 Oct 2024 00:00:00 +0000 How Meta’s Movie Gen Does It, AI’s Criminal Underground, Court Says LAION is Legal, OpenAI’s New Voice API https://www.deeplearning.ai/the-batch/issue-270 The Batch AI News and Insights: Congratulations to Geoff Hinton and John Hopfield for winning the 2024 Physics Nobel Prize! https://www.deeplearning.ai/the-batch/issue-270 Wed, 09 Oct 2024 00:00:00 +0000 Llama Goes Multimodal, Pros Embrace Generative Video, Military AI Guidelines, LLMs That Read Spreadsheets https://www.deeplearning.ai/the-batch/issue-269 The Batch AI News and Insights: We won! California’s anti-innovation bill SB 1047 was vetoed by Governor Newsom over the weekend. https://www.deeplearning.ai/the-batch/issue-269 Wed, 02 Oct 2024 00:00:00 +0000 Hollywood Embraces Video Gen, New Restrictions on Deepfakes, More Open Source Models, Robot Server https://www.deeplearning.ai/the-batch/issue-268 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. https://www.deeplearning.ai/the-batch/issue-268 Wed, 25 Sep 2024 00:00:00 +0000 Models Built for Reasoning, High Gear for Llama 3.1, Brains for Warehouse Robots, Stopping LLMs From Plagiarizing https://www.deeplearning.ai/the-batch/issue-267 The Batch AI News and Insights: Years ago, when I was working at a large tech company, I was responsible for the data warehouse. https://www.deeplearning.ai/the-batch/issue-267 Wed, 18 Sep 2024 00:00:00 +0000 Nations Sign Binding AI Treaty, Waymo Reveals Safety Record, 2D to 3D Goes Mainstream, Balancing Web Data Distributions https://www.deeplearning.ai/the-batch/issue-266 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. https://www.deeplearning.ai/the-batch/issue-266 Wed, 11 Sep 2024 00:00:00 +0000 Hallucination Index, AI-Powered Policing Goes National, Explainable LLMs, Faster Processing for Longer Inputs https://www.deeplearning.ai/the-batch/issue-265 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. https://www.deeplearning.ai/the-batch/issue-265 Wed, 04 Sep 2024 00:00:00 +0000 AI Restores ALS Patient’s Voice, AI Lobby Grows, Agentic Coding Advances, Massively Multimodal Model https://www.deeplearning.ai/the-batch/issue-264 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). https://www.deeplearning.ai/the-batch/issue-264 Wed, 28 Aug 2024 00:00:00 +0000 AI Agents Generate Novel Research, Google Imagen 3 Raises the Bar, Alibaba’s Open Models for Specialized Tasks, Scaling Laws for Data Quality https://www.deeplearning.ai/the-batch/issue-263 The Batch AI News and Insights: I’m encouraged at the progress of the U.S. government at moving to stem harmful AI applications. https://www.deeplearning.ai/the-batch/issue-263 Wed, 21 Aug 2024 00:00:00 +0000 LLM Price War, Black Forest’s Open Image Generator, The High Cost of AI Leadership, Machine Translation Goes Agentic https://www.deeplearning.ai/the-batch/issue-262 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. https://www.deeplearning.ai/the-batch/issue-262 Wed, 14 Aug 2024 00:00:00 +0000 Google Gets Character.AI Co-Founders, Ukraine's Aquatic Drones, AI Recruiting Tools Fuel Arms Race, ASCII Art Defeats LLM Guardrails https://www.deeplearning.ai/the-batch/issue-261 The Batch AI News & Insights: I’m delighted to announce AI Python for Beginners, a sequence of free short courses that teach anyone to code, regardless of background. https://www.deeplearning.ai/the-batch/issue-261 Wed, 07 Aug 2024 00:00:00 +0000 Llama 3.1 is State-of-the-Art and Open, Web Data Goes Dark, OpenAI Takes on Google and Bing, Synthetic Data Improves https://www.deeplearning.ai/the-batch/issue-260 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. https://www.deeplearning.ai/the-batch/issue-260 Wed, 31 Jul 2024 00:00:00 +0000 OpenAI Shrinks GPT-4o, Meta Withholds Models From Europe, Investors Hoard GPUs, Synthetic Talking Heads Get Expressive https://www.deeplearning.ai/the-batch/issue-259 The Batch AI News and Insights: AI’s usefulness in a wide variety of applications creates many opportunities for entrepreneurship. https://www.deeplearning.ai/the-batch/issue-259 Wed, 24 Jul 2024 00:00:00 +0000 Hallucination Detector, Battle of the Image Generators, How Open Are Open Models?, Copyright Claim Fails Against GitHub https://www.deeplearning.ai/the-batch/issue-258 The Batch AI News and Insights: “Democracy is the worst form of government, except for all the others,” said Winston Churchill. https://www.deeplearning.ai/the-batch/issue-258 Wed, 17 Jul 2024 00:00:00 +0000 AI’s Cloudy Path to Zero Emissions, Amazon’s Agent Builders, Claude’s UI Advance, Training On Consumer GPUs https://www.deeplearning.ai/the-batch/issue-257 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. https://www.deeplearning.ai/the-batch/issue-257 Wed, 10 Jul 2024 00:00:00 +0000 OpenAI Blocks China, Tests for Human-Level Models, Music Industry Sues AI Startups, Model Merging Evolves https://www.deeplearning.ai/the-batch/issue-256 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. https://www.deeplearning.ai/the-batch/issue-256 Wed, 03 Jul 2024 00:00:00 +0000 AI Monopolies, Ancestor Avatars, Benchmarks for Agentic Behavior, Chatbot for Minority Languages https://www.deeplearning.ai/the-batch/issue-255 The Batch AI News and Insights: On Monday, a number of large music labels sued AI music makers Suno and Udio for copyright infringement. https://www.deeplearning.ai/the-batch/issue-255 Wed, 26 Jun 2024 00:00:00 +0000 Open Model Bonanza, Private Benchmarks for Fairer Tests, More Interactive Music Generation, Diffusion + GAN https://www.deeplearning.ai/the-batch/issue-254 The Batch AI News and Insights: On Father’s Day last weekend, I sat with my daughter to help her practice solving arithmetic problems. https://www.deeplearning.ai/the-batch/issue-254 Wed, 19 Jun 2024 00:00:00 +0000 Apple’s Gen AI Strategy, Stability's Copyright-Clear Audio Generator, International Safety Agreements, LLMs Play Doctor https://www.deeplearning.ai/the-batch/issue-253 The Batch AI News and Insights: One reason for machine learning’s success is that our field welcomes a wide range of work. https://www.deeplearning.ai/the-batch/issue-253 Wed, 12 Jun 2024 00:00:00 +0000 The AI PC Arrives, OpenAI Used For Disinformation, U.S. and China Seek AI Agreement, Training Models to Reason https://www.deeplearning.ai/the-batch/issue-252 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. https://www.deeplearning.ai/the-batch/issue-252 Wed, 05 Jun 2024 00:00:00 +0000 Heart-Risk Model Saves Lives, Self-Driving on Unruly Roads, Knowledge Workers Embrace AI, Richer Context for RAG https://www.deeplearning.ai/the-batch/issue-251 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. https://www.deeplearning.ai/the-batch/issue-251 Wed, 29 May 2024 00:00:00 +0000 Music Industry Titan Targets AI, End-to-End Multimodality, Millions of Tokens of Context, More Responsive Text-to-Image https://www.deeplearning.ai/the-batch/issue-250 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. https://www.deeplearning.ai/the-batch/issue-250 Wed, 22 May 2024 00:00:00 +0000 OpenAI’s Rules for Model Behavior, Better Brain-Controlled Robots, AlphaFold 3 Covers All Biochemistry, AI Oasis in the Desert https://www.deeplearning.ai/the-batch/issue-249 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... https://www.deeplearning.ai/the-batch/issue-249 Wed, 15 May 2024 00:00:00 +0000 OpenAI Licenses News Archives, Generative Coding From Plan to Pull Request, Recognizing Landmines, Streamlined Inference https://www.deeplearning.ai/the-batch/issue-248 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. https://www.deeplearning.ai/the-batch/issue-248 Wed, 08 May 2024 00:00:00 +0000 Apple’s Tiny LLMs, Amazon Rethinks Cashier-Free Stores, Predicting Scientific Discoveries https://www.deeplearning.ai/the-batch/issue-247 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... https://www.deeplearning.ai/the-batch/issue-247 Wed, 01 May 2024 00:00:00 +0000 Pop Song Generators, 3D Mesh Generators, Real-World Benchmarks, AI for Manufacturing https://www.deeplearning.ai/the-batch/issue-246 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. https://www.deeplearning.ai/the-batch/issue-246 Wed, 24 Apr 2024 00:00:00 +0000 AI Agents With Low/No Code, Hallucinations Create Security Holes, Tuning for RAG Performance, GPT Store’s Lax Moderation https://www.deeplearning.ai/the-batch/issue-245 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... https://www.deeplearning.ai/the-batch/issue-245 Wed, 17 Apr 2024 00:00:00 +0000 Autonomous Coding Agents, Instability at Stability AI, Mamba Mania, What Users Do With GenAI https://www.deeplearning.ai/the-batch/issue-244 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. https://www.deeplearning.ai/the-batch/issue-244 Wed, 10 Apr 2024 00:00:00 +0000 Microsoft Absorbs Inflection, Nvidia’s New GPUs, Managing AI Bio Risk, More Factual LLMs https://www.deeplearning.ai/the-batch/issue-243 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. https://www.deeplearning.ai/the-batch/issue-243 Wed, 03 Apr 2024 00:00:00 +0000 One Agent For Many Worlds, Cross-Species Cell Embeddings, U.S. Deploys AI Targeting, Robo Football Gets Real https://www.deeplearning.ai/the-batch/issue-242 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... https://www.deeplearning.ai/the-batch/issue-242 Wed, 27 Mar 2024 00:00:00 +0000 Robots Talk Back, AI Security Risks, Political Deepfakes, Pretrained Models on the Cheap https://www.deeplearning.ai/the-batch/issue-241 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. https://www.deeplearning.ai/the-batch/issue-241 Wed, 20 Mar 2024 00:00:00 +0000 Anthropic Ups the Ante, India Warns Developers, Google Tests Generative News, Learning Language Without Language Training https://www.deeplearning.ai/the-batch/issue-240 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. https://www.deeplearning.ai/the-batch/issue-240 Wed, 13 Mar 2024 00:00:00 +0000 Mistral Living Large, Google's Open Source Challenger, Robot Chemist, Schooling Language Models in Math https://www.deeplearning.ai/the-batch/issue-239 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. https://www.deeplearning.ai/the-batch/issue-239 Wed, 06 Mar 2024 00:00:00 +0000 Google's Troubled Gemini Launch, OpenAI's Next Act, Groq's Blazing Inference Speed, Faster Network Pruning https://www.deeplearning.ai/the-batch/issue-238 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. https://www.deeplearning.ai/the-batch/issue-238 Wed, 28 Feb 2024 00:00:00 +0000 Generated Video Gets Real(er), Nvidia Competitor Emerges, Neural Nets for Gymnastics, Efficient Optimizer https://www.deeplearning.ai/the-batch/issue-237 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. https://www.deeplearning.ai/the-batch/issue-237 Wed, 21 Feb 2024 00:00:00 +0000 AI Recovers Ancient Scrolls, GPUs Strain Power Grid, Government Restricts Fake Voices, Better Image Generation https://www.deeplearning.ai/the-batch/issue-236 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... https://www.deeplearning.ai/the-batch/issue-236 Wed, 14 Feb 2024 00:00:00 +0000 Taylor Swift Deepfakes, GPT-4 Biothreats, New Leaderboards, LLMs That Get Inside Your Head https://www.deeplearning.ai/the-batch/issue-235 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) https://www.deeplearning.ai/the-batch/issue-235 Wed, 07 Feb 2024 00:00:00 +0000 AI Jobs Proliferate, Big Compute Giveaway, Generated Video Upgrade, Higher Yields for Small Farms https://www.deeplearning.ai/the-batch/issue-234 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. https://www.deeplearning.ai/the-batch/issue-234 Wed, 31 Jan 2024 00:00:00 +0000 Machine Learning Detects Cancer Early, Language Model Learns Geometry, AI Creates Jobs, Nations Invest in Homegrown AI https://www.deeplearning.ai/the-batch/issue-233 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. https://www.deeplearning.ai/the-batch/issue-233 Wed, 24 Jan 2024 00:00:00 +0000 AI Invades Consumer Products, OpenAI’s Platform Play, Watermarks for Synthetic Media, Generated Musical Accompaniments https://www.deeplearning.ai/the-batch/issue-232 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. https://www.deeplearning.ai/the-batch/issue-232 Wed, 17 Jan 2024 00:00:00 +0000 AI Discovers New Antibiotics, OpenAI Revamps Safety, Researchers Define AGI, LLMs Go Multimodal https://www.deeplearning.ai/the-batch/issue-231 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... https://www.deeplearning.ai/the-batch/issue-231 Wed, 10 Jan 2024 00:00:00 +0000 GPT-4 Tells Lies, Microscopes Recognize Cancer, AI Fights Climate Change, Paris Spawns AI Startups https://www.deeplearning.ai/the-batch/issue-230 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... https://www.deeplearning.ai/the-batch/issue-230 Wed, 03 Jan 2024 00:00:00 +0000 Hopes for 2024 from Anastasis Germanidis, Sara Hooker, Percy Liang, Sasha Luccioni, Pelonomi Moiloa, Kevin Scott https://www.deeplearning.ai/the-batch/issue-229 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. https://www.deeplearning.ai/the-batch/issue-229 Wed, 27 Dec 2023 00:00:00 +0000 Top Stories of 2023: Generative Everything, Doomsday Visions, Hollywood Versus AI, AI's Hit Record, Copyright Owners Revolt https://www.deeplearning.ai/the-batch/issue-228 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-228 Wed, 20 Dec 2023 00:00:00 +0000 Google’s Answer to GPT-4, Europe's Restrictions on AI, Open Source’s New Champion, Meta’s Vision Architecture https://www.deeplearning.ai/the-batch/issue-227 The Batch - AI News & Insights: Last week, I participated in the United States Senate’s Insight Forum on Artificial Intelligence to discuss “Risk, Alignment, & Guarding Against Doomsday Scenarios.” https://www.deeplearning.ai/the-batch/issue-227 Wed, 13 Dec 2023 00:00:00 +0000 Amazon's New Chatbot, Pedestrian Detection, Limits on AI in Insurance, a Robot That Can Find Your Keys https://www.deeplearning.ai/the-batch/issue-226 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-226 Wed, 06 Dec 2023 00:00:00 +0000 Docs Wary of Medical AI, LLMs for Robots, Siemens' Industrial-Strength Language Model, Testing LLMs https://www.deeplearning.ai/the-batch/issue-225 The Batch - AI News & 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)... https://www.deeplearning.ai/the-batch/issue-225 Wed, 29 Nov 2023 00:00:00 +0000 Wild Times at OpenAI, Do Generative AI and Politics Mix?, More GPUs On the Way, Taming Transformers https://www.deeplearning.ai/the-batch/issue-224 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-224 Wed, 22 Nov 2023 00:00:00 +0000 Cyberattack Strikes OpenAI, Actors Reach Accord on AI, Anthropic Goes Steady with Google and Amazon https://www.deeplearning.ai/the-batch/issue-223 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-223 Wed, 15 Nov 2023 00:00:00 +0000 OpenAI Empowers Developers, AI Risk in the Spotlight, Decoding Schizophrenic Language, Synthetic Data Helps Image Classification https://www.deeplearning.ai/the-batch/issue-222 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-222 Wed, 08 Nov 2023 00:00:00 +0000 Problematic White House AI Policy, Parked Cruise Robotaxis, Transparency For Foundation Models, Synthetic Data Helps Image Generators https://www.deeplearning.ai/the-batch/issue-221 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-221 Wed, 01 Nov 2023 00:00:00 +0000 Feel the Fear! AI Turns Deadly, Data Disappears, Criminals Clone Voices, Hype Overshoots Reality https://www.deeplearning.ai/the-batch/issue-220 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-220 Wed, 25 Oct 2023 00:00:00 +0000 AI for Brain Surgery, Microsoft's ChatGPT Bill, Google's Generative Phones, Better Prompts https://www.deeplearning.ai/the-batch/issue-219 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-219 Wed, 18 Oct 2023 00:00:00 +0000 GPT-4 Opens Its Eyes, Meta’s Generative Facelift, Newsrooms Respond to AI, Beware Training on Generated Data https://www.deeplearning.ai/the-batch/issue-218 The Batch - AI News & Insights: Over the weekend, Hamas launched a surprise terrorist attack on Israel, slaughtering and kidnapping civilians. https://www.deeplearning.ai/the-batch/issue-218 Wed, 11 Oct 2023 00:00:00 +0000 AI's New Power Couple, Movie Industry Limits AI, YouTube Goes Generative, More Web Data = More Bias https://www.deeplearning.ai/the-batch/issue-217 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-217 Wed, 04 Oct 2023 00:00:00 +0000 ChatGPT Goes Multimodal, Dating Apps Embrace AI, Microsoft Doubles Down on Chatbots, AI Drives Energy Efficiency https://www.deeplearning.ai/the-batch/issue-216 The Batch - AI News & 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… https://www.deeplearning.ai/the-batch/issue-216 Wed, 27 Sep 2023 00:00:00 +0000 Text-to-Music Generation, Military Drone Swarm, Machine Translation Blocks Asylum Seekers https://www.deeplearning.ai/the-batch/issue-215 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-215 Wed, 20 Sep 2023 00:00:00 +0000 ChatGPT Keeps Your Secrets, Microsoft Embraces GenAI Risk, Google Demands GenAI Disclosure https://www.deeplearning.ai/the-batch/issue-214 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-214 Wed, 13 Sep 2023 00:00:00 +0000 High Wages for AI Talent, Fake Newscasters, DeepMind’s Offspring Proliferate https://www.deeplearning.ai/the-batch/issue-213 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-213 Wed, 06 Sep 2023 00:00:00 +0000 Text to 3D Animation, China Restricts Face Recognition, Self-Driving Cars Get Crash Recorders https://www.deeplearning.ai/the-batch/issue-212 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-212 Wed, 30 Aug 2023 00:00:00 +0000 Battle Over Training Data Heats Up, AI Chip Challenger Gains Traction, Vision Transformers Get Flexible https://www.deeplearning.ai/the-batch/issue-211 The Batch - AI News & 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). https://www.deeplearning.ai/the-batch/issue-211 Wed, 23 Aug 2023 00:00:00 +0000 GPU Shortage, Affordable Robodog, Humanizing Large Language Models, China's Open LLMs https://www.deeplearning.ai/the-batch/issue-210 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-210 Wed, 16 Aug 2023 00:00:00 +0000 Medical AI Advances, Chatbots Work the Drive-Thru, ChatGPT Racks Up Server Fees, Image Generators Get an Upgrade https://www.deeplearning.ai/the-batch/issue-209 The Batch - AI News & Insights: Do large language models understand the world? As a scientist and engineer, I’ve avoided asking whether an AI system “understands” anything. https://www.deeplearning.ai/the-batch/issue-209 Wed, 09 Aug 2023 00:00:00 +0000 Drones of War, Generative AI in the Cloud, K-Pop in Many Tongues, Better Weather Forecasts https://www.deeplearning.ai/the-batch/issue-208 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-208 Wed, 02 Aug 2023 00:00:00 +0000 ChatGPT Performance Drifts, Apple Grapples With Generative AI, Big AI Accepts Voluntary Limits https://www.deeplearning.ai/the-batch/issue-207 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-207 Wed, 26 Jul 2023 00:00:00 +0000 Generative AI On Trial, Chatbot Shoot-Out, Top AI Startups, No Hyperparameters External Inbox https://www.deeplearning.ai/the-batch/issue-206 The Batch - AI News & 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! https://www.deeplearning.ai/the-batch/issue-206 Wed, 19 Jul 2023 00:00:00 +0000 Stable Biases, Jobs at Risk, Efficient Robot Training, Banks Embrace AI https://www.deeplearning.ai/the-batch/issue-205 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-205 Wed, 12 Jul 2023 00:00:00 +0000 The Secret Life of Data Labelers, Letting Chatbots See Your Data, Making Government Multilingual https://www.deeplearning.ai/the-batch/issue-204 The Batch - AI News & Insights: Prompt-based development is making the machine learning development cycle much faster: Projects that used to take months now may take days. https://www.deeplearning.ai/the-batch/issue-204 Wed, 05 Jul 2023 00:00:00 +0000 Meta’s Generative Strategy, Robots Invade Mechanical Turk, U.S. Gears Up to Regulate, Better Fine-Tuning https://www.deeplearning.ai/the-batch/issue-203 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-203 Wed, 28 Jun 2023 00:00:00 +0000 Generative Economic Engine, Tesla Semiautonomous Crashes, LLMs in the Courtroom, Seeing What the Brain Sees https://www.deeplearning.ai/the-batch/issue-202 The Batch - AI News & 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! https://www.deeplearning.ai/the-batch/issue-202 Wed, 21 Jun 2023 00:00:00 +0000 Taught by a Bot, Game Devs Embrace Generative AI, Japan's Data Free-For-All, Faster Diffusion https://www.deeplearning.ai/the-batch/issue-201 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-201 Wed, 14 Jun 2023 00:00:00 +0000 Bengio, Too, is Anxious About AI; LAION Tests Copyright Law; Abu Dhabi Develops Top Model; Optimizing Matrix Multiplication https://www.deeplearning.ai/the-batch/issue-200 The Batch - AI News & 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.” https://www.deeplearning.ai/the-batch/issue-200 Wed, 07 Jun 2023 00:00:00 +0000 New Push to Regulate AI, Weapons Detector Misses Knives, Grimes Embraces Voice Cloning, Text-to-Image Editing Evolves https://www.deeplearning.ai/the-batch/issue-199 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-199 Wed, 31 May 2023 00:00:00 +0000 EU's Algorithm Investigators, Crystal Ball for Interest Rates, Image Gen for Architects, Big Results From TinyML https://www.deeplearning.ai/the-batch/issue-198 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-198 Wed, 24 May 2023 00:00:00 +0000 Google Goes All-In on AI, Do You Share GPT-3's Politics?, Generative AI Productivity Boost, Text to 3D Without 3D Data https://www.deeplearning.ai/the-batch/issue-197 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-197 Wed, 17 May 2023 00:00:00 +0000 Battlefield Chat, Protecting Artists' Styles, OpenAI Retools for Business, Language Models for Science Search https://www.deeplearning.ai/the-batch/issue-196 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-196 Wed, 10 May 2023 00:00:00 +0000 AI Scares Deep Learning Pioneer Geoffrey Hinton, Radio Tests AI DJs, Generated Political Attack Ad https://www.deeplearning.ai/the-batch/issue-195 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-195 Wed, 03 May 2023 00:00:00 +0000 Data Providers Hike Prices, Google AI Plans Leak, Music Stars Get Cloned, Image Generators Copy Training Data https://www.deeplearning.ai/the-batch/issue-194 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-194 Wed, 26 Apr 2023 00:00:00 +0000 Record Industry Fights Generated Music, AWS Launches GenAI Platform, France Embraces Surveillance, Prompt Generation https://www.deeplearning.ai/the-batch/issue-193 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-193 Wed, 19 Apr 2023 00:00:00 +0000 AI Startups Face Compute Shortage, Detecting Generated Text, Italy Bans ChatGPT, AI Trends Report https://www.deeplearning.ai/the-batch/issue-192 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-192 Wed, 12 Apr 2023 00:00:00 +0000 Robot Metal Workers, Better Pay for Data Wranglers, Building a South African AI Hub, Collaborative Language Model https://www.deeplearning.ai/the-batch/issue-191 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-191 Wed, 05 Apr 2023 00:00:00 +0000 Public Attitudes Toward AI, Wanted: Prompt Engineers, AI Chips Slip Through U.S. Trade Ban, Efficient Reinforcement Learning https://www.deeplearning.ai/the-batch/issue-190 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-190 Wed, 29 Mar 2023 00:00:00 +0000 How AI Kingpins Lost in Chatbots, Microsoft Cuts Ethics Squad, AI Curates the News, Training Robots in the Real World https://www.deeplearning.ai/the-batch/issue-189 The Batch - AI News & 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. . . . https://www.deeplearning.ai/the-batch/issue-189 Wed, 22 Mar 2023 00:00:00 +0000 GPT-4 Has Landed, AI Infers Talent, LLaMA Escapes into the Wild, Vision and Language Tightly Bound https://www.deeplearning.ai/the-batch/issue-188 The Batch - AI News & 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! https://www.deeplearning.ai/the-batch/issue-188 Wed, 15 Mar 2023 00:00:00 +0000 Voice Clones Go Viral, No Copyright for Generated Images, Text-Driven Video Style Transfer, Romania's AI Adviser https://www.deeplearning.ai/the-batch/issue-187 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-187 Wed, 08 Mar 2023 00:00:00 +0000 China Catches ChatGPT Fever, Top Publishers Embrace Text Generation, Replika’s Hot Bot Turns Cold, PCA Raises Red Flags https://www.deeplearning.ai/the-batch/issue-186 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-186 Wed, 01 Mar 2023 00:00:00 +0000 Chatbots Gone Wild, Surveillance Takes Hold, Rules for Military AI, Robot Training Streamlined https://www.deeplearning.ai/the-batch/issue-185 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-185 Wed, 22 Feb 2023 00:00:00 +0000 AI Titans Clash, Deepfaked Propaganda Spreads, Generative Models Resurrect Seinfeld, Unuseful Data Gets Pruned https://www.deeplearning.ai/the-batch/issue-184 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-184 Wed, 15 Feb 2023 00:00:00 +0000 Generative AI on Trial, Text-to-Music Pumps Up the Volume, Robotaxis Face Headwinds, Mitigating AI Risk https://www.deeplearning.ai/the-batch/issue-183 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-183 Wed, 08 Feb 2023 00:00:00 +0000 Tesla's Deceptive Demo, Image Generator Pays Artists for Training Data, AI Cheat Bedevils Esports, Language Models Defy Logic https://www.deeplearning.ai/the-batch/issue-182 The Batch - AI News & 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? https://www.deeplearning.ai/the-batch/issue-182 Wed, 01 Feb 2023 00:00:00 +0000 Microsoft and OpenAI Forge $10 Billion Deal, Google Challenges ChatGPT, CNET Trusts Untrustworthy Text Generator, China Restricts Deepfakes https://www.deeplearning.ai/the-batch/issue-181 The Batch - AI News & 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.”... https://www.deeplearning.ai/the-batch/issue-181 Wed, 25 Jan 2023 00:00:00 +0000 Generated Code Makes Overconfident Programmers, China's Autonomous Drone Carrier, Does Bot Therapy Require Informed Consent?, Mining for Green Tech https://www.deeplearning.ai/the-batch/issue-180 The Batch - AI News & 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? https://www.deeplearning.ai/the-batch/issue-180 Wed, 18 Jan 2023 00:00:00 +0000 ChatGPT Backlash, Face Recognition to Settle Scores, Deepfakes Versus Customer Service, Segmented Images Without Labeled Data https://www.deeplearning.ai/the-batch/issue-179 The Batch - AI News & 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?... https://www.deeplearning.ai/the-batch/issue-179 Wed, 11 Jan 2023 00:00:00 +0000 Data Shortage?!, Precision-Guided Image Generation, Transparency for AI Vendors, AI in the Office https://www.deeplearning.ai/the-batch/issue-178 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-178 Wed, 04 Jan 2023 00:00:00 +0000 Hopes for 2023 from Yoshua Bengio, Been Kim, Douwe Kiela, Reza Zadeh, Alon Halevy https://www.deeplearning.ai/the-batch/issue-177 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-177 Wed, 28 Dec 2022 00:00:00 +0000 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 https://www.deeplearning.ai/the-batch/issue-176 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-176 Wed, 21 Dec 2022 00:00:00 +0000 FIFA World Cup's AI Referee, Apple Car Downshifts, Lensa AI Disrobes Users, Language Model Consults Database https://www.deeplearning.ai/the-batch/issue-175 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-175 Wed, 14 Dec 2022 00:00:00 +0000 ChatGPT Mania, Crypto Fiasco Defunds AI Safety, Alexa Makes Up Stories, Vision Model Looks Into the Future https://www.deeplearning.ai/the-batch/issue-174 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-174 Wed, 07 Dec 2022 00:00:00 +0000 Billboards Are Watching, City Goes Algorithmic, Auto-Translation for Unwritten Language, New Views of 3D Scenes Pronto! https://www.deeplearning.ai/the-batch/issue-173 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-173 Wed, 30 Nov 2022 00:00:00 +0000 Artists Rebel Against AI, One Weird Trick Beats Go Model, Neural Nets Vs. Decision Trees, More Bang Per Chip https://www.deeplearning.ai/the-batch/issue-172 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-172 Wed, 23 Nov 2022 00:00:00 +0000 Trends in 2022, AI Isn't So Bad for Jobs, Price Optimization Vs. Price Hike, Visual Reasoning Advances https://www.deeplearning.ai/the-batch/issue-171 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-171 Wed, 16 Nov 2022 00:00:00 +0000 Safety or Surveillance?, What Businesses Want from AI, Right-Sizing Models, AI-Driven Aquaculture https://www.deeplearning.ai/the-batch/issue-170 The Batch - AI News & 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... https://www.deeplearning.ai/the-batch/issue-170 Wed, 09 Nov 2022 00:00:00 +0000 Generative AI Brings Big Bucks, Assessing Ukraine War Damage, Candidates Target Voters, Translating 1,000 Languages https://www.deeplearning.ai/the-batch/issue-169 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-169 Wed, 02 Nov 2022 00:00:00 +0000 The Batch: Happy Halloween! Neural Nets Awaken, Foundation Models Go Rogue, Bots Take Over the Office, GPUs Dry Up https://www.deeplearning.ai/the-batch/issue-168 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-168 Wed, 26 Oct 2022 00:00:00 +0000 The Batch: U.S. Blocks AI Chip Sales to China, Joe Rogan Meets Steve Jobs (Virtually), Massively Multilingual Translation, Smart Farms https://www.deeplearning.ai/the-batch/issue-167 The Batch - AI News & 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? https://www.deeplearning.ai/the-batch/issue-167 Wed, 19 Oct 2022 00:00:00 +0000 The Batch: Text-to-Video Explodes, Faster Fast Food, Regulating Medical AI, Coordinating Hurricane Relief https://www.deeplearning.ai/the-batch/issue-166 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-166 Wed, 12 Oct 2022 00:00:00 +0000 The Batch: DALL·E for Video, AI Startup Funding Falls, What the Dark Side of the Moon Looks Like, Modeling Spoken Conversation https://www.deeplearning.ai/the-batch/issue-165 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-165 Wed, 05 Oct 2022 00:00:00 +0000 The Batch: Robot Assistants Take a Step Forward, Nvidia Boosts AI as a Service, AI Enters Prisons, How to Train Vision Transformers https://www.deeplearning.ai/the-batch/issue-164 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-164 Wed, 28 Sep 2022 00:00:00 +0000 The Batch: Data Scientists Analyze Data Science, AI Regulation Uses Undefined Terms, Robots LOL, AI Mattes Images https://www.deeplearning.ai/the-batch/issue-163 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-163 Wed, 21 Sep 2022 00:00:00 +0000 The Batch: Prompting DALL·E for Fun and Profit, Teaching Language Models New Info, Court Rules Against AI Proctoring, Predicting Breakdowns Keeps Factories Humming https://www.deeplearning.ai/the-batch/issue-162 The Batch - AI News & 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. https://www.deeplearning.ai/the-batch/issue-162 Wed, 14 Sep 2022 00:00:00 +0000 The Batch: GPU Geopolitics, Spotting Tax Cheats, Luring Subscribers, Accelerating Transformers https://www.deeplearning.ai/the-batch/issue-161 The Batch - AI News & Insights. Paywalled journals that block free access to scientific research are the bane of the academic community. https://www.deeplearning.ai/the-batch/issue-161 Wed, 07 Sep 2022 00:00:00 +0000 The Batch: Misinformation Recognition, China's AI ROI, Neural Nets Catch Fresher Fish, Object Detection Transformers Simplified https://www.deeplearning.ai/the-batch/issue-160 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. https://www.deeplearning.ai/the-batch/issue-160 Wed, 31 Aug 2022 00:00:00 +0000 The Batch: AI Regulations Proceed Locally, Taming Spurious Correlations, One Cool Robot, What a Molecule’s Structure Reveals https://www.deeplearning.ai/the-batch/issue-159 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... https://www.deeplearning.ai/the-batch/issue-159 Wed, 24 Aug 2022 00:00:00 +0000 The Batch: Science Plagued by Machine Learning Mistakes, Deepfakes Censor Profanity, Wearable AI Helps Impaired Walking, Ensemble Models Simplified https://www.deeplearning.ai/the-batch/issue-158 The Batch - AI News & Insights: Science Plagued by Machine Learning Mistakes, Deepfakes Censor Profanity, Wearable AI Helps Impaired Walking, Ensemble Models Simplified https://www.deeplearning.ai/the-batch/issue-158 Wed, 17 Aug 2022 00:00:00 +0000 The Batch: AI Jobs Grow in Pharma, Self-Driving Safety Check, Holocaust Victims Identified, Protein Families Deciphered https://www.deeplearning.ai/the-batch/issue-157 The Batch - AI News & Insights: AI Jobs Grow in Pharma, Self-Driving Safety Check, Holocaust Victims Identified, Protein Families Deciphered https://www.deeplearning.ai/the-batch/issue-157 Wed, 10 Aug 2022 00:00:00 +0000 The Batch: UK's Drone Superhighway, Largest Open Source Language Model, AI Protects Bees, Countering Biased Labels https://www.deeplearning.ai/the-batch/issue-156 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. https://www.deeplearning.ai/the-batch/issue-156 Wed, 03 Aug 2022 00:00:00 +0000 The Batch: Military AI Spending Grows, Automated Talent Scout, Drive-Thru Car Inspection, Humanized Training for Robots https://www.deeplearning.ai/the-batch/issue-155 In this issue of The Batch: AI War Chest Grows | Drive-Thru Car Inspection Uses Computer Vision | AI computer vision grading soccer players... https://www.deeplearning.ai/the-batch/issue-155 Wed, 27 Jul 2022 00:00:00 +0000 The Batch: In-Demand Job Titles, New Rules for Self-Driving Cars, How to Cut AI's Carbon Emissions, Learning from Metadata https://www.deeplearning.ai/the-batch/issue-154 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. https://www.deeplearning.ai/the-batch/issue-154 Wed, 20 Jul 2022 00:00:00 +0000 The Batch: Self-Driving Car Fleet Stalls, Homebrew DALL·E Goes Viral, Microsoft's AI Ethics Upgrade, When Higher Accuracy Hurts Some Classes https://www.deeplearning.ai/the-batch/issue-153 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. https://www.deeplearning.ai/the-batch/issue-153 Wed, 13 Jul 2022 00:00:00 +0000 The Batch: Autonomous Atlantic Crossing, AI in the Courtroom, Satellite Photos Reveal Secrets, More Masking For Better Learning https://www.deeplearning.ai/the-batch/issue-152 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 https://www.deeplearning.ai/the-batch/issue-152 Wed, 06 Jul 2022 00:00:00 +0000 The Batch: Machine Learning for Martian Drone, Regulators Punish Meta for Algorithmic Bias, Transformers Conquer Graphs https://www.deeplearning.ai/the-batch/issue-151 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. https://www.deeplearning.ai/the-batch/issue-151 Wed, 29 Jun 2022 00:00:00 +0000 The Batch: Next Step for Language Modeling, Predicting Wind Power, Even Bigger Transformers, Deep Doo-Doo https://www.deeplearning.ai/the-batch/issue-150 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. https://www.deeplearning.ai/the-batch/issue-150 Wed, 22 Jun 2022 00:00:00 +0000 The Batch: Google Engineer Claims Sentient AI, Ethics Team Grounds Taser Drones, Meta Reorgs AI Division, Deep Learning Optimizes Physical Designs https://www.deeplearning.ai/the-batch/issue-149 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. https://www.deeplearning.ai/the-batch/issue-149 Wed, 15 Jun 2022 00:00:00 +0000 The Batch: Top 100 AI Startups, Inside the Mind of DALL·E 2, Child Welfare Officials Drop AI, Fresh Images From Cellular Automata https://www.deeplearning.ai/the-batch/issue-148 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. https://www.deeplearning.ai/the-batch/issue-148 Wed, 08 Jun 2022 00:00:00 +0000 The Batch: AI Games Google, Actors Fight Deepfakes, Models Gain Good Judgement, Deep Learning Delivers Personalized Discounts https://www.deeplearning.ai/the-batch/issue-147 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. https://www.deeplearning.ai/the-batch/issue-147 Wed, 01 Jun 2022 00:00:00 +0000 The Batch: Special Issue! Foundational Algorithms, Where They Came From, Where They're Going https://www.deeplearning.ai/the-batch/issue-146 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. https://www.deeplearning.ai/the-batch/issue-146 Wed, 25 May 2022 00:00:00 +0000 The Batch: One Model For Hundreds of Tasks, Recognizing Workplace Hazards, When Data Means Danger, Vision Transformer Upgrade https://www.deeplearning.ai/the-batch/issue-145 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 https://www.deeplearning.ai/the-batch/issue-145 Wed, 18 May 2022 00:00:00 +0000 The Batch: Liberation for Large Language Models, AI Picks Music Hits, Robots in Hospitals https://www.deeplearning.ai/the-batch/issue-144 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. https://www.deeplearning.ai/the-batch/issue-144 Wed, 11 May 2022 00:00:00 +0000 The Batch: Predicting the Next Pandemic, Driverless Cars Go Driverless, Managing Medical Uncertainty, Data-Efficient Vision Transformers https://www.deeplearning.ai/the-batch/issue-143 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. https://www.deeplearning.ai/the-batch/issue-143 Wed, 04 May 2022 00:00:00 +0000 The Batch: Recognizing Distracted Drivers, Training Fighter Pilots, Dominating the Bridge Table, Training Trillions of Parameters https://www.deeplearning.ai/the-batch/issue-142 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. https://www.deeplearning.ai/the-batch/issue-142 Wed, 27 Apr 2022 00:00:00 +0000 The Batch: How DALL·E 2 Makes Images, Like GPT-3 But More Sensible, How AI Startups Spend Their Money, Robo Real Estate Agents https://www.deeplearning.ai/the-batch/issue-141 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 https://www.deeplearning.ai/the-batch/issue-141 Wed, 20 Apr 2022 00:00:00 +0000 The Batch: Recognizing War Criminals in Ukraine, Salesbots Invade LinkedIn, AI Radiology Cleared for Clinics https://www.deeplearning.ai/the-batch/issue-140 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. https://www.deeplearning.ai/the-batch/issue-140 Wed, 13 Apr 2022 00:00:00 +0000 The Batch: Government Smacks Down Errant Algorithms, Animal Animations From Video, AI For Biofuel, Is There Learning After Overfitting? https://www.deeplearning.ai/the-batch/issue-139 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 https://www.deeplearning.ai/the-batch/issue-139 Wed, 06 Apr 2022 00:00:00 +0000 The Batch: AI Designs Chemical Weapons, AI Gains Cultural Awareness, New Chip Accelerates Transformers, Spotting Dangerous Mutations https://www.deeplearning.ai/the-batch/issue-138 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. https://www.deeplearning.ai/the-batch/issue-138 Wed, 30 Mar 2022 00:00:00 +0000 The Batch: AI Builds AI, Face Recognition Sees Genetic Disorders, Stock Market Simulation, Tracking AI's Global Progress https://www.deeplearning.ai/the-batch/issue-137 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. https://www.deeplearning.ai/the-batch/issue-137 Wed, 23 Mar 2022 00:00:00 +0000 The Batch: AI For President, Pig Sqeal Recognition, Help For Problem Gamblers, Hypernetworks For Hyper Training https://www.deeplearning.ai/the-batch/issue-136 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). https://www.deeplearning.ai/the-batch/issue-136 Wed, 16 Mar 2022 00:00:00 +0000 The Batch: Demand For AI Skills Exceeds Supply, Robot Dogs Learn to Fetch, Investor Bots Underperform, Algorithms Shortchange Elders https://www.deeplearning.ai/the-batch/issue-135 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. https://www.deeplearning.ai/the-batch/issue-135 Wed, 09 Mar 2022 00:00:00 +0000 The Batch: Which Nation Dominates AI?, Meet Your Robot Colleagues, GANs Forecast Weather, Unmasking QAnon's Anonymous Conspiracy Theorist https://www.deeplearning.ai/the-batch/issue-134 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. https://www.deeplearning.ai/the-batch/issue-134 Wed, 02 Mar 2022 00:00:00 +0000 The Batch: AI For Unlimited Clean Energy, Stopping Robocalls, Reading Analog Meters, Choosing a Fine-Tuning Algorithm https://www.deeplearning.ai/the-batch/issue-133 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. https://www.deeplearning.ai/the-batch/issue-133 Wed, 23 Feb 2022 00:00:00 +0000 The Batch: AI Race Driver Beats Humans, Apple Bets On Generated Music, Robots Don't Want Your Job, SOA Versus FBP For ML https://www.deeplearning.ai/the-batch/issue-132 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... https://www.deeplearning.ai/the-batch/issue-132 Wed, 16 Feb 2022 00:00:00 +0000 The Batch: AlphaCode Beats Human Coders, Driving a Forklift In Pajamas, Facebook's New AI Cluster, Does Better Pretraining Yield Better Fine-Tuning? https://www.deeplearning.ai/the-batch/issue-131 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! https://www.deeplearning.ai/the-batch/issue-131 Wed, 09 Feb 2022 00:00:00 +0000 The Batch: AI Chip Supplies At Risk, GPT-3 Goes to Finishing School, Fake Faces For Training Face Recognition, Roadblocks to Regulating AI https://www.deeplearning.ai/the-batch/issue-130 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... https://www.deeplearning.ai/the-batch/issue-130 Wed, 02 Feb 2022 00:00:00 +0000 The Batch: Job Growth in Machine Learning, Amazon's AI-Driven Clothing Store, Transformers for Robot Vision, Hiring Algorithms Under Scrutiny https://www.deeplearning.ai/the-batch/issue-129 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. https://www.deeplearning.ai/the-batch/issue-129 Wed, 26 Jan 2022 00:00:00 +0000 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 https://www.deeplearning.ai/the-batch/issue-128 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 https://www.deeplearning.ai/the-batch/issue-128 Wed, 19 Jan 2022 00:00:00 +0000 The Batch: Recognizing Weapons, Reducing Garbage, Predicting Regime Change, Learning With Less Memory https://www.deeplearning.ai/the-batch/issue-127 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. https://www.deeplearning.ai/the-batch/issue-127 Wed, 12 Jan 2022 00:00:00 +0000 The Batch: Failing AI 101, Google's Robot Workforce, AI Against High Taxes, Ethics for Automated Armies https://www.deeplearning.ai/the-batch/issue-126 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. https://www.deeplearning.ai/the-batch/issue-126 Wed, 05 Jan 2022 00:00:00 +0000 The Batch: Hopes for 2022 from Alexei Efros, Abeba Birhane, Yoav Shoham, Chip Huyen, Matt Zeiler, Wolfram Burgard, Yale Song https://www.deeplearning.ai/the-batch/issue-125 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. https://www.deeplearning.ai/the-batch/issue-125 Wed, 29 Dec 2021 00:00:00 +0000 The Batch: Top AI Stories of 2021: Transformers Take Over, Models Balloon, Multimodal AI Takes Off, Governments Crack Down https://www.deeplearning.ai/the-batch/issue-123 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. https://www.deeplearning.ai/the-batch/issue-123 Wed, 22 Dec 2021 00:00:00 +0000 The Batch: TikTok's Recommender Revealed, DeepMind's Not-So-Large Language Models, Neural Troll Trap, Recognizing Rotations https://www.deeplearning.ai/the-batch/issue-122 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. https://www.deeplearning.ai/the-batch/issue-122 Wed, 15 Dec 2021 00:00:00 +0000 The Batch: Bias in Predictive Policing, Timnit Gebru vs Corporate AI, Autism Recognized, Transformers for Reinforcement Learning https://www.deeplearning.ai/the-batch/issue-121 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. https://www.deeplearning.ai/the-batch/issue-121 Wed, 08 Dec 2021 00:00:00 +0000 The Batch: AI Matches Patients to Drugs, Robots Crawl Sewers, New Voices for Atypical Speech, Graph Neural Networks Go Deep https://www.deeplearning.ai/the-batch/issue-120 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. https://www.deeplearning.ai/the-batch/issue-120 Wed, 01 Dec 2021 00:00:00 +0000 The Batch: Surveillance State In the Making?, Robot Fry Cook, U.S. AI Strategy, A Chatbot For Long Talks https://www.deeplearning.ai/the-batch/issue-119-2 I’m grateful to the AI community for the friendships it has brought me and the benefits it has brought to billions of people. https://www.deeplearning.ai/the-batch/issue-119-2 Wed, 24 Nov 2021 00:00:00 +0000 The Batch: Has AI Become Unaffordable?, Covid Confounds Price Prediction, Face Recognition Algorithms Are Not Equal, This Chatbot Knows How To Google https://www.deeplearning.ai/the-batch/issue-118 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. https://www.deeplearning.ai/the-batch/issue-118 Wed, 17 Nov 2021 00:00:00 +0000 The Batch: GPT-3 For All, DeepMind's Goldmine, Facebook Unfriends Face Recognition, Empowering Robots To Find What They Need https://www.deeplearning.ai/the-batch/issue-117 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. https://www.deeplearning.ai/the-batch/issue-117 Wed, 10 Nov 2021 00:00:00 +0000 The Batch: Facebook's Algorithm Revealed, Google's Mobile AI Chip Unveiled, Art Forgeries Exposed, How Algorithms Understand Video https://www.deeplearning.ai/the-batch/issue-116 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. https://www.deeplearning.ai/the-batch/issue-116 Wed, 03 Nov 2021 00:00:00 +0000 The Batch: Halloween Special! Monsters of AI Including Tech Giants, Explosive Drones, Surveillance Democracies, Foundation Models https://www.deeplearning.ai/the-batch/issue-115 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... https://www.deeplearning.ai/the-batch/issue-115 Wed, 27 Oct 2021 00:00:00 +0000 The Batch: Regulating AI, Where the MLEs Are, Real-Time Voice Replacement, Robot Painter https://www.deeplearning.ai/the-batch/issue-114 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! https://www.deeplearning.ai/the-batch/issue-114 Wed, 20 Oct 2021 00:00:00 +0000 The Batch: AI Has a Web Problem, Google Goes Multimodal, Unfinished Symphony Completed, Transformers Get Faster Still https://www.deeplearning.ai/the-batch/issue-113 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. https://www.deeplearning.ai/the-batch/issue-113 Wed, 13 Oct 2021 00:00:00 +0000 The Batch: Facebook on the Ropes, Tesla Tracks Driver Safety, Amazon Unleashes Guard Bot, Recognizing Outliers https://www.deeplearning.ai/the-batch/issue-112 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 https://www.deeplearning.ai/the-batch/issue-112 Wed, 06 Oct 2021 00:00:00 +0000 The Batch: AI Allocates Covid Tests, Makeup Thwarts Face Recognition, Making Neural Nets Think Harder, NeurIPS Under Fire https://www.deeplearning.ai/the-batch/issue-111 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 https://www.deeplearning.ai/the-batch/issue-111 Wed, 29 Sep 2021 00:00:00 +0000 The Batch: Distance Killing, Walmart Revs Driverless Delivery, Neural Net Learns Sense Of Style, UN Versus AI https://www.deeplearning.ai/the-batch/issue-110 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. https://www.deeplearning.ai/the-batch/issue-110 Wed, 22 Sep 2021 00:00:00 +0000 The Batch: China Clamps Down on Recommendation Engines, Robot Football, Ethics Survey, Reducing Elder Fall Risk https://www.deeplearning.ai/the-batch/issue-109 I invite you to be part of Pie & AI, a series of meetups that bring together members of the global AI community for education and conversation. Pie & AI is a place where you can network with peers, learn best practices from industry leaders... https://www.deeplearning.ai/the-batch/issue-109 Wed, 15 Sep 2021 00:00:00 +0000 The Batch: Predicting Climate Change, $500 Billion In AI Sales, Perceptrons Equal Transformers, Computer Vision Stares At The Sun https://www.deeplearning.ai/the-batch/issue-108 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. https://www.deeplearning.ai/the-batch/issue-108 Wed, 08 Sep 2021 00:00:00 +0000 The Batch: Tesla's Dancing Robot, Adapting to Climate Change, Asking Language Models Nicely, Machine Unlearning https://www.deeplearning.ai/the-batch/issue-107 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... https://www.deeplearning.ai/the-batch/issue-107 Wed, 01 Sep 2021 00:00:00 +0000 The Batch: Invasion of the Large Language Models, Can AI Recognize Opioid Addicts?, Better Coffee Through AI https://www.deeplearning.ai/the-batch/issue-106 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. https://www.deeplearning.ai/the-batch/issue-106 Wed, 25 Aug 2021 00:00:00 +0000 The Batch: Apple Weakens Privacy, AI's Invention Wins A Patent, Deere All-In For Robot Tractors, Atari-Playing Algo Learns New Trick https://www.deeplearning.ai/the-batch/issue-105 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?... https://www.deeplearning.ai/the-batch/issue-105 Wed, 18 Aug 2021 00:00:00 +0000 The Batch: AI Recognizes Race in X-Rays, Robots Do Bees' Work, Transformers Pay Closer Attention, New Research Centers https://www.deeplearning.ai/the-batch/issue-104 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. https://www.deeplearning.ai/the-batch/issue-104 Wed, 11 Aug 2021 00:00:00 +0000 The Batch: Gunshot Detection Under Fire, AI At The Olympics, AlphaFold Goes Open-Source, Revenge Of The Perceptrons https://www.deeplearning.ai/the-batch/issue-103 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? https://www.deeplearning.ai/the-batch/issue-103 Wed, 04 Aug 2021 00:00:00 +0000 The Batch: Face Recognition Audit, Gamers Cheat with AI, Who Rules the Smart City?, Language Learning Generalizes to Other Domains https://www.deeplearning.ai/the-batch/issue-102 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. https://www.deeplearning.ai/the-batch/issue-102 Wed, 28 Jul 2021 00:00:00 +0000 The Batch: Amazon's Algorithmic Mismanagement, Brainwaves to Text, OpenAI Drops Robotics, Multi-Scene Synthesis https://www.deeplearning.ai/the-batch/issue-101 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. https://www.deeplearning.ai/the-batch/issue-101 Wed, 21 Jul 2021 00:00:00 +0000 The Batch: Walking the Robot Dog, Mistaking German for English, Making Art With an Image Classifier, Zero-Shot Object Detection https://www.deeplearning.ai/the-batch/issue-100 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. https://www.deeplearning.ai/the-batch/issue-100 Wed, 14 Jul 2021 00:00:00 +0000 The Batch: Zillow's New Neural Net, Optimizing Traffic City-Wide, Classifying Creepy Crawlies, Behavioral Cloning https://www.deeplearning.ai/the-batch/issue-99 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... https://www.deeplearning.ai/the-batch/issue-99 Wed, 07 Jul 2021 00:00:00 +0000 The Batch: Amazon's Grab-And-Go Grocery, The Trouble With Ethical AI, Airlines Optimized, Few-Shot Learning https://www.deeplearning.ai/the-batch/issue-98 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. https://www.deeplearning.ai/the-batch/issue-98 Wed, 30 Jun 2021 00:00:00 +0000 The Batch: Wildfire Alert Network, AI Invades Campuses, Synthetic Videos, Reviving Lost Traditions https://www.deeplearning.ai/the-batch/issue-97 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. https://www.deeplearning.ai/the-batch/issue-97 Wed, 23 Jun 2021 00:00:00 +0000 The Batch: Computers Spawn Computers, Self-Riding Bike, AI-Against-Covid Progress Report, Handwriting Deciphered https://www.deeplearning.ai/the-batch/issue-96 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. https://www.deeplearning.ai/the-batch/issue-96 Wed, 16 Jun 2021 00:00:00 +0000 The Batch: Face Recognition at the Border, Robot Manicurists, Irresponsible AI, Synthesizing Real-World Scenes https://www.deeplearning.ai/the-batch/issue-95 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). https://www.deeplearning.ai/the-batch/issue-95 Wed, 09 Jun 2021 00:00:00 +0000 The Batch: Autonomous Weapons Used in Combat, Tesla Doubles Down on Computer Vision, Transformers Decipher Proteins https://www.deeplearning.ai/the-batch/issue-94 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. https://www.deeplearning.ai/the-batch/issue-94 Wed, 02 Jun 2021 00:00:00 +0000 The Batch: Face Recognition for the Masses, Labeling Libel, Documenting Datasets, What Machines Want to See https://www.deeplearning.ai/the-batch/issue-93 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. https://www.deeplearning.ai/the-batch/issue-93 Wed, 26 May 2021 00:00:00 +0000 The Batch: Surgical Robots Go Autonomous, Virtual Reality On Speed, AI Crossword Champ, Algorithms For Orcas https://www.deeplearning.ai/the-batch/issue-92 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... https://www.deeplearning.ai/the-batch/issue-92 Wed, 19 May 2021 00:00:00 +0000 The Batch Special Issue! Machine Learning in Production: MLOps at scale with Amazon, Google, Microsoft https://www.deeplearning.ai/the-batch/issue-91 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. https://www.deeplearning.ai/the-batch/issue-91 Wed, 12 May 2021 00:00:00 +0000 The Batch: Rise of the Robocoders, Banks Embrace Face Recognition, Toward Greener AI, Cloning 3D Objects https://www.deeplearning.ai/the-batch/issue-90 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... https://www.deeplearning.ai/the-batch/issue-90 Wed, 05 May 2021 00:00:00 +0000 The Batch: Europe's AI Backlash, Robot Debater, Car Wreck Recognition, Funding For Biomedicine https://www.deeplearning.ai/the-batch/issue-89 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. https://www.deeplearning.ai/the-batch/issue-89 Wed, 28 Apr 2021 00:00:00 +0000 The Batch: Top AI Startups, Muting Griefers, Re-Creating Lost Masterpieces, Better Video Search https://www.deeplearning.ai/the-batch/issue-88 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. https://www.deeplearning.ai/the-batch/issue-88 Wed, 21 Apr 2021 00:00:00 +0000 The Batch: Robots Supervise Robots, Bad Labels Plague Datasets, Large Language Models Learn Chinese, Transformers Assimilate GANs https://www.deeplearning.ai/the-batch/issue-87 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. https://www.deeplearning.ai/the-batch/issue-87 Wed, 14 Apr 2021 00:00:00 +0000 The Batch: Doctors Distrust AI, New Life For Old Songs, ImageNet Without Faces, Learning From Random Data https://www.deeplearning.ai/the-batch/issue-86 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. https://www.deeplearning.ai/the-batch/issue-86 Wed, 07 Apr 2021 00:00:00 +0000 Tesla Under Investigation, Star Trek: The Chatbot, Attention For Vision Models, Spies Embrace AI https://www.deeplearning.ai/the-batch/issue-85 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... https://www.deeplearning.ai/the-batch/issue-85 Wed, 31 Mar 2021 00:00:00 +0000 The Batch: Networking License Plate Readers, Calling Out Unreproducible Results, Seeing What the Brain Sees, Chatbots Against Depression https://www.deeplearning.ai/the-batch/issue-84 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... https://www.deeplearning.ai/the-batch/issue-84 Wed, 24 Mar 2021 00:00:00 +0000 The Batch: Facebook's Algorithms Under Fire, Voice Clones Invade Entertainment, Old Drugs Fight New Illnesses, Auditors Assess AI https://www.deeplearning.ai/the-batch/issue-83 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... https://www.deeplearning.ai/the-batch/issue-83 Wed, 17 Mar 2021 00:00:00 +0000 The Batch: Bringing Great Great Grandma Back To Life, Drones Play Defense, AI For Business Booms, Synthesizing New Video Angles https://www.deeplearning.ai/the-batch/issue-82 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... https://www.deeplearning.ai/the-batch/issue-82 Wed, 10 Mar 2021 00:00:00 +0000 The Batch: Google Overhauls Ethics Team, Covid-19 Triage, Facebook Glasses, Data Science Jobs, Transformer Shoot-Out https://www.deeplearning.ai/the-batch/issue-81 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... https://www.deeplearning.ai/the-batch/issue-81 Wed, 03 Mar 2021 00:00:00 +0000 The Batch: Face Datasets Under Fire, Baking With AI, Human Disabilities Baffle Algorithms, Ginormous Transformers https://www.deeplearning.ai/the-batch/issue-80 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... https://www.deeplearning.ai/the-batch/issue-80 Wed, 24 Feb 2021 00:00:00 +0000 The Batch: Untested Medical AI?, Art Appreciation For Robots, Why Models Don't Generalize, Autonomous Weapons Gain Support https://www.deeplearning.ai/the-batch/issue-79 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... https://www.deeplearning.ai/the-batch/issue-79 Wed, 17 Feb 2021 00:00:00 +0000 The Batch: Drivers Under Surveillance, What Is Fairness?, Cancer Treatment, Vision Improves Language, Trade In Your Gucci https://www.deeplearning.ai/the-batch/issue-78 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... https://www.deeplearning.ai/the-batch/issue-78 Wed, 10 Feb 2021 00:00:00 +0000 AI Feels Your Pain, GPT-3 Wants To Be Free, Privacy Is Harder Than You Think, Neural Network Performance Guaranteed https://www.deeplearning.ai/the-batch/issue-77 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... https://www.deeplearning.ai/the-batch/issue-77 Wed, 03 Feb 2021 00:00:00 +0000 The Batch: Reading Viruses, Liberating Drones, Detecting Earthquakes, Social Networking For The Blind, Competition For GANs https://www.deeplearning.ai/the-batch/issue-76 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... https://www.deeplearning.ai/the-batch/issue-76 Wed, 27 Jan 2021 00:00:00 +0000 The Batch: Detecting Guns, Fighting Lead Poisoning, Adversarial Training for Language-and-Vision, Financial Reports for Robots https://www.deeplearning.ai/the-batch/issue-75 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? https://www.deeplearning.ai/the-batch/issue-75 Wed, 20 Jan 2021 00:00:00 +0000 The Batch: Propagandists Lie About AI, Language Models Grok Images, Machines Triage Covid Cases, World Models Shrink https://www.deeplearning.ai/the-batch/issue-74 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... https://www.deeplearning.ai/the-batch/issue-74 Wed, 13 Jan 2021 00:00:00 +0000 The Batch: Clues to Mental Illness, Enterprise AI, Bias in Compressed Models, U.S. AI Strategy https://www.deeplearning.ai/the-batch/issue-73 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. https://www.deeplearning.ai/the-batch/issue-73 Wed, 06 Jan 2021 00:00:00 +0000 The Batch: New Year Wishes From Fei-Fei Li, Harry Shum, Ayanna Howard, Ilya Sutskever, Matthew Mattina https://www.deeplearning.ai/the-batch/issue-72 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... https://www.deeplearning.ai/the-batch/issue-72 Wed, 30 Dec 2020 00:00:00 +0000 The Batch: Biggest AI Stories of 2020: Covid Triage, Fun With GANs, Disinfo Whack-A-Mole, GPT Superstar, ImageNet Recall, FDA Approvals https://www.deeplearning.ai/the-batch/issue-71 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. https://www.deeplearning.ai/the-batch/issue-71 Wed, 23 Dec 2020 00:00:00 +0000 The Batch: New Coronavirus Treatments, Reimagining Robotaxis, Opening Historical Archives, Streamlining Simulations https://www.deeplearning.ai/the-batch/issue-70 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... https://www.deeplearning.ai/the-batch/issue-70 Wed, 16 Dec 2020 00:00:00 +0000 The Batch: Autonomous Helium Balloons, Seeing Eye AI, Muppet Models Estimate Weights and Measures, Labor Unions Fight Automation https://www.deeplearning.ai/the-batch/issue-69 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. https://www.deeplearning.ai/the-batch/issue-69 Wed, 09 Dec 2020 00:00:00 +0000 The Batch: Intelligent Agent Vs. Fighter Pilot, GAN for Pajama Zooming, When AI Goes Wrong, Multimodal Learning for Medicine https://www.deeplearning.ai/the-batch/issue-68 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... https://www.deeplearning.ai/the-batch/issue-68 Wed, 02 Dec 2020 00:00:00 +0000 The Batch: Government AI Falls Short, Face Recognition for Bears, Research Papers in One Sentence, Counting Crowds https://www.deeplearning.ai/the-batch/issue-67 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. https://www.deeplearning.ai/the-batch/issue-67 Wed, 25 Nov 2020 00:00:00 +0000 The Batch: Bias In Surprising Places, Retail Models Adjust to Covid, Faster Transformers, AI Patents Explode https://www.deeplearning.ai/the-batch/issue-66 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. https://www.deeplearning.ai/the-batch/issue-66 Wed, 18 Nov 2020 00:00:00 +0000 The Batch: AI Predicts the Vote, Face Recognition Looks for Criminals, Model Cow Makes Milk, Transformers Prove Theorems https://www.deeplearning.ai/the-batch/issue-65 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! https://www.deeplearning.ai/the-batch/issue-65 Wed, 11 Nov 2020 00:00:00 +0000 The Batch: Turning Tables on Face Recognition, Testing GPT-3, Recognizing Disinformation, Detecting Deepfakes https://www.deeplearning.ai/the-batch/issue-64 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. https://www.deeplearning.ai/the-batch/issue-64 Wed, 04 Nov 2020 00:00:00 +0000 The Batch: Halloween Special! Skeletons in the AI Closet including Bias, Disinformation, Rivalries, Power-Hungry Models, Black Boxes https://www.deeplearning.ai/the-batch/issue-63 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. https://www.deeplearning.ai/the-batch/issue-63 Wed, 28 Oct 2020 00:00:00 +0000 The Batch: AI Researchers Under Fire, RL Agents in Danger, Bias in Synthetic Data, One Neuron to Rule Them All https://www.deeplearning.ai/the-batch/issue-62 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. https://www.deeplearning.ai/the-batch/issue-62 Wed, 21 Oct 2020 00:00:00 +0000 The Batch: Mapping Wildfires, Compressing Video, Humanizing Benchmarks, Training GANs on Small Datasets, Documenting Government AI https://www.deeplearning.ai/the-batch/issue-61 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. https://www.deeplearning.ai/the-batch/issue-61 Wed, 14 Oct 2020 00:00:00 +0000 The Batch: Deepfakes Against Oppression, Alexa Hears With Her Eyes, New Medical AI Standards, Action Recognition With a Twist https://www.deeplearning.ai/the-batch/issue-60 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? https://www.deeplearning.ai/the-batch/issue-60 Wed, 07 Oct 2020 00:00:00 +0000 The Batch: GAN Special Issue! Ian Goodfellow For Real, Detecting Fakes, Including Minorities, Synthesizing Training Data https://www.deeplearning.ai/the-batch/issue-59 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... https://www.deeplearning.ai/the-batch/issue-59 Wed, 30 Sep 2020 00:00:00 +0000 The Batch: YouTube vs. Conspiracy Theorists, Robots That Think Ahead, GPU + CPU = The Future, Transformers Retooled https://www.deeplearning.ai/the-batch/issue-58 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. https://www.deeplearning.ai/the-batch/issue-58 Wed, 23 Sep 2020 00:00:00 +0000 The Batch: Training 1 Trillion Parameters, Medical AI Gets a Shot in the Arm, Does Bert Have Common Sense?, Revitalizing Chess https://www.deeplearning.ai/the-batch/issue-57 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. ????) https://www.deeplearning.ai/the-batch/issue-57 Wed, 16 Sep 2020 00:00:00 +0000 The Batch: Data for Defense, Predicting Credit Approvals, More Learning From Fewer Labels, Hunting for Planets https://www.deeplearning.ai/the-batch/issue-56 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. https://www.deeplearning.ai/the-batch/issue-56 Wed, 09 Sep 2020 00:00:00 +0000 The Batch: Autonomous Air Freight, U.S. National AI Centers, Photorealistic Fantasy Tennis, Transformers Transform into RNNs https://www.deeplearning.ai/the-batch/issue-55 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. https://www.deeplearning.ai/the-batch/issue-55 Wed, 02 Sep 2020 00:00:00 +0000 The Batch: Students Protest AI-Predicted Exam Scores, Autonomous Fighter Jet Outguns Humans, Computer Vision Sees Race https://www.deeplearning.ai/the-batch/issue-54 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. https://www.deeplearning.ai/the-batch/issue-54 Wed, 26 Aug 2020 00:00:00 +0000 The Batch: Predicting Car Crashes, Profiting From Deepfakes, Piloting Drone Swarms, Grading Data https://www.deeplearning.ai/the-batch/issue-53 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. https://www.deeplearning.ai/the-batch/issue-53 Wed, 19 Aug 2020 00:00:00 +0000 The Batch: Apple's AI Strategy, Retail Surveillance, Clothes That Fight Face Recognition, Suboptimal Optimizers https://www.deeplearning.ai/the-batch/issue-52 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... https://www.deeplearning.ai/the-batch/issue-52 Wed, 12 Aug 2020 00:00:00 +0000 The Batch: Faster AI Chips, Smarter Prosthetic Legs, Transformers for Image Processing, Humbling Overconfident Models https://www.deeplearning.ai/the-batch/issue-51 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.) https://www.deeplearning.ai/the-batch/issue-51 Wed, 05 Aug 2020 00:00:00 +0000 The Batch: GPT-3 Gone Wild, Covid Tech Roundup, AI for Sushi, Video Classification on Steroids https://www.deeplearning.ai/the-batch/issue-50 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. https://www.deeplearning.ai/the-batch/issue-50 Wed, 29 Jul 2020 00:00:00 +0000 The Batch: Corporate Deepfakes, Robot Chemists, Smart Boutiques, Curvy Neural Nets https://www.deeplearning.ai/the-batch/issue-49 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... https://www.deeplearning.ai/the-batch/issue-49 Wed, 22 Jul 2020 00:00:00 +0000 The Batch: Easier Shopping, Smarter Manufacturing, Scarier Monsters, Sharper Headlines https://www.deeplearning.ai/the-batch/issue-48 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. https://www.deeplearning.ai/the-batch/issue-48 Wed, 15 Jul 2020 00:00:00 +0000 The Batch: Biased Datasets, AI for Footballers, Transformers for Object Detection, Photorealistic Faces From History https://www.deeplearning.ai/the-batch/issue-47 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. https://www.deeplearning.ai/the-batch/issue-47 Wed, 08 Jul 2020 00:00:00 +0000 The Batch: Bias in Plain Sight, Apple's New AI, Amazon's Virtual Fitting Room, Bot Besties, Researchers Go Ape https://www.deeplearning.ai/the-batch/issue-46 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). https://www.deeplearning.ai/the-batch/issue-46 Wed, 01 Jul 2020 00:00:00 +0000 The Batch: Who Still Sells Face Recognition to Police?, AI's Talent Pipeline, Misleading Research, Scaling Models from Serve https://www.deeplearning.ai/the-batch/issue-45 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. https://www.deeplearning.ai/the-batch/issue-45 Wed, 24 Jun 2020 00:00:00 +0000 The Batch: NLP Special Issue! Powerful techniques from Amazon, Apple, Facebook, Google, Microsoft, Salesforce https://www.deeplearning.ai/the-batch/issue-44 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. https://www.deeplearning.ai/the-batch/issue-44 Wed, 17 Jun 2020 00:00:00 +0000 The Batch: AI's Progress Problem, Recognizing Masked Faces, Mapping Underwater Ecosystems, Augmenting Features https://www.deeplearning.ai/the-batch/issue-43 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. https://www.deeplearning.ai/the-batch/issue-43 Wed, 10 Jun 2020 00:00:00 +0000 The Batch: Facebook’s Unruly Algorithm, AI That Does the Dishes, New Life for Old Data, Models That Take Shortcuts, YOLO https://www.deeplearning.ai/the-batch/issue-42 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. https://www.deeplearning.ai/the-batch/issue-42 Wed, 03 Jun 2020 00:00:00 +0000 The Batch: AI's New Supercomputer, GANs as Simulators, Giant Chatbot Shootout, Big Tech Meets Big Oil https://www.deeplearning.ai/the-batch/issue-41 I’m proud to announce that we held the 100th Pie & AI last Friday. Pie & AI is our meetup series that brings together members of the AI community worldwide for education, conversation, and a slice of pie. https://www.deeplearning.ai/the-batch/issue-41 Wed, 27 May 2020 00:00:00 +0000 The Batch: Covid-19 Infects AI, Learning from Small Data, Generated Music Goes Mainstream, Fighting Pandemic Disinformation https://www.deeplearning.ai/the-batch/issue-40 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! https://www.deeplearning.ai/the-batch/issue-40 Wed, 20 May 2020 00:00:00 +0000 The Batch: Covid Mask Detection, Brain To Text Translation, AI Chooses Tax Brackets, Neural Network Security https://www.deeplearning.ai/the-batch/issue-39 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. https://www.deeplearning.ai/the-batch/issue-39 Wed, 13 May 2020 00:00:00 +0000 The Batch: Pandemic Triage, Asia's AI Advantage, Detecting Deepfakes, Cleaning Oceans, Music Industry in a Box https://www.deeplearning.ai/the-batch/issue-38 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. https://www.deeplearning.ai/the-batch/issue-38 Wed, 06 May 2020 00:00:00 +0000 The Batch: Tesla Parts the Curtain, Detecting Dangerous Bugs, Mapping Disaster Zones, Detecting Humans from Wi-Fi https://www.deeplearning.ai/the-batch/issue-37 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. https://www.deeplearning.ai/the-batch/issue-37 Wed, 29 Apr 2020 00:00:00 +0000 The Batch: AI Versus Covid Wake-Up Call, Straight Poop from a Smart Toilet, Sharper Image Inputs, Predicting Farm Yields https://www.deeplearning.ai/the-batch/issue-36 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... https://www.deeplearning.ai/the-batch/issue-36 Wed, 22 Apr 2020 00:00:00 +0000 The Batch: AI For Medicine Special! Eric Topol’s Planetary Health System, Discovering Drugs, Diagnosing Heart Disease https://www.deeplearning.ai/the-batch/issue-35 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... https://www.deeplearning.ai/the-batch/issue-35 Wed, 15 Apr 2020 00:00:00 +0000 The Batch: Antiviral Resources, Robot Superstars, AI for Scientists, 3D Data Augmentation, BatchNorm Demystified https://www.deeplearning.ai/the-batch/issue-34 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... https://www.deeplearning.ai/the-batch/issue-34 Wed, 08 Apr 2020 00:00:00 +0000 The Batch: AI-Against-Coronavirus Datasets, Voice Cloning for the Masses, Finding Unexploded Bombs, Seeing See-Through https://www.deeplearning.ai/the-batch/issue-33 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... https://www.deeplearning.ai/the-batch/issue-33 Wed, 01 Apr 2020 00:00:00 +0000 The Batch: Tracking China's Covid-19 Revival, A Robot Star is Born, Discovering New Antibiotics, Rightsizing Neural Networks https://www.deeplearning.ai/the-batch/issue-32 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... https://www.deeplearning.ai/the-batch/issue-32 Wed, 25 Mar 2020 00:00:00 +0000 The Batch: AI Versus Coronavirus, Quantum Neural Networks, Workers Prepare for Job Losses, Translating Cuneiform https://www.deeplearning.ai/the-batch/issue-31 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... https://www.deeplearning.ai/the-batch/issue-31 Wed, 18 Mar 2020 00:00:00 +0000 The Batch: Mind-Controlled Robot Hand, Fashions by GAN, Face Recognition Countermeasure, More Realistic Deepfakes, Learning From https://www.deeplearning.ai/the-batch/issue-30 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. https://www.deeplearning.ai/the-batch/issue-30 Wed, 11 Mar 2020 00:00:00 +0000 The Batch: Standing Up for Ethical AI, Efficient Transformers, Up-Rezzing Old Movies, Watching the Factory Floor, Pumping Iron https://www.deeplearning.ai/the-batch/issue-29 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. https://www.deeplearning.ai/the-batch/issue-29 Wed, 04 Mar 2020 00:00:00 +0000 Political Deepfakes, Tree-Dodging Drones, Faster Brain Surgery, Robot Chicken Overlords https://www.deeplearning.ai/the-batch/issue-28 I chatted recently with MIT researcher Lex Fridman on his Artificial Intelligence podcast, where we discussed our experiences teaching deep learning. https://www.deeplearning.ai/the-batch/issue-28 Wed, 26 Feb 2020 00:00:00 +0000 The Batch: Chatbots Sue Telemarketers, Neural Nets See Around Corners, Police Read License Plates, Deep Learning Pioneers Speak https://www.deeplearning.ai/the-batch/issue-27 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 https://www.deeplearning.ai/the-batch/issue-27 Wed, 19 Feb 2020 00:00:00 +0000 The Batch: Hotter Dating Profiles, Pandas in Love, Compute for Coronavirus, Deepfake Detection, Self-Driving Cars Run Amok https://www.deeplearning.ai/the-batch/issue-26 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. https://www.deeplearning.ai/the-batch/issue-26 Wed, 12 Feb 2020 00:00:00 +0000 The Batch: Robot Warehouse Workers, Cities Under Surveillance, Chatbot Comedian, Automated Drug Design https://www.deeplearning.ai/the-batch/issue-25 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. https://www.deeplearning.ai/the-batch/issue-25 Wed, 05 Feb 2020 00:00:00 +0000 The Batch: Fighting Coronavirus, Hunting Drug Dealers, Fixing Bugs, Regulating AI, Accelerating Text-to-Speech https://www.deeplearning.ai/the-batch/issue-24 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. https://www.deeplearning.ai/the-batch/issue-24 Wed, 29 Jan 2020 00:00:00 +0000 The Batch: Algorithm Designs Living Machines, AI Interviews Job Applicants, Recommender Spreads Misinformation, Researchers https://www.deeplearning.ai/the-batch/issue-23 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... https://www.deeplearning.ai/the-batch/issue-23 Wed, 22 Jan 2020 00:00:00 +0000 The Batch: AI Steals CES, Hollywood Predicts Blockbusters, Washington Regulates AI, Neural Nets Study Math https://www.deeplearning.ai/the-batch/issue-22 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. https://www.deeplearning.ai/the-batch/issue-22 Wed, 15 Jan 2020 00:00:00 +0000 The Batch: Facebook Takes on Deepfakes, Google AI Battles Cancer, Researchers Fight ImageNet Bias, AI Grows Globally https://www.deeplearning.ai/the-batch/issue-21 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... https://www.deeplearning.ai/the-batch/issue-21 Wed, 08 Jan 2020 00:00:00 +0000 Hopes for AI in 2020: Yann LeCun, Kai-Fu Lee, Anima Anandkumar, Richard Socher https://www.deeplearning.ai/the-batch/issue-20 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... https://www.deeplearning.ai/the-batch/issue-20 Wed, 01 Jan 2020 00:00:00 +0000 Biggest AI Stories of 2019: Driverless Cars Stall, Deepfakes Go Mainstream, Face Recognition Gets Banned https://www.deeplearning.ai/the-batch/issue-19 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? https://www.deeplearning.ai/the-batch/issue-19 Tue, 24 Dec 2019 00:00:00 +0000 The Batch: Companies Slipping on AI Goals, Self Training for Better Vision, Muppets and Models, China Vs US?, Only the Best https://www.deeplearning.ai/the-batch/issue-18 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. https://www.deeplearning.ai/the-batch/issue-18 Wed, 18 Dec 2019 00:00:00 +0000 The Batch: Amazon's Surveillance Network, AI That Gets the Facts Right, Deepfakes Get Regulated, Predicting Volcanic Eruptions https://www.deeplearning.ai/the-batch/issue-17 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. https://www.deeplearning.ai/the-batch/issue-17 Wed, 11 Dec 2019 00:00:00 +0000 The Batch: Google AI Explains Itself, Neural Net Fights Bias, AI Demoralizes Champions, Solar Power Heats Up https://www.deeplearning.ai/the-batch/issue-16 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. https://www.deeplearning.ai/the-batch/issue-16 Wed, 04 Dec 2019 00:00:00 +0000 The Batch: Sony Goes AI, Intel's GPU Killers, Transformer Networks In Disguise, Malicious Models Fool Bias Detection https://www.deeplearning.ai/the-batch/issue-15 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... https://www.deeplearning.ai/the-batch/issue-15 Wed, 27 Nov 2019 00:00:00 +0000 The Batch: Artificial Noses, Surveillance on Wheels, Unwelcome Researchers, Privacy Problems, Beyond Bounding Boxes https://www.deeplearning.ai/the-batch/issue-14 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... https://www.deeplearning.ai/the-batch/issue-14 Wed, 20 Nov 2019 00:00:00 +0000 The Batch: Self-Driving Cars That Can't See Pedestrians?! Evolutionary Algorithms, Fish Recognition, Fighting Fraud https://www.deeplearning.ai/the-batch/issue-13 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. https://www.deeplearning.ai/the-batch/issue-13 Wed, 13 Nov 2019 00:00:00 +0000 The Batch: DeepMind Masters StarCraft 2, AI Attacks on Amazon, A Career in Robot Management, Banks Embrace Bots https://www.deeplearning.ai/the-batch/issue-12 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. https://www.deeplearning.ai/the-batch/issue-12 Wed, 06 Nov 2019 00:00:00 +0000 The Batch: Daemon Spawn, AGI Takeover, Deepfake Deluge, Bias Crisis - How Scared Should You Be? https://www.deeplearning.ai/the-batch/issue-11 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. https://www.deeplearning.ai/the-batch/issue-11 Wed, 30 Oct 2019 00:00:00 +0000 The Batch: Robot Hand Works Rubik’s Cube, Self-Driving Tanks Roll Toward Battle, Face Rec Dataset Sparks Lawsuit, Bayes Finds https://www.deeplearning.ai/the-batch/issue-10 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! https://www.deeplearning.ai/the-batch/issue-10 Wed, 23 Oct 2019 00:00:00 +0000 The Batch: TensorFlow Versus PyTorch, Autonomous Drone Races, State-of-the-Art with Less Compute, NLP for Rare Languages https://www.deeplearning.ai/the-batch/issue-9 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! https://www.deeplearning.ai/the-batch/issue-9 Wed, 16 Oct 2019 00:00:00 +0000 The Batch: Tesla Acquires DeepScale, France Backs Face Recognition, Robots Learn in Virtual Reality, Acquirers Snag AI Startups https://www.deeplearning.ai/the-batch/issue-8 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. https://www.deeplearning.ai/the-batch/issue-8 Wed, 09 Oct 2019 00:00:00 +0000 The Batch: Google Achieves Quantum Supremacy, Amazon Aims To Sway Lawmakers, AI Predicts Basketball Plays, Face Detector https://www.deeplearning.ai/the-batch/issue-7 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... https://www.deeplearning.ai/the-batch/issue-7 Wed, 02 Oct 2019 00:00:00 +0000 The Batch: Global Surveillance Survey, AI’s Crisis of Reproducibility, Construction Drones, Bots Cheat at Hide-and-Seek https://www.deeplearning.ai/the-batch/issue-6 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. https://www.deeplearning.ai/the-batch/issue-6 Wed, 25 Sep 2019 00:00:00 +0000 Robot Farm Workers, Making Algorithms Rock, Automating Contract Negotiations, Recognizing Accented Speech https://www.deeplearning.ai/the-batch/issue-5 Over the weekend, we hosted our first Pie & AI meetup in Kuala Lumpur, Malaysia, in collaboration with the AI Malaysia group, MDEC, and ADAX. The event was part of Malaysia’s AI & Data Week 2019. Several people traveled from neighboring southeast Asian countries to attend! https://www.deeplearning.ai/the-batch/issue-5 Wed, 18 Sep 2019 00:00:00 +0000 The Batch: Autonomous Nuclear Weapons?!, Fighting Deepfakes, Recognizing Chimps, Automating Fast Food https://www.deeplearning.ai/the-batch/issue-4 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... https://www.deeplearning.ai/the-batch/issue-4 Wed, 11 Sep 2019 00:00:00 +0000 The Batch: Taming Dangerous AI, Microscopes Spot Tumors, NLP Grades Standardized Tests, Viz Without Mesh https://www.deeplearning.ai/the-batch/issue-3 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. https://www.deeplearning.ai/the-batch/issue-3 Wed, 04 Sep 2019 00:00:00 +0000 The Batch: Gunning for GPUs, Football for DRL, Navigation for the Blind, Mystery Signals From Outer Space https://www.deeplearning.ai/the-batch/issue-2 We ended a busy week in Colombia hosting a Pie & 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... https://www.deeplearning.ai/the-batch/issue-2 Wed, 28 Aug 2019 00:00:00 +0000 The Batch: Clothes That Thwart Surveillance, DeepMind in the Hot Seat, BERT’s Revenge, Federal AI Standards https://www.deeplearning.ai/the-batch/issue-1 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. https://www.deeplearning.ai/the-batch/issue-1 Wed, 21 Aug 2019 00:00:00 +0000 The Batch: AI for Artists, Relief for Programmers, Diagnosing Heart Disease, Emotional Un-Intelligence, Multilingual Text-to-Speech https://www.deeplearning.ai/the-batch/issue-xvi Shortly after Pi day (3/14), I announced our Pie & AI series of meetups. We held them in Seattle in March and London in April. We just hosted our third Pie & AI meetup to celebrate the launch of the final course in the deeplearning.ai TensorFlow Specialization. https://www.deeplearning.ai/the-batch/issue-xvi Wed, 31 Jul 2019 00:00:00 +0000 The Batch: Wiring the Brain for AI, Diagnosing Cancer, Generating Realistic Videos, Innovating in Africa https://www.deeplearning.ai/the-batch/issue-xv 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. https://www.deeplearning.ai/the-batch/issue-xv Wed, 24 Jul 2019 00:00:00 +0000 The Batch: AI Shows Emotional Intelligence, Machines Beat Humans at Poker, Watson Takes Up Tennis, GANs Reveal What They’ve Learned https://www.deeplearning.ai/the-batch/issue-xiv 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. https://www.deeplearning.ai/the-batch/issue-xiv Wed, 17 Jul 2019 00:00:00 +0000 The Batch: Faking out FaceTime, deciphering lost languages, predicting scientific discoveries, reading body language, recycling with robots https://www.deeplearning.ai/the-batch/issue-xiii If you wonder how often I take online courses myself, the answer is: Quite often. I have a longstanding interest in AI for healthcare. https://www.deeplearning.ai/the-batch/issue-xiii Wed, 10 Jul 2019 00:00:00 +0000 The Batch: Predicting Violence, DeepNude, Preparing For Robots, Regulating Medical AI https://www.deeplearning.ai/the-batch/issue-xii 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. https://www.deeplearning.ai/the-batch/issue-xii Wed, 03 Jul 2019 00:00:00 +0000 The Batch: Grieving for Dead Robots, Hacking Animal Brains, Navigating Without GPS, Watching Electrons https://www.deeplearning.ai/the-batch/issue-xi 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. https://www.deeplearning.ai/the-batch/issue-xi Wed, 26 Jun 2019 00:00:00 +0000 The Batch: AI Jobs in Flux, Robot Tanks, Deepfakes in DC, Psychosis Detection https://www.deeplearning.ai/the-batch/issue-x 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. https://www.deeplearning.ai/the-batch/issue-x Wed, 19 Jun 2019 00:00:00 +0000 The Batch: Easy Deepfakes, Sustainable AI, Biased Data, Realistic Image Generation https://www.deeplearning.ai/the-batch/issue-ix 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. https://www.deeplearning.ai/the-batch/issue-ix Wed, 12 Jun 2019 00:00:00 +0000 The Batch: Detecting Fake News, Fighting Climate Change, Seeing Into the Future, Rescue Robots, and More AI News https://www.deeplearning.ai/the-batch/issue-viii 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. https://www.deeplearning.ai/the-batch/issue-viii Wed, 05 Jun 2019 00:00:00 +0000 The Batch: Deepfakes, Robot Ships, Small Data, Autonomous Trucking, More AI News https://www.deeplearning.ai/the-batch/issue-vii In March, I announced our Pie & 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. https://www.deeplearning.ai/the-batch/issue-vii Wed, 29 May 2019 00:00:00 +0000 The Batch: Face Recognition Sparks Revolt, Deepfakes Find Their Voice, Retail Embraces AI https://www.deeplearning.ai/the-batch/issue-vi 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. https://www.deeplearning.ai/the-batch/issue-vi Wed, 22 May 2019 00:00:00 +0000 The Batch: Explainable AI, Smaller Models, Labeled Data On Tap, Algorithms On Trial https://www.deeplearning.ai/the-batch/issue-v 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. https://www.deeplearning.ai/the-batch/issue-v Wed, 15 May 2019 00:00:00 +0000 The Batch: AI With Fashion Sense, Robot Farmers, Schooling Alexa, Sharper Computer Vision https://www.deeplearning.ai/the-batch/issue-iv 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. https://www.deeplearning.ai/the-batch/issue-iv Wed, 08 May 2019 00:00:00 +0000 The Batch: Invisibility Cloak For Computer Vision, Algorithmic Music Rocks, Automating Justice https://www.deeplearning.ai/the-batch/issue-iii 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. https://www.deeplearning.ai/the-batch/issue-iii Wed, 01 May 2019 00:00:00 +0000 The Batch: Un-Redacting Mueller, Attack Of The Robot Dogs, AI Gaming Champs, Training Data Transparency https://www.deeplearning.ai/the-batch/issue-ii I spent my birthday last week thinking about how AI can be used to address one of humanity's most pressing problems: climate change. https://www.deeplearning.ai/the-batch/issue-ii Wed, 24 Apr 2019 00:00:00 +0000 The Batch: Initializing Neural Networks Tutorial, Automatic Annotation, The Robots are Winning, Drones Go Commercial https://www.deeplearning.ai/the-batch/issue-i 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. https://www.deeplearning.ai/the-batch/issue-i Wed, 17 Apr 2019 00:00:00 +0000 ================================================ FILE: feeds/feed_thinkingmachines.xml ================================================ Thinking Machines Lab - Connectionism https://thinkingmachines.ai/blog/ Shared science and news from the team http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:51:17 +0000 Interaction Models: A Scalable Approach to Human-AI Collaboration https://thinkingmachines.ai/blog/interaction-models/ Interaction Models: A Scalable Approach to Human-AI Collaboration by Thinking Machines https://thinkingmachines.ai/blog/interaction-models/ Mon, 11 May 2026 00:00:00 +0000 On-Policy Distillation https://thinkingmachines.ai/blog/on-policy-distillation/ On-Policy Distillation by Kevin Lu in collaboration with others at Thinking Machines https://thinkingmachines.ai/blog/on-policy-distillation/ Mon, 27 Oct 2025 00:00:00 +0000 LoRA Without Regret https://thinkingmachines.ai/blog/lora/ LoRA Without Regret by John Schulman in collaboration with others at Thinking Machines https://thinkingmachines.ai/blog/lora/ Mon, 29 Sep 2025 00:00:00 +0000 Modular Manifolds https://thinkingmachines.ai/blog/modular-manifolds/ Modular Manifolds by Jeremy Bernstein https://thinkingmachines.ai/blog/modular-manifolds/ Fri, 26 Sep 2025 00:00:00 +0000 Defeating Nondeterminism in LLM Inference https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/ Defeating Nondeterminism in LLM Inference by Horace He in collaboration with others at Thinking Machines https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/ Wed, 10 Sep 2025 00:00:00 +0000 ================================================ FILE: feeds/feed_weaviate.xml ================================================ Weaviate Blog https://weaviate.io/blog Latest updates from Weaviate http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:51:18 +0000 Your LLM Is Only as Good as What It Retrieves https://weaviate.io/blog/retrieval-quality-rag-overview A Researcher's Perspective on Retrieval Quality in RAG Systems https://weaviate.io/blog/retrieval-quality-rag-overview Wed, 06 May 2026 00:00:00 +0000 Weaviate 1.37 Release https://weaviate.io/blog/weaviate-1-37-release 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. https://weaviate.io/blog/weaviate-1-37-release Thu, 23 Apr 2026 00:00:00 +0000 Engram: Memory by Weaviate https://weaviate.io/blog/engram-deep-dive A deep dive into Engram, our managed memory service for agents which is simple to get started but adaptable to any use case. https://weaviate.io/blog/engram-deep-dive Tue, 21 Apr 2026 00:00:00 +0000 Weaviate Shared Cloud now generally available on AWS https://weaviate.io/blog/aws-shared-cloud-launch 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. https://weaviate.io/blog/aws-shared-cloud-launch Wed, 15 Apr 2026 00:00:00 +0000 Oh Memories, Where'd You Go https://weaviate.io/blog/engram-internal-use-case 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. https://weaviate.io/blog/engram-internal-use-case Thu, 02 Apr 2026 00:00:00 +0000 Multimodal Embeddings and RAG: A Practical Guide https://weaviate.io/blog/multimodal-guide 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. https://weaviate.io/blog/multimodal-guide Wed, 01 Apr 2026 00:00:00 +0000 Your Code is Your Schema: Weaviate Managed C# Client https://weaviate.io/blog/weaviate-managed-dotnet-client 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. https://weaviate.io/blog/weaviate-managed-dotnet-client Tue, 31 Mar 2026 00:00:00 +0000 Securing Enterprise AI with Weaviate https://weaviate.io/blog/weaviate-security-enterprise A complete guide on how to secure Weaviate enterprise deployments with OIDC, RBAC, and multi-tenant isolation. https://weaviate.io/blog/weaviate-security-enterprise Thu, 19 Mar 2026 00:00:00 +0000 Weaviate 1.36 Release https://weaviate.io/blog/weaviate-1-36-release 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. https://weaviate.io/blog/weaviate-1-36-release Tue, 03 Mar 2026 00:00:00 +0000 Building A Legal RAG App in 36 Hours https://weaviate.io/blog/legal-rag-app 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. https://weaviate.io/blog/legal-rag-app Thu, 26 Feb 2026 00:00:00 +0000 Weaviate Authentication & Authorization: A Complete Security Guide https://weaviate.io/blog/weaviate-security-authn-authz Learn how to secure your Weaviate vector database with API keys, OIDC, and role-based access control (RBAC). Includes practical examples and setup steps. https://weaviate.io/blog/weaviate-security-authn-authz Wed, 18 Feb 2026 00:00:00 +0000 Introducing Weaviate Agent Skills https://weaviate.io/blog/weaviate-agent-skills Build production-ready agent workflows with a single prompt in Claude Code, Cursor, and GitHub Copilot. https://weaviate.io/blog/weaviate-agent-skills Wed, 18 Feb 2026 00:00:00 +0000 The Limit in the Loop https://weaviate.io/blog/limit-in-the-loop 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. https://weaviate.io/blog/limit-in-the-loop Wed, 04 Feb 2026 00:00:00 +0000 Weaviate in 2025: Reliable Foundations for Agentic Systems https://weaviate.io/blog/weaviate-in-2025 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. https://weaviate.io/blog/weaviate-in-2025 Thu, 29 Jan 2026 00:00:00 +0000 We are not your parents’ (and grandparents’) Database https://weaviate.io/blog/not-your-grandparents-database Why vector databases are here to stay. https://weaviate.io/blog/not-your-grandparents-database Tue, 27 Jan 2026 00:00:00 +0000 Announcing the Weaviate C# Client https://weaviate.io/blog/weaviate-csharp-client-release 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. https://weaviate.io/blog/weaviate-csharp-client-release Thu, 15 Jan 2026 00:00:00 +0000 Weaviate 1.35 Release https://weaviate.io/blog/weaviate-1-35-release 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. https://weaviate.io/blog/weaviate-1-35-release Mon, 29 Dec 2025 00:00:00 +0000 Context Engineering - LLM Memory and Retrieval for AI Agents https://weaviate.io/blog/context-engineering 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. https://weaviate.io/blog/context-engineering Tue, 09 Dec 2025 00:00:00 +0000 AWS 2025 Rising Star Technology Partner https://weaviate.io/blog/aws-2025-partner-award Weaviate recognized by AWS Partners in Benelux as leaders in helping customers drive innovation https://weaviate.io/blog/aws-2025-partner-award Wed, 03 Dec 2025 00:00:00 +0000 Announcing the new Weaviate Java Client v6 https://weaviate.io/blog/weaviate-java-client-v6 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. https://weaviate.io/blog/weaviate-java-client-v6 Tue, 02 Dec 2025 00:00:00 +0000 Bringing RAG to Life with Dify and Weaviate https://weaviate.io/blog/dify-and-weaviate Learn how to use the Dify and Weaviate integration to build RAG applications. https://weaviate.io/blog/dify-and-weaviate Thu, 20 Nov 2025 00:00:00 +0000 Weaviate 1.34 Release https://weaviate.io/blog/weaviate-1-34-release 1.34 introduces flat index support with RQ quantization, server-side batching improvements, new client libraries, Contextual AI integration and much more. https://weaviate.io/blog/weaviate-1-34-release Tue, 11 Nov 2025 00:00:00 +0000 Weaviate security release - Medium and High severity fixes for CVE-2025-67818 and CVE-2025-67819 https://weaviate.io/blog/weaviate-security-release-november-2025 Weaviate announces two CVEs that are fixed in updated versions of our product. https://weaviate.io/blog/weaviate-security-release-november-2025 Fri, 07 Nov 2025 00:00:00 +0000 From Kitchen Experiments to Five Star Service: The Weaviate Development Journey https://weaviate.io/blog/day0-day1-day2-operations What building AI apps with Weaviate and cooking have in common? Let’s find out! https://weaviate.io/blog/day0-day1-day2-operations Thu, 06 Nov 2025 00:00:00 +0000 Evals and Guardrails in Enterprise workflows (Part 3) https://weaviate.io/blog/evals-enterprise-workflows-3 Hands-on patterns: Design pattern for gen-AI enterprise applications, with Arize AI. https://weaviate.io/blog/evals-enterprise-workflows-3 Tue, 04 Nov 2025 00:00:00 +0000 Unleash Real-Time Agentic AI with Streaming Agents on Confluent Cloud and Weaviate https://weaviate.io/blog/confluent-streaming-agents-and-weaviate Learn how Confluent’s Streaming Agents and Weaviate combine real-time context with semantic understanding for agentic AI. https://weaviate.io/blog/confluent-streaming-agents-and-weaviate Thu, 30 Oct 2025 00:00:00 +0000 A Simpler, More Transparent Pricing Model for Weaviate Cloud https://weaviate.io/blog/weaviate-cloud-pricing-update Weaviate Cloud gets an updated pricing model. https://weaviate.io/blog/weaviate-cloud-pricing-update Tue, 28 Oct 2025 00:00:00 +0000 Legacy data to RAG : Modernise Your Apps with Amazon Sagemaker Unified Studio https://weaviate.io/blog/sagemaker-studio-rag A guide to seamlessly transform data sitting in lakes and warehouses for GenAI capable applications https://weaviate.io/blog/sagemaker-studio-rag Thu, 16 Oct 2025 00:00:00 +0000 When Good Models Go Bad https://weaviate.io/blog/when-good-models-go-bad A strategic guide to the costs, risks and rewards of upgrading embedding models in production AI https://weaviate.io/blog/when-good-models-go-bad Thu, 09 Oct 2025 00:00:00 +0000 Rethinking Vector Search at Scale: Weaviate's Native, Efficient and Optimized Multi-Tenancy https://weaviate.io/blog/weaviate-multi-tenancy-architecture-explained Learn how Weaviate's native multi-tenancy architecture delivers scalable vector search with one shard per tenant, dynamic resource management, and true data isolation. https://weaviate.io/blog/weaviate-multi-tenancy-architecture-explained Wed, 08 Oct 2025 00:00:00 +0000 Weaviate 1.33 Release https://weaviate.io/blog/weaviate-1-33-release 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). https://weaviate.io/blog/weaviate-1-33-release Thu, 02 Oct 2025 00:00:00 +0000 Building Multi-Agent Systems with Crew AI and Weaviate https://weaviate.io/blog/building-multi-agent-systems Learn about how you can build multi-agent systems with CrewAI and Weaviate. https://weaviate.io/blog/building-multi-agent-systems Wed, 01 Oct 2025 00:00:00 +0000 Evals and Guardrails in Enterprise workflows (Part 2) https://weaviate.io/blog/evals-guardrails-enterprise-workflows-2 Hands-on patterns: LLM-as-Judge with LangChain and W&B https://weaviate.io/blog/evals-guardrails-enterprise-workflows-2 Thu, 25 Sep 2025 00:00:00 +0000 Weaviate is now ISO 27001 compliant https://weaviate.io/blog/weaviate-iso-compliant Announcing Weaviate has achieved ISO 27001 compliance. https://weaviate.io/blog/weaviate-iso-compliant Wed, 24 Sep 2025 00:00:00 +0000 Search Mode Benchmarking https://weaviate.io/blog/search-mode-benchmarking Learn how Search Mode compares against Hybrid Search on the BEIR, LoTTe, BRIGHT, EnronQA, and WixQA Information Retrieval benchmarks. https://weaviate.io/blog/search-mode-benchmarking Tue, 23 Sep 2025 00:00:00 +0000 Accelerating Data Workflows with Query Agent, now GA https://weaviate.io/blog/query-agent-generally-available 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. https://weaviate.io/blog/query-agent-generally-available Wed, 17 Sep 2025 00:00:00 +0000 Using Weaviate Cloud Queries in MacOS apps https://weaviate.io/blog/apple-and-weaviate-2 A practical guide on using Weaviate Cloud Queries in MacOS apps. https://weaviate.io/blog/apple-and-weaviate-2 Tue, 09 Sep 2025 00:00:00 +0000 Chunking Strategies to Improve LLM RAG Pipeline Performance https://weaviate.io/blog/chunking-strategies-for-rag Learn how chunking strategies improve LLM RAG pipelines, retrieval quality, and agent memory performance across production AI systems. https://weaviate.io/blog/chunking-strategies-for-rag Thu, 04 Sep 2025 00:00:00 +0000 8-bit Rotational Quantization: How to Compress Vectors by 4x and Improve the Speed-Quality Tradeoff of Vector Search https://weaviate.io/blog/8-bit-rotational-quantization 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. https://weaviate.io/blog/8-bit-rotational-quantization Tue, 26 Aug 2025 00:00:00 +0000 Evals and Guardrails in Enterprise workflows (Part 1) https://weaviate.io/blog/evals-guardrails-enterprise-workflows-1 Evals and Guardrails in enterprise workflows part 1 https://weaviate.io/blog/evals-guardrails-enterprise-workflows-1 Wed, 20 Aug 2025 00:00:00 +0000 Elysia: Building an end-to-end agentic RAG app https://weaviate.io/blog/elysia-agentic-rag 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. https://weaviate.io/blog/elysia-agentic-rag Tue, 12 Aug 2025 00:00:00 +0000 Why, When and How to Fine-Tune a Custom Embedding Model https://weaviate.io/blog/fine-tune-embedding-model 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. https://weaviate.io/blog/fine-tune-embedding-model Tue, 05 Aug 2025 00:00:00 +0000 Build enterprise workflows with Langchain and Weaviate v3 https://weaviate.io/blog/enterprise-workflow-langchain-weaviate 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. https://weaviate.io/blog/enterprise-workflow-langchain-weaviate Wed, 30 Jul 2025 00:00:00 +0000 AI Agent Workflow Automation with n8n and Weaviate https://weaviate.io/blog/agent-workflow-automation-n8n-weaviate You can now use Weaviate with n8n for no-code agentic workflows. This article teaches you how. https://weaviate.io/blog/agent-workflow-automation-n8n-weaviate Fri, 25 Jul 2025 00:00:00 +0000 Weaviate 1.32 Release https://weaviate.io/blog/weaviate-1-32-release 1.32 adds collection aliases for no-downtime collection migrations, efficient & powerful rotational quantization (RQ), GA replica movement, memory reduction with compressed HNSW connections and more! https://weaviate.io/blog/weaviate-1-32-release Tue, 22 Jul 2025 00:00:00 +0000 Introducing the New Weaviate Confluent Apache Kafka® Connector: Real-Time Vector Data Pipelines Made Easy https://weaviate.io/blog/weaviate-apache-kafka-connector Learn about the new certified Weaviate Confluent Apache Kafka Connector! https://weaviate.io/blog/weaviate-apache-kafka-connector Mon, 14 Jul 2025 00:00:00 +0000 Latency and Weaviate: Choosing the Right Region for your Vector Database https://weaviate.io/blog/latency-and-weaviate Design for speed, build for experience. https://weaviate.io/blog/latency-and-weaviate Thu, 10 Jul 2025 00:00:00 +0000 Introducing Glowe: Agent-Powered Korean Skincare Routines https://weaviate.io/blog/glowe-app 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/ https://weaviate.io/blog/glowe-app Wed, 09 Jul 2025 00:00:00 +0000 How We Are Building the Core of the AI-Native Stack https://weaviate.io/blog/building-core-of-ai-native-stack How Weaviate's day zero, day one, day two mindset helps developers build AI-native applications. https://weaviate.io/blog/building-core-of-ai-native-stack Tue, 08 Jul 2025 00:00:00 +0000 How Constella Uses Weaviate for Vector Search (RAG) and Cross-Platform Syncing across Devices for Consumer Apps https://weaviate.io/blog/vector-search-cross-platform-sync-constella How we built cross-platform vector search and syncing for a thinking tool using Weaviate, RAG, and multi-tenant architecture. https://weaviate.io/blog/vector-search-cross-platform-sync-constella Thu, 03 Jul 2025 00:00:00 +0000 Secure AI for Healthcare: HIPAA-compliant vector search with Weaviate https://weaviate.io/blog/weaviate-hipaa-compliant Announcing Weaviate Enterprise Cloud new HIPAA compliance on AWS, enabling secure PHI storage, search, and vector-powered AI for healthcare workloads. https://weaviate.io/blog/weaviate-hipaa-compliant Thu, 26 Jun 2025 00:00:00 +0000 The Art of Scaling a Vector Database like Weaviate https://weaviate.io/blog/scaling-and-weaviate Master the art of scaling a vector database like Weaviate. https://weaviate.io/blog/scaling-and-weaviate Wed, 18 Jun 2025 00:00:00 +0000 Unleashing AI Factories: Weaviate and NVIDIA Turbocharge Vector Search with GPU Acceleration https://weaviate.io/blog/nvidia-and-weaviate Learn how Weaviate and NVIDIA enable fast, scalable vector search for agentic AI. https://weaviate.io/blog/nvidia-and-weaviate Mon, 09 Jun 2025 00:00:00 +0000 More efficient multi-vector embeddings with MUVERA https://weaviate.io/blog/muvera 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. https://weaviate.io/blog/muvera Thu, 05 Jun 2025 00:00:00 +0000 Weaviate 1.31 Release https://weaviate.io/blog/weaviate-1-31-release 1.31 adds MUVERA for multi-vector embeddings, new BM25 operators, the ability to add new object vectors, and more! https://weaviate.io/blog/weaviate-1-31-release Tue, 03 Jun 2025 00:00:00 +0000 The State of Enterprise AI in 2025: Measured Progress Over Hype https://weaviate.io/blog/enterprise-ai-trends-2025 What trends we see arise in Enterprise AI in 2025. https://weaviate.io/blog/enterprise-ai-trends-2025 Tue, 27 May 2025 00:00:00 +0000 Build Scalable Gen AI Data Pipelines with Weaviate and Databricks https://weaviate.io/blog/genai-apps-with-weaviate-and-databricks Learn how to build generative AI data pipelines at scale with Weaviate and Databricks https://weaviate.io/blog/genai-apps-with-weaviate-and-databricks Tue, 29 Apr 2025 00:00:00 +0000 Exploring RAG and GraphRAG: Understanding when and how to use both https://weaviate.io/blog/graph-rag Learn when and how to use GraphRAG and how it can improve on some search tasks https://weaviate.io/blog/graph-rag Thu, 17 Apr 2025 00:00:00 +0000 Introducing the Weaviate Personalization Agent https://weaviate.io/blog/personalization-agent Learn about how you can use our new agentic personalization service to provide user-catered recommendations from Weaviate collections. https://weaviate.io/blog/personalization-agent Tue, 15 Apr 2025 00:00:00 +0000 An Overview of Late Interaction Retrieval Models: ColBERT, ColPali, and ColQwen https://weaviate.io/blog/late-interaction-overview Late interaction allow for semantically rich interactions that enable a precise retrieval process across different modalities of unstructured data, including text and images. https://weaviate.io/blog/late-interaction-overview Wed, 09 Apr 2025 00:00:00 +0000 ================================================ FILE: feeds/feed_windsurf_blog.xml ================================================ Windsurf Blog https://windsurf.com/blog Read about the latest announcements from Windsurf http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:51:19 +0000 Opus 4.7 (fast mode) is now available in Windsurf https://windsurf.com/blog/opus-4.7-fast 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. https://windsurf.com/blog/opus-4.7-fast product windsurf anthropic opus-4.7-fast Tue, 12 May 2026 12:00:00 +0000 Fast and Comprehensive Code Review, Now in Windsurf https://windsurf.com/blog/devin-review-windsurf Devin Review and Quick Review bring verification into the same workspace where you write code. https://windsurf.com/blog/devin-review-windsurf product windsurf devin-review Wed, 06 May 2026 12:00:00 +0000 Windsurf 2.0: Introducing the Agent Command Center and Devin in Windsurf https://windsurf.com/blog/windsurf-2-0 Ship more with local and cloud agents working together. https://windsurf.com/blog/windsurf-2-0 product windsurf agent-command-center devin Wed, 15 Apr 2026 12:00:00 +0000 Introducing Adaptive: a smarter way to use Windsurf https://windsurf.com/blog/windsurf-adaptive 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. https://windsurf.com/blog/windsurf-adaptive product windsurf pricing adaptive Mon, 06 Apr 2026 12:00:00 +0000 Introducing our new Windsurf pricing plans https://windsurf.com/blog/windsurf-pricing-plans 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. https://windsurf.com/blog/windsurf-pricing-plans product windsurf pricing Wed, 18 Mar 2026 12:00:00 +0000 GPT-5.4 is now available in Windsurf https://windsurf.com/blog/gpt-5.4 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. https://windsurf.com/blog/gpt-5.4 product windsurf openai gpt-5.4 Thu, 05 Mar 2026 12:00:00 +0000 Gemini 3.1 Pro is now available in Windsurf https://windsurf.com/blog/gemini-3.1-pro 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. https://windsurf.com/blog/gemini-3.1-pro product windsurf google gemini-3.1-pro Thu, 19 Feb 2026 16:00:00 +0000 Claude Sonnet 4.6 is now available in Windsurf https://windsurf.com/blog/sonnet-4.6 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. https://windsurf.com/blog/sonnet-4.6 product windsurf anthropic sonnet-4.6 Tue, 17 Feb 2026 12:00:00 +0000 GLM-5 and Minimax M2.5 are now available in Windsurf https://windsurf.com/blog/glm-5-minimax-m2.5 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. https://windsurf.com/blog/glm-5-minimax-m2.5 product windsurf glm-5 minimax-m2.5 Mon, 16 Feb 2026 12:00:00 +0000 GPT-5.3-Codex-Spark is now available in Windsurf https://windsurf.com/blog/gpt-5.3-codex-spark 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. https://windsurf.com/blog/gpt-5.3-codex-spark product windsurf openai gpt-5.3-codex-spark Thu, 12 Feb 2026 12:00:00 +0000 Windsurf Arena Mode Leaderboard: The People Want Speed https://windsurf.com/blog/windsurf-arena-mode-leaderboard We are releasing the initial results of the Windsurf Arena Mode leaderboard today — with some surprising upsets. https://windsurf.com/blog/windsurf-arena-mode-leaderboard product Wed, 11 Feb 2026 12:00:00 +0000 Opus 4.6 (fast mode) is now available in Windsurf https://windsurf.com/blog/opus-4.6-fast 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. https://windsurf.com/blog/opus-4.6-fast product windsurf anthropic opus-4.6-fast Sat, 07 Feb 2026 12:00:00 +0000 Opus 4.6 is now available in Windsurf https://windsurf.com/blog/opus-4.6 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. https://windsurf.com/blog/opus-4.6 product windsurf anthropic opus-4.6 Thu, 05 Feb 2026 12:00:00 +0000 Windsurf Tab v2: 25-75% more accepted code with Variable Aggression https://windsurf.com/blog/windsurf-tab-2 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. https://windsurf.com/blog/windsurf-tab-2 product Tue, 03 Feb 2026 12:00:00 +0000 Wave 14: Arena Mode - May the Best Model Win https://windsurf.com/blog/windsurf-wave-14 Arena Mode brings side-by-side model comparison directly into your IDE, plus Plan Mode and Megaplan for smarter task planning. https://windsurf.com/blog/windsurf-wave-14 product Fri, 30 Jan 2026 12:00:00 +0000 GPT-5.2-Codex is now available in Windsurf! https://windsurf.com/blog/gpt-5-2-codex GPT-5.2-Codex is now available in Windsurf with multiple reasoning effort levels. For a limited time, enjoy discounts on credit usage. https://windsurf.com/blog/gpt-5-2-codex product company openai windsurf Wed, 14 Jan 2026 12:00:00 +0000 Windsurf Wave 13: Merry Shipmas https://windsurf.com/blog/windsurf-wave-13 Parallel agents, Git worktrees, multi-pane Cascade, dedicated terminal, and SWE-1.5 Free https://windsurf.com/blog/windsurf-wave-13 product Wed, 24 Dec 2025 12:00:00 +0000 GPT 5.2 is now available in Windsurf! https://windsurf.com/blog/gpt-5-2 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 https://windsurf.com/blog/gpt-5-2 product company openai gpt-5.2 windsurf Thu, 11 Dec 2025 12:00:00 +0000 Opus 4.5 is now available in Windsurf https://windsurf.com/blog/opus-4.5 The most capable model in Windsurf yet, now available at Sonnet prices for a limited time https://windsurf.com/blog/opus-4.5 product windsurf anthropic opus-4.5 Mon, 24 Nov 2025 12:00:00 +0000 GPT 5.1, GPT 5.1-Codex, and GPT-5.1-Codex Mini are now available in Windsurf https://windsurf.com/blog/gpt-5-1 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 https://windsurf.com/blog/gpt-5-1 product company openai gpt-5.1 codex Thu, 13 Nov 2025 12:00:00 +0000 Introducing SWE-1.5: Our Fast Agent Model https://windsurf.com/blog/swe-1-5 SWE-1.5 is our latest frontier model, delivering near-SOTA coding performance at unprecedented speed. https://windsurf.com/blog/swe-1-5 product company Wed, 29 Oct 2025 12:00:00 +0000 Cognition and Windsurf's Commitment to United States Government (USG) and Impact Level 6 (IL6) Deployments https://windsurf.com/blog/cognition-windsurf-il6 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. https://windsurf.com/blog/cognition-windsurf-il6 company enterprise Fri, 03 Oct 2025 12:00:00 +0000 Cognition (Windsurf) Named a Leader in the 2025 Gartner® Magic Quadrant™ for AI Code Assistants https://windsurf.com/blog/gartner-windsurf-cognition-magic-quadrant-ai-coding-assistants Cognition’s Windsurf has been named a Leader in the 2025 Gartner® Magic Quadrant™ for AI Code Assistants https://windsurf.com/blog/gartner-windsurf-cognition-magic-quadrant-ai-coding-assistants product enterprise industry company Wed, 17 Sep 2025 12:00:00 +0000 Windsurf Queued Messages Release https://windsurf.com/blog/queued-messages Windsurf now has Queued Messages! https://windsurf.com/blog/queued-messages product Tue, 16 Sep 2025 12:00:00 +0000 Windsurf Wave 12: Devin features in Windsurf https://windsurf.com/blog/windsurf-wave-12 DeepWiki, Vibe and Replace, Dev Containers, and more! https://windsurf.com/blog/windsurf-wave-12 product Thu, 14 Aug 2025 12:00:00 +0000 Wave 11: Just Keep Shipping https://windsurf.com/blog/windsurf-wave-11 More tools for the Browser, Voice Mode, Checkpoints, and more! https://windsurf.com/blog/windsurf-wave-11 product Thu, 17 Jul 2025 10:00:00 +0000 Our Commitment to Windsurf https://windsurf.com/blog/our-commitment-cognition-partnership What the acquisition by Cognition means for you https://windsurf.com/blog/our-commitment-cognition-partnership company enterprise product Wed, 16 Jul 2025 10:00:00 +0000 The Next Chapter https://windsurf.com/blog/windsurfs-next-chapter Windsurf is joining forces with Cognition. https://windsurf.com/blog/windsurfs-next-chapter company Mon, 14 Jul 2025 10:00:00 +0000 The Next Stage of Windsurf https://windsurf.com/blog/windsurfs-next-stage Entering a new era. https://windsurf.com/blog/windsurfs-next-stage company Fri, 11 Jul 2025 10:00:00 +0000 Changelist: June 2025 https://windsurf.com/blog/changelist-jun25 Windsurf updates from June 2025! https://windsurf.com/blog/changelist-jun25 product changelist Tue, 01 Jul 2025 15:00:00 +0000 Windsurf and AHEAD Form Strategic AI DevOps Partnership https://windsurf.com/blog/ahead-partnership AHEAD is now offering a full suite of services around Windsurf https://windsurf.com/blog/ahead-partnership enterprise Thu, 26 Jun 2025 07:00:00 +0000 Our Brand https://windsurf.com/blog/our-brand A visual reflection of how we want our users to feel while using the platform: LIMITLESS. https://windsurf.com/blog/our-brand company Fri, 20 Jun 2025 10:00:00 +0000 Percentage of Code Written https://windsurf.com/blog/percentage-code-written https://windsurf.com/blog/percentage-code-written product Fri, 13 Jun 2025 12:00:00 +0000 Wave 10: Other Announcements https://windsurf.com/blog/windsurf-wave-10-ux-enterprise A number of improvements to the enterprise offering and general UI/UX. https://windsurf.com/blog/windsurf-wave-10-ux-enterprise product Thu, 12 Jun 2025 10:00:00 +0000 Wave 10: The Windsurf Browser https://windsurf.com/blog/windsurf-wave-10-browser Our new browser surface for maximum implicit context understanding and flow awareness. https://windsurf.com/blog/windsurf-wave-10-browser product Wed, 11 Jun 2025 10:00:00 +0000 Wave 10: Planning Mode https://windsurf.com/blog/windsurf-wave-10-planning-mode A native way to collaborate with the AI on longer, more complex tasks. https://windsurf.com/blog/windsurf-wave-10-planning-mode product Tue, 10 Jun 2025 10:00:00 +0000 athenahealth Advances Healthcare Innovation with Windsurf https://windsurf.com/blog/athena-health-case-study athenahealth uses Windsurf to accelerate their developers. https://windsurf.com/blog/athena-health-case-study enterprise case studies Tue, 10 Jun 2025 07:00:00 +0000 Changelist: May 2025 https://windsurf.com/blog/changelist-may25 Windsurf updates from May 2025! https://windsurf.com/blog/changelist-may25 product changelist Fri, 06 Jun 2025 15:00:00 +0000 Statement on Anthropic Model Availability https://windsurf.com/blog/anthropic-models Anthropic deciding to cut off capacity does not change our commitment to providing the best product for our users. https://windsurf.com/blog/anthropic-models product company industry Tue, 03 Jun 2025 12:00:00 +0000 An Inflection Point for U.S. Government https://windsurf.com/blog/windsurf-inflection-government Windsurf is uniquely positioned to address the U.S. Government’s challenges https://windsurf.com/blog/windsurf-inflection-government enterprise Thu, 29 May 2025 07:00:00 +0000 Windsurf Fuels Mercado Libre’s Growth Strategy https://windsurf.com/blog/mercado-libre-case-study Mercado Libre uses Windsurf to accelerate their developers. https://windsurf.com/blog/mercado-libre-case-study case studies Tue, 27 May 2025 07:00:00 +0000 SWE-1: Our First Frontier Models https://windsurf.com/blog/windsurf-wave-9-swe-1 Introducing our first Frontier Models! https://windsurf.com/blog/windsurf-wave-9-swe-1 product company Thu, 15 May 2025 12:00:00 +0000 Self-Hosted Deployment Maintenance Mode https://windsurf.com/blog/self-hosted-deployment-maintenance-mode 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. https://windsurf.com/blog/self-hosted-deployment-maintenance-mode company Mon, 12 May 2025 14:00:00 +0000 Wave 8: UX Features + Plugins Update https://windsurf.com/blog/windsurf-wave-8-ux-features-and-plugins Introducing Wave 8, our biggest batch of updates yet! This is part 3 of 3. https://windsurf.com/blog/windsurf-wave-8-ux-features-and-plugins product company Thu, 08 May 2025 12:00:00 +0000 Wave 8: Cascade Customization Features https://windsurf.com/blog/windsurf-wave-8-cascade-customization-features Introducing Wave 8, our biggest batch of updates yet! This is part 2 of 3. https://windsurf.com/blog/windsurf-wave-8-cascade-customization-features product company Wed, 07 May 2025 12:00:00 +0000 Windsurf Wave 8: Teams & Enterprise Features https://windsurf.com/blog/windsurf-wave-8-teams-and-enterprise Introducing Wave 8, our biggest batch of updates yet! This is part 1 of 3. https://windsurf.com/blog/windsurf-wave-8-teams-and-enterprise product company Tue, 06 May 2025 12:00:00 +0000 Changelist: April 2025 https://windsurf.com/blog/changelist-apr25 Windsurf updates from April 2025! https://windsurf.com/blog/changelist-apr25 product changelist Fri, 02 May 2025 15:00:00 +0000 An Update to Our Free Plan https://windsurf.com/blog/update-to-free-plan The Free Tier is getting an upgrade! https://windsurf.com/blog/update-to-free-plan product company Mon, 28 Apr 2025 12:00:00 +0000 An Update to Our Pricing https://windsurf.com/blog/pricing-v2 Our pricing model is getting much simpler! https://windsurf.com/blog/pricing-v2 product company Mon, 21 Apr 2025 12:00:00 +0000 Changelist: March 2025 https://windsurf.com/blog/changelist-mar25 Codeium updates from March 2025! https://windsurf.com/blog/changelist-mar25 product changelist Fri, 11 Apr 2025 07:00:00 +0000 Windsurf Named 2025’s Forbes AI 50 Recipient https://windsurf.com/blog/windsurf-codeium-forbes-ai50 Forbes AI 50 spotlights the most promising private companies applying AI to real-world challenges.hero https://windsurf.com/blog/windsurf-codeium-forbes-ai50 company industry enterprise Thu, 10 Apr 2025 12:00:00 +0000 Windsurf Wave 7 https://windsurf.com/blog/windsurf-wave-7 Introducing Wave 7, our seventh batch of updates to the Windsurf Editor. https://windsurf.com/blog/windsurf-wave-7 product company Wed, 09 Apr 2025 12:00:00 +0000 The Next Chapter: Renaming to Windsurf https://windsurf.com/blog/windsurf-rebrand-announcement Announcing the renaming of Codeium to Windsurf https://windsurf.com/blog/windsurf-rebrand-announcement company enterprise product Fri, 04 Apr 2025 12:00:00 +0000 Forge Deprecation https://windsurf.com/blog/forge-deprecation Deprecating Forge and looking towards better AI code review. https://windsurf.com/blog/forge-deprecation product company Fri, 04 Apr 2025 12:00:00 +0000 What is an Agent? https://windsurf.com/blog/what-is-an-agent Demystifying AI agents: understanding the reasoning-action loop that powers modern AI systems https://windsurf.com/blog/what-is-an-agent industry company enterprise Thu, 03 Apr 2025 12:00:00 +0000 Windsurf Wave 6 https://windsurf.com/blog/windsurf-wave-6 Introducing Wave 6, our sixth batch of updates to the Windsurf Editor. https://windsurf.com/blog/windsurf-wave-6 product company Wed, 02 Apr 2025 12:00:00 +0000 Windsurf Wave 5 https://windsurf.com/blog/windsurf-wave-5 Introducing Wave 5, our fifth batch of updates to the Windsurf Editor. https://windsurf.com/blog/windsurf-wave-5 product company Fri, 14 Mar 2025 12:00:00 +0000 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 https://windsurf.com/blog/fedramp-certification Windsurf Extensions have achieved FedRAMP High Authorization and IL5 Compliance, marking a significant milestone in the federal space. https://windsurf.com/blog/fedramp-certification company enterprise Mon, 10 Mar 2025 12:00:00 +0000 Changelist: February 2025 https://windsurf.com/blog/changelist-feb25 Codeium updates from February 2025! https://windsurf.com/blog/changelist-feb25 product changelist Fri, 07 Mar 2025 15:00:00 +0000 Windsurf Wave 4 https://windsurf.com/blog/windsurf-wave-4 Introducing Wave 4, our fourth batch of updates to the Windsurf Editor. https://windsurf.com/blog/windsurf-wave-4 product company Wed, 05 Mar 2025 12:00:00 +0000 Windsurf Wave 3 https://windsurf.com/blog/windsurf-wave-3 Introducing Wave 3, our third batch of updates to the Windsurf Editor. https://windsurf.com/blog/windsurf-wave-3 product company Thu, 13 Feb 2025 12:00:00 +0000 Changelist: January 2025 https://windsurf.com/blog/changelist-jan25 Codeium updates from January 2025! https://windsurf.com/blog/changelist-jan25 product changelist Thu, 06 Feb 2025 15:00:00 +0000 Windsurf Next Launch https://windsurf.com/blog/windsurf-next Introducing Windsurf Next, our opt-in prerelease version of Windsurf. https://windsurf.com/blog/windsurf-next product company Wed, 05 Feb 2025 12:00:00 +0000 DeepSeek R1 and OpenAI o3-mini now available in Windsurf https://windsurf.com/blog/deepseek-r1-and-o3-mini-available-in-windsurf DeepSeek R1, DeepSeek V3, and OpenAI o3-mini are now available in Windsurf. https://windsurf.com/blog/deepseek-r1-and-o3-mini-available-in-windsurf product company Fri, 31 Jan 2025 12:00:00 +0000 Windsurf Wave 2 https://windsurf.com/blog/windsurf-wave-2 Introducing Wave 2, our second batch of updates to the Windsurf Editor. https://windsurf.com/blog/windsurf-wave-2 product company Fri, 17 Jan 2025 12:00:00 +0000 DRW on Codeium https://windsurf.com/blog/drw-case-study DRW uses Codeium to boost developer productivity while safeguarding intellectual property. https://windsurf.com/blog/drw-case-study enterprise case studies Mon, 06 Jan 2025 12:00:00 +0000 Changelist: December 2024 https://windsurf.com/blog/changelist-dec24 Codeium updates from December 2024! https://windsurf.com/blog/changelist-dec24 product changelist Fri, 03 Jan 2025 15:00:00 +0000 Innovation, not Productivity: Why we Built Windsurf https://windsurf.com/blog/why-we-built-windsurf Why did we build Windsurf? Were the extensions not good enough? https://windsurf.com/blog/why-we-built-windsurf product company Thu, 19 Dec 2024 12:00:00 +0000 Windsurf Wave 1 https://windsurf.com/blog/windsurf-wave-1 Introducing Wave 1, our first batch of updates to the Windsurf Editor. https://windsurf.com/blog/windsurf-wave-1 product company Wed, 11 Dec 2024 12:00:00 +0000 Changelist: November 2024 https://windsurf.com/blog/changelist-nov24 Codeium updates from November 2024! https://windsurf.com/blog/changelist-nov24 product changelist Tue, 10 Dec 2024 15:00:00 +0000 Plans and Pricing Updates https://windsurf.com/blog/pricing-windsurf Some changes to our pricing model for Cascade. https://windsurf.com/blog/pricing-windsurf product company Fri, 06 Dec 2024 12:00:00 +0000 Windsurf Launch https://windsurf.com/blog/windsurf-launch Introducing the Windsurf Editor, our new IDE. https://windsurf.com/blog/windsurf-launch industry product company Wed, 13 Nov 2024 07:00:00 +0000 How Codeium Helps Onboarding https://windsurf.com/blog/codeium-helps-onboarding Minimizing developer onboarding time is critical for any serious enterprise. https://windsurf.com/blog/codeium-helps-onboarding industry product company enterprise Wed, 06 Nov 2024 07:00:00 +0000 Changelist: October 2024 https://windsurf.com/blog/changelist-oct24 Codeium updates from October 2024! https://windsurf.com/blog/changelist-oct24 product changelist Sat, 02 Nov 2024 15:00:00 +0000 Codeium: JPMorgan Chase's Hall of Innovation https://windsurf.com/blog/jpmc-codeium-hall-of-innovation Codeium inducted into JPMorgan Chase Hall of Innovation for AI-powered development solutions. https://windsurf.com/blog/jpmc-codeium-hall-of-innovation industry product company enterprise partnership case studies Thu, 31 Oct 2024 07:00:00 +0000 The Art of Analytics https://windsurf.com/blog/the-art-of-analytics Why should we care about analytics? What could go wrong? https://windsurf.com/blog/the-art-of-analytics company enterprise product industry Wed, 23 Oct 2024 08:00:00 +0000 Supercomplete https://windsurf.com/blog/supercomplete-launch Introducing Supercomplete, a new modality that predicts your next intent. https://windsurf.com/blog/supercomplete-launch product enterprise Mon, 14 Oct 2024 07:00:00 +0000 Changelist: September 2024 https://windsurf.com/blog/changelist-sep24 Codeium updates from September 2024! https://windsurf.com/blog/changelist-sep24 product changelist Fri, 04 Oct 2024 15:00:00 +0000 What Will Harvard Business School Write? https://windsurf.com/blog/what-will-hbs-write History is written by the victors. https://windsurf.com/blog/what-will-hbs-write company Wed, 25 Sep 2024 07:00:00 +0000 Pro Tier https://windsurf.com/blog/pro-tier-launch Introducing the Pro Tier, a premium paid plan for individual developers. https://windsurf.com/blog/pro-tier-launch product company Wed, 18 Sep 2024 07:00:00 +0000 Changelist: August 2024 https://windsurf.com/blog/changelist-aug24 Codeium updates from August 2024! https://windsurf.com/blog/changelist-aug24 product changelist Thu, 05 Sep 2024 15:00:00 +0000 Series C Announcement https://windsurf.com/blog/series-c-annoucement 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. https://windsurf.com/blog/series-c-annoucement company Thu, 29 Aug 2024 14:00:00 +0000 Codeium: Gartner AI Challenger https://windsurf.com/blog/gartner-codeium-magic-quadrant-critical-capabilities Codeium is recognized as a Gartner Magic Quadrant™ Challenger, ranking highest in Code Modernization and Artifact Building & Testing. https://windsurf.com/blog/gartner-codeium-magic-quadrant-critical-capabilities industry enterprise Wed, 28 Aug 2024 07:00:00 +0000 Our Model Strategy https://windsurf.com/blog/our-model-strategy Our model strategy is simple. Whatever delivers the most value. https://windsurf.com/blog/our-model-strategy company industry Mon, 26 Aug 2024 08:00:00 +0000 Broadcom x Codeium https://windsurf.com/blog/vmware-codeium-announcement Announcing Codeium on VMware Private AI by Broadcom. https://windsurf.com/blog/vmware-codeium-announcement industry enterprise partnership Mon, 26 Aug 2024 07:00:00 +0000 Smart Paste: Effortless Code Translation https://windsurf.com/blog/codeium-smart-paste A new feature that allows you to translate code to any desired language automatically. https://windsurf.com/blog/codeium-smart-paste product Wed, 21 Aug 2024 07:00:00 +0000 Dream Bigger https://windsurf.com/blog/codeium-dream-bigger The Codeium mission, Riptide and Forge launches, and detailed vision. https://windsurf.com/blog/codeium-dream-bigger company product Tue, 13 Aug 2024 07:00:00 +0000 Changelist: July 2024 https://windsurf.com/blog/changelist-jul24 Codeium updates from July 2024! https://windsurf.com/blog/changelist-jul24 product changelist Thu, 08 Aug 2024 07:00:00 +0000 Better Chat than ChatGPT https://windsurf.com/blog/codeium-better-chat Model, reasoning, and UX breakthroughs across the Codeium Chat stack to make it a best-in-class AI Chat developer experience. https://windsurf.com/blog/codeium-better-chat product Thu, 01 Aug 2024 07:00:00 +0000 Codeium: Rising the Ranks on Stack Overflow https://windsurf.com/blog/codeium-stack-overflow-developer-survey-2024 Codeium is one of the most desired and admired AI tools for developers. https://windsurf.com/blog/codeium-stack-overflow-developer-survey-2024 company Mon, 29 Jul 2024 07:00:00 +0000 Culture: Be Valuable, Not Right https://windsurf.com/blog/codeium-culture-be-valuable-not-right A little bit about our origin story and staying honest with ourselves. https://windsurf.com/blog/codeium-culture-be-valuable-not-right company Fri, 26 Jul 2024 07:00:00 +0000 Work at Little Tech https://windsurf.com/blog/work-at-little-tech-codeium Our billboard campaign to raise awareness for the startup world. https://windsurf.com/blog/work-at-little-tech-codeium company Mon, 22 Jul 2024 07:00:00 +0000 Command: A Case Study in Product Development https://windsurf.com/blog/codeium-command-improvement-case-study How we made a state-of-the-art instruction following system by training proprietary foundational models and listening to user feedback. https://windsurf.com/blog/codeium-command-improvement-case-study product Mon, 22 Jul 2024 07:00:00 +0000 Zillow on Codeium https://windsurf.com/blog/zillow-codeium-case-study Zillow uses Codeium to accelerate their developers. https://windsurf.com/blog/zillow-codeium-case-study enterprise case studies Wed, 17 Jul 2024 07:00:00 +0000 Changelist: June 2024 https://windsurf.com/blog/changelist-jun24 Codeium updates from June 2024! https://windsurf.com/blog/changelist-jun24 product changelist Mon, 08 Jul 2024 07:00:00 +0000 Codeium: Leader According to Stack Overflow Survey https://windsurf.com/blog/codeium-stack-overflow-pulse-survey Codeium was ranked as the AI Code Assistant driving the most self-reported satisfication and productivity. https://windsurf.com/blog/codeium-stack-overflow-pulse-survey company Sat, 29 Jun 2024 07:00:00 +0000 Hybrid Deployment: Perfect mix of security and performance https://windsurf.com/blog/hybrid-deployment An analysis of the Hybrid deployment from Codeium, a first-of-its-kind offering. https://windsurf.com/blog/hybrid-deployment enterprise product Wed, 19 Jun 2024 07:00:00 +0000 Codeium: Truly Enterprise-Ready Code Assistant https://windsurf.com/blog/codeium-truly-enterprise-ready A deeper dive into recent enterprise readiness capabilities: indexing access controls, subteam analytics, and audit logging. https://windsurf.com/blog/codeium-truly-enterprise-ready enterprise product Tue, 11 Jun 2024 07:00:00 +0000 Our Cultural Principles https://windsurf.com/blog/codeium-cultural-principles What makes Codeium, Codeium? https://windsurf.com/blog/codeium-cultural-principles company Fri, 07 Jun 2024 07:00:00 +0000 Changelist: May 2024 https://windsurf.com/blog/changelist-may24 Codeium updates from May 2024! https://windsurf.com/blog/changelist-may24 product changelist Wed, 05 Jun 2024 07:00:00 +0000 Changelist: April 2024 https://windsurf.com/blog/changelist-apr24 Codeium updates from April 2024! https://windsurf.com/blog/changelist-apr24 product changelist Wed, 08 May 2024 07:00:00 +0000 Codeium Command in JetBrains https://windsurf.com/blog/jetbrains-codeium-command-launch Codeium Command is now available on JetBrains IDEs. https://windsurf.com/blog/jetbrains-codeium-command-launch product Wed, 01 May 2024 07:00:00 +0000 World Wide Technology on Codeium https://windsurf.com/blog/wwt-case-study WWT uses Codeium to accelerate their developers. https://windsurf.com/blog/wwt-case-study enterprise case studies Tue, 30 Apr 2024 07:00:00 +0000 Google Gemini CodeAssist: A Review https://windsurf.com/blog/google-gemini-codeassist-review An analysis and test of the AI code assistant tool from Google. https://windsurf.com/blog/google-gemini-codeassist-review industry Tue, 23 Apr 2024 07:00:00 +0000 Codeium: Forbes AI 50 Recipient https://windsurf.com/blog/codeium-forbes-ai-50 Codeium is the only AI code assistant in the 2024 Forbes AI 50 List. https://windsurf.com/blog/codeium-forbes-ai-50 company Thu, 18 Apr 2024 07:00:00 +0000 Changelist: March 2024 https://windsurf.com/blog/changelist-mar24 Codeium updates from March 2024! https://windsurf.com/blog/changelist-mar24 product changelist Tue, 09 Apr 2024 07:00:00 +0000 Personalization: Context Awareness vs Customer-Specific Finetuning https://windsurf.com/blog/personalization-context-awareness-vs-customer-specific-finetuning We break down the value of context awareness and finetuning to personalize the Codeium system to particular enterprises. https://windsurf.com/blog/personalization-context-awareness-vs-customer-specific-finetuning industry enterprise product Mon, 01 Apr 2024 07:00:00 +0000 What do you actually get with GitHub Copilot for Enterprises? https://windsurf.com/blog/github-copilot-enterprise-review A feature-by-feature analysis of the new GitHub Copilot tier. https://windsurf.com/blog/github-copilot-enterprise-review industry enterprise Tue, 12 Mar 2024 07:00:00 +0000 Changelist: February 2024 https://windsurf.com/blog/changelist-feb24 Codeium updates from February 2024! https://windsurf.com/blog/changelist-feb24 product changelist Thu, 07 Mar 2024 07:00:00 +0000 Context Pinning https://windsurf.com/blog/codeium-context-pinning-launch Developers can now specify and persist known relevant context for Codeium to emphasize in results. https://windsurf.com/blog/codeium-context-pinning-launch product enterprise Wed, 06 Mar 2024 07:00:00 +0000 Codeium Passes One Million Downloads https://windsurf.com/blog/one-million-codeium-downloads Codeium has been downloaded over one million times by developers across 40+ IDEs. https://windsurf.com/blog/one-million-codeium-downloads company Wed, 28 Feb 2024 14:00:00 +0000 Remote Indexing and Multi-repository Context Awareness https://windsurf.com/blog/remote-indexing-multirepo-announcement Announcing expanded and improved context awareness capabilities in Codeium. https://windsurf.com/blog/remote-indexing-multirepo-announcement product enterprise Tue, 20 Feb 2024 07:00:00 +0000 Changelist: January 2024 https://windsurf.com/blog/changelist-jan24 Codeium updates from Jaunary 2024! https://windsurf.com/blog/changelist-jan24 product changelist Wed, 07 Feb 2024 07:00:00 +0000 Series B Announcement https://windsurf.com/blog/series-b-annoucement 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. https://windsurf.com/blog/series-b-annoucement company Tue, 30 Jan 2024 14:00:00 +0000 Clearwater Analytics on Codeium https://windsurf.com/blog/clearwater-analytics-case-study Clearwater Analytics uses Codeium to accelerate their developers. https://windsurf.com/blog/clearwater-analytics-case-study enterprise case studies Thu, 25 Jan 2024 07:00:00 +0000 Atlassian x Codeium https://windsurf.com/blog/atlassian-codeium-announcement Announcing our integrations and work with Atlassian. https://windsurf.com/blog/atlassian-codeium-announcement industry product enterprise partnership Mon, 22 Jan 2024 07:00:00 +0000 Latency, the Ultimate Gen AI Constraint https://windsurf.com/blog/latency-the-ultimate-constraint How latency constraints enable us to use our infrastructure expertise to make better products. https://windsurf.com/blog/latency-the-ultimate-constraint product enterprise industry Thu, 18 Jan 2024 07:00:00 +0000 MongoDB x Codeium https://windsurf.com/blog/mongodb-codeium-partnership-announcement Announcing our integration and partnership with MongoDB. Get started with MongoDB and Codeium in under 5 minutes using this tutorial. https://windsurf.com/blog/mongodb-codeium-partnership-announcement industry product enterprise partnership Wed, 17 Jan 2024 07:00:00 +0000 Termium: Codeium in the Terminal https://windsurf.com/blog/termium-codeium-in-terminal-launch AI-powered autocomplete for your terminal commands. https://windsurf.com/blog/termium-codeium-in-terminal-launch product prototype Wed, 10 Jan 2024 07:00:00 +0000 Changelist: December 2023 https://windsurf.com/blog/changelist-dec23 Codeium updates from December 2023! https://windsurf.com/blog/changelist-dec23 product changelist Tue, 09 Jan 2024 07:00:00 +0000 Streamlining AI Code Chat with @ Mentions https://windsurf.com/blog/introducing-at-mentions @ Mentions make it easier than ever to integrate chat into your workflows. https://windsurf.com/blog/introducing-at-mentions product Thu, 04 Jan 2024 07:00:00 +0000 The Golden Metrics: Characters per Opportunity and Percentage Code Written https://windsurf.com/blog/golden-metrics-characters-per-opportunity-percentage-code-written 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. https://windsurf.com/blog/golden-metrics-characters-per-opportunity-percentage-code-written industry enterprise product Wed, 03 Jan 2024 07:00:00 +0000 The Effect of Generative AI on the Human-Tool Interface https://windsurf.com/blog/human-tool-interface A mental model of how we think about maximizing the value of AI tools. https://windsurf.com/blog/human-tool-interface industry Tue, 19 Dec 2023 07:00:00 +0000 What We Think of 2023 Q4 AI News https://windsurf.com/blog/what-we-think-of-2023q4-ai-announcements Our takes on an eventful ending to 2023. https://windsurf.com/blog/what-we-think-of-2023q4-ai-announcements industry Mon, 18 Dec 2023 07:00:00 +0000 Codeium is SOC 2 Type 2 Compliant https://windsurf.com/blog/codeium-is-soc2-type2-compliant Announcing our SOC 2 Type 2 Report. https://windsurf.com/blog/codeium-is-soc2-type2-compliant product enterprise Wed, 13 Dec 2023 07:00:00 +0000 Prototype Capabilities https://windsurf.com/blog/codeium-prototype-features Balancing product development with uncertainty. https://windsurf.com/blog/codeium-prototype-features product prototype Tue, 12 Dec 2023 07:00:00 +0000 Changelist: November 2023 https://windsurf.com/blog/changelist-nov23 Codeium updates from November 2023! https://windsurf.com/blog/changelist-nov23 product changelist Mon, 11 Dec 2023 07:00:00 +0000 Code Suggestion Attribution https://windsurf.com/blog/attribution-announcement We have built state-of-the-art post-generation attribution to further our compliance story. https://windsurf.com/blog/attribution-announcement enterprise product Wed, 06 Dec 2023 07:00:00 +0000 Anduril on Windsurf https://windsurf.com/blog/anduril-case-study Anduril uses Windsurf to accelerate their developers. https://windsurf.com/blog/anduril-case-study enterprise case studies Tue, 28 Nov 2023 07:00:00 +0000 CodeSandbox x Codeium https://windsurf.com/blog/codesandbox-codeium-partnership-announcement Announcing our first class integration and partnership with CodeSandbox. https://windsurf.com/blog/codesandbox-codeium-partnership-announcement industry product partnership Fri, 24 Nov 2023 07:00:00 +0000 GitHub Copilot’s Security Filters Don’t Work https://windsurf.com/blog/github-copilot-security-scanning-does-not-work We tested the claim that LLMs can catch security vulnerabilities. https://windsurf.com/blog/github-copilot-security-scanning-does-not-work industry Wed, 22 Nov 2023 07:00:00 +0000 Introducing Codeium Live: Free, Forever Up-to-Date In-Browser Chat https://windsurf.com/blog/codeium-live Codeium live is free, forever in-browser chat with direct access to external repositories and libraries, updated every day to get accurate, relevant answers. https://windsurf.com/blog/codeium-live product prototype Thu, 16 Nov 2023 07:00:00 +0000 Codeium Command https://windsurf.com/blog/codeium-command-launch-announcement A new modality to generate code inline via instructions. https://windsurf.com/blog/codeium-command-launch-announcement product Mon, 13 Nov 2023 07:00:00 +0000 Changelist: October 2023 https://windsurf.com/blog/changelist-oct23 Codeium updates from October 2023! https://windsurf.com/blog/changelist-oct23 product changelist Thu, 09 Nov 2023 07:00:00 +0000 Codeium Chat in Visual Studio! https://windsurf.com/blog/visual-studio-codeium-chat-announcement General access to the Codeium Chat functionality in Visual Studio. https://windsurf.com/blog/visual-studio-codeium-chat-announcement product Tue, 07 Nov 2023 07:00:00 +0000 Codeium Brings VS Codium AI Powers https://windsurf.com/blog/codeium-vs-codium-ai Publishing Codeium on OpenVSX enables it for VS Codium. https://windsurf.com/blog/codeium-vs-codium-ai product Fri, 03 Nov 2023 07:00:00 +0000 Codeium Teams https://windsurf.com/blog/codeium-teams-launch A self-serve paid plan to supercharge teams and small enterprises with AI tooling. https://windsurf.com/blog/codeium-teams-launch product Wed, 01 Nov 2023 07:00:00 +0000 Codeium Chat in Eclipse! https://windsurf.com/blog/eclipse-codeium-chat-announcement General access to the Codeium Chat functionality in Eclipse. https://windsurf.com/blog/eclipse-codeium-chat-announcement product Mon, 30 Oct 2023 07:00:00 +0000 Changelist: August & September 2023 https://windsurf.com/blog/changelist-aug23-sep23 Codeium updates from August & September 2023! https://windsurf.com/blog/changelist-aug23-sep23 product changelist Sat, 07 Oct 2023 07:00:00 +0000 Why You Should Not Trust All the Numbers You See https://windsurf.com/blog/code-llm-eval-why-you-should-not-trust-all-the-numbers-you-see Our take on industry benchmarks and how to actually evaluate AI code LLMs and tools. https://windsurf.com/blog/code-llm-eval-why-you-should-not-trust-all-the-numbers-you-see product enterprise Tue, 03 Oct 2023 07:00:00 +0000 How We Think of AI Product Development https://windsurf.com/blog/how-we-think-of-ai-product-development Our approach to building AI products that developers trust and love. https://windsurf.com/blog/how-we-think-of-ai-product-development product enterprise Wed, 27 Sep 2023 07:00:00 +0000 Codeium is SOC2 Compliant https://windsurf.com/blog/codeium-is-soc2-compliant Announcing our SOC2 Type I Report. https://windsurf.com/blog/codeium-is-soc2-compliant product enterprise Thu, 24 Aug 2023 07:00:00 +0000 Codeium Chat in JetBrains! https://windsurf.com/blog/jetbrains-codeium-chat-announcement General access to the Codeium Chat functionality in all JetBrains IDEs. https://windsurf.com/blog/jetbrains-codeium-chat-announcement product Mon, 21 Aug 2023 07:00:00 +0000 What you Actually Get (and Don’t Get) with GitHub Copilot for Business https://windsurf.com/blog/what-you-actually-get-and-dont-get-with-github-copilot-for-business Clarifying the GitHub Copilot for Business offering. https://windsurf.com/blog/what-you-actually-get-and-dont-get-with-github-copilot-for-business industry enterprise Tue, 15 Aug 2023 07:00:00 +0000 Changelist: July 2023 https://windsurf.com/blog/changelist-jul23 Codeium updates from July 2023! https://windsurf.com/blog/changelist-jul23 product changelist Mon, 07 Aug 2023 07:00:00 +0000 Productionizing Context Aware Everything https://windsurf.com/blog/productionizing-context-aware-everything Why it is hard to create a context reasoning engine for code LLMs that consistently works. https://windsurf.com/blog/productionizing-context-aware-everything industry enterprise Thu, 03 Aug 2023 07:00:00 +0000 Codeium in Visual Studio, and Eclipse https://windsurf.com/blog/codeium-copilot-alternative-in-visual-studio-sublime-eclipse Launching Codeium in Visual Studio, and Eclipse. https://windsurf.com/blog/codeium-copilot-alternative-in-visual-studio-sublime-eclipse product Fri, 28 Jul 2023 07:00:00 +0000 Context Aware Everything: More Advanced Realtime Context than GitHub Copilot https://windsurf.com/blog/context-aware-everything-more-advanced-realtime-context-than-github-copilot A deep dive into context awareness of Codeium and how it stacks up against GitHub Copilot and CopilotX. https://windsurf.com/blog/context-aware-everything-more-advanced-realtime-context-than-github-copilot industry enterprise Mon, 24 Jul 2023 07:00:00 +0000 What to Know About the Context Going into your Code LLM https://windsurf.com/blog/what-to-know-about-the-context-going-into-your-llm Why real-time context for AI code assistants is a meaningful and tricky problem. https://windsurf.com/blog/what-to-know-about-the-context-going-into-your-llm industry enterprise Fri, 21 Jul 2023 07:00:00 +0000 GitLab Code Suggestions: Why You Should Not Build Your Own Generative AI Product for Code https://windsurf.com/blog/gitlab-ai-review An analysis on the capabilities and performance of the AI code assistant from GitLab. https://windsurf.com/blog/gitlab-ai-review industry enterprise Fri, 14 Jul 2023 07:00:00 +0000 How to Make AI UX Your Moat https://windsurf.com/blog/how-to-make-ai-ux-your-moat Design great AI Products that go beyond "just LLM Wrappers": make AI more present, more practical, and more powerful. https://windsurf.com/blog/how-to-make-ai-ux-your-moat industry Sun, 09 Jul 2023 07:00:00 +0000 Changelist: June 2023 https://windsurf.com/blog/changelist-jun23 Codeium updates from June 2023! https://windsurf.com/blog/changelist-jun23 product changelist Fri, 07 Jul 2023 07:00:00 +0000 What GitHub Copilot Lacks: Fine-tuning on Your Private Code https://windsurf.com/blog/what-github-copilot-lacks-finetuning-on-your-private-code Proof that Codeium fine-tuned on a repository significantly outperforms GitHub Copilot. https://windsurf.com/blog/what-github-copilot-lacks-finetuning-on-your-private-code product industry enterprise Mon, 03 Jul 2023 07:00:00 +0000 Code Suggestions You Don’t Get from Copilot: In-line FIM https://windsurf.com/blog/inline-fim-code-suggestions In-line Fill-in-the-Middle suggestions, valuable suggestions produced only by Codeium. https://windsurf.com/blog/inline-fim-code-suggestions industry enterprise Fri, 09 Jun 2023 07:00:00 +0000 Changelist: May 2023 https://windsurf.com/blog/changelist-may23 Codeium updates from May 2023! https://windsurf.com/blog/changelist-may23 product changelist Thu, 08 Jun 2023 07:00:00 +0000 Changelist: April 2023 https://windsurf.com/blog/changelist-apr23 Codeium updates from April 2023! https://windsurf.com/blog/changelist-apr23 product changelist Mon, 08 May 2023 07:00:00 +0000 Should your Company ban Generative AI? https://windsurf.com/blog/is-your-company-banning-gen-ai Generative AI poses risks for companies that do not have strict data governance https://windsurf.com/blog/is-your-company-banning-gen-ai industry enterprise Thu, 04 May 2023 07:00:00 +0000 Amazon CodeWhisperer is out of beta. We tried it. Spoiler: it isn’t good. https://windsurf.com/blog/amazon-codewhisperer-review An in-depth analysis on the capabilities and performance of Amazon CodeWhisperer post-general access release. https://windsurf.com/blog/amazon-codewhisperer-review industry enterprise Mon, 24 Apr 2023 07:00:00 +0000 GitHub Copilot Emits GPL. Codeium Does Not. https://windsurf.com/blog/copilot-trains-on-gpl-codeium-does-not 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. https://windsurf.com/blog/copilot-trains-on-gpl-codeium-does-not industry enterprise Thu, 20 Apr 2023 07:00:00 +0000 Changelist: March 2023 https://windsurf.com/blog/changelist-mar23 Codeium updates from March 2023! https://windsurf.com/blog/changelist-mar23 product changelist Mon, 03 Apr 2023 07:00:00 +0000 Why your AI Code Completion tool needs to Fill in the Middle https://windsurf.com/blog/why-code-completion-needs-fill-in-the-middle Analyzing how fill-in-the-middle allows Codeium to make better suggestions. https://windsurf.com/blog/why-code-completion-needs-fill-in-the-middle industry enterprise Fri, 31 Mar 2023 07:00:00 +0000 User Personalization, the Next Frontier in LLMs https://windsurf.com/blog/user-personalization-for-llms How tuning the model layer of LLM applications creates the highest quality experiences for enterprises. https://windsurf.com/blog/user-personalization-for-llms industry enterprise Fri, 31 Mar 2023 07:00:00 +0000 How is Codeium Free? https://windsurf.com/blog/how-is-codeium-free Diving into our monetization strategy, and why individuals can get Codeium for free. https://windsurf.com/blog/how-is-codeium-free company Fri, 24 Mar 2023 07:00:00 +0000 Codeium for Enterprises https://windsurf.com/blog/codeium-for-enterprises Codeium for Enterprises is the only AI acceleration offering to provide code security, fine-tuning, and state-of-the-art quality. https://windsurf.com/blog/codeium-for-enterprises product enterprise Fri, 17 Mar 2023 07:00:00 +0000 Using Code Syntax Parsing for Generative AI https://windsurf.com/blog/using-code-syntax-parsing-for-generative-ai The theory, challenges, and future of code syntax parsing. https://windsurf.com/blog/using-code-syntax-parsing-for-generative-ai industry Wed, 15 Mar 2023 07:00:00 +0000 Changelist: February 2023 https://windsurf.com/blog/changelist-feb23 Codeium updates from February 2023! https://windsurf.com/blog/changelist-feb23 product changelist Thu, 02 Mar 2023 07:00:00 +0000 Codeium in Databricks Notebooks https://windsurf.com/blog/codeium-copilot-alternative-in-databricks-notebooks Launching Codeium in Databricks Notebooks. https://windsurf.com/blog/codeium-copilot-alternative-in-databricks-notebooks product Wed, 01 Mar 2023 07:00:00 +0000 Codeium in Emacs https://windsurf.com/blog/codeium-copilot-alternative-in-emacs Launching Codeium in Emacs. https://windsurf.com/blog/codeium-copilot-alternative-in-emacs product Fri, 17 Feb 2023 07:00:00 +0000 Best AI Product Lists https://windsurf.com/blog/best-ai-product-lists An aggregation of the best AI product aggregators for discovery. https://windsurf.com/blog/best-ai-product-lists industry Thu, 16 Feb 2023 07:00:00 +0000 Codeium Chrome Extension https://windsurf.com/blog/codeium-chrome-extension-launch Injecting the power of Codeium directly into the browser. https://windsurf.com/blog/codeium-chrome-extension-launch product Tue, 14 Feb 2023 07:00:00 +0000 We compete with Github. Bing does not show our website. https://windsurf.com/blog/bing-does-not-index-codeium A genuine question on why we are not getting indexed by Bing. https://windsurf.com/blog/bing-does-not-index-codeium Fri, 10 Feb 2023 07:00:00 +0000 Changelist: January 2023 https://windsurf.com/blog/changelist-jan23 Codeium updates from January 2023! https://windsurf.com/blog/changelist-jan23 product changelist Wed, 01 Feb 2023 07:00:00 +0000 AI Code Assistants: Head to Head https://windsurf.com/blog/code-assistant-comparison-copilot-tabnine-ghostwriter-codeium The first head to head assessment of the leading AI powered code assistants: Github Copilot, Tabnine, Replit Ghostwriter, and Codeium. https://windsurf.com/blog/code-assistant-comparison-copilot-tabnine-ghostwriter-codeium industry Fri, 27 Jan 2023 07:00:00 +0000 User Analytics https://windsurf.com/blog/user-analytics-launch Introducing user-level Codeium usage analytics! https://windsurf.com/blog/user-analytics-launch product Thu, 26 Jan 2023 07:00:00 +0000 Codeium in Vim and Neovim https://windsurf.com/blog/codeium-copilot-alternative-in-vim Launching Codeium in Vim and Neovim. https://windsurf.com/blog/codeium-copilot-alternative-in-vim product Thu, 19 Jan 2023 07:00:00 +0000 Why ChatGPT Highlights Copilot's Fundamental Flaw https://windsurf.com/blog/chatgpt-and-copilots-fundamental-flaw How a user study and the rise of ChatGPT point to the underlying product issue of Github Copilot. https://windsurf.com/blog/chatgpt-and-copilots-fundamental-flaw industry Fri, 13 Jan 2023 07:00:00 +0000 Codeium in Jupyter Notebooks https://windsurf.com/blog/codeium-in-jupyter-notebooks Launching Codeium in Jupyter Notebooks. https://windsurf.com/blog/codeium-in-jupyter-notebooks product Sat, 07 Jan 2023 07:00:00 +0000 Changelist: December 2022 https://windsurf.com/blog/changelist-dec22 Codeium updates from December 2022! https://windsurf.com/blog/changelist-dec22 product changelist Tue, 03 Jan 2023 07:00:00 +0000 What "Copilot for X" Really Takes https://windsurf.com/blog/copilot-for-x-learnings A "Copilot for X" guide from the team that built the first real Copilot competitor! https://windsurf.com/blog/copilot-for-x-learnings industry Tue, 20 Dec 2022 07:00:00 +0000 Changelist: November 2022 https://windsurf.com/blog/changelist-nov22 Codeium updates from November 2022! https://windsurf.com/blog/changelist-nov22 product changelist Mon, 05 Dec 2022 07:00:00 +0000 Codeium Beta Launch https://windsurf.com/blog/beta-launch-announcement We are excited to announce the launch of the Codeium Beta. https://windsurf.com/blog/beta-launch-announcement company Fri, 28 Oct 2022 07:00:00 +0000 ================================================ FILE: feeds/feed_windsurf_changelog.xml ================================================ Windsurf Changelog https://windsurf.com/changelog Latest version updates from Windsurf http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:51:20 +0000 Windsurf 2.2.17 https://windsurf.com/changelog#2.2.17 <p><strong>Devin Review & Quick Review</strong></p><p>All Windsurf IDE users now have access toDevin ReviewandQuick Reviewwith your existing subscription.</p><ul><li>Devin Review is available for all self-serve users, with a 2 week free trial.</li><li>Enterprise users can only use Devin Review with a Cognition platform agreement.</li></ul><p><strong>Agent Command Center</strong></p><ul><li>Added list display option for the agent inbox</li><li>Improved sessions sidebar sorting and filtering</li><li>Performance improvements for loading and switching sessions</li></ul><p><strong>Windows updates</strong></p><p>We have fixed a bug preventing updates for some users on Windows. To upgrade to this version, you may need to:</p><ul><li>Wait for the update to download.</li><li>Once it is downloaded, open Windows Task Manager and close alldevin.exeprocesses</li><li>Proceed with installing the update and restarting Windsurf</li></ul><p><strong>Bug fixes and improvements</strong></p><ul><li>Fixed bugs with some MCP servers</li><li>Improved reliability of Devin Local agent</li></ul> https://windsurf.com/changelog#2.2.17#2.2.17 Changelog Wed, 06 May 2026 00:00:00 +0000 Windsurf 2.1.32 https://windsurf.com/changelog#2.1.32 <h3>Bug Fixes & Improvements</h3><p><strong>Bug Fixes</strong></p><ul><li>Fixed a crash that could occur when switching between Cascade conversations</li><li>Fixed an authentication issue that could prevent Devin Cloud sessions from starting</li><li>Fixed an issue where responses to agent questions were not sent correctly</li></ul> https://windsurf.com/changelog#2.1.32#2.1.32 Changelog Wed, 29 Apr 2026 00:00:00 +0000 Windsurf 2.1.29 https://windsurf.com/changelog#2.1.29 <h3>Devin for Terminal</h3><p>Devin is now availablefor Terminal. All Windsurf users can use this new CLI agent with your existing subscription.</p><ul><li>Runs on your machine— Optimized for interactive work, with full access to your codebase, tools, and environment.</li><li>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.</li><li>Multi-model— All of your favorite frontier models in one place, including Opus 4.7, GPT-5.5, and SWE-1.6.</li><li>Fast— Written in Rust and so performant that the binary can run on an original VT100.</li></ul><p><strong>Devin Agent in Windsurf</strong></p><p>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.</p><p>In our testing, it's up to 30% more token-efficient than the existing Cascade agent.</p><p><strong>Additional Changes</strong></p><ul><li>Improved search subtitle layout during streaming</li><li>Fixed file drag-and-drop in agent window Cascade tabs</li><li>Fixed Go to Line/Column keybinding on Windows/Linux (Ctrl+Shift+G)</li><li>Added support for server-driven extension deny lists</li><li>Stability and performance improvements</li></ul> https://windsurf.com/changelog#2.1.29#2.1.29 Changelog Tue, 28 Apr 2026 00:00:00 +0000 Windsurf 2.0.67 https://windsurf.com/changelog#2.0.67 <h3>Bug Fixes and Improvements</h3><ul><li>Fixed OAuth authentication issues for some MCP servers</li></ul> https://windsurf.com/changelog#2.0.67#2.0.67 Changelog Tue, 21 Apr 2026 00:00:00 +0000 Windsurf 2.0.63 https://windsurf.com/changelog#2.0.63 <h3>Bug Fixes and Improvements</h3><ul><li>Fixed a regression with OAuth integration for some MCP servers</li><li>Improved reliability of Devin Cloud connections in Windsurf</li></ul> https://windsurf.com/changelog#2.0.63#2.0.63 Changelog Mon, 20 Apr 2026 00:00:00 +0000 Windsurf 2.0.61 https://windsurf.com/changelog#2.0.61 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog#2.0.61#2.0.61 Changelog Fri, 17 Apr 2026 00:00:00 +0000 Windsurf 2.0.50 https://windsurf.com/changelog#2.0.50 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements for improving Windsurf 2.0 auth experience.</li><li>Fixed bug with spawning Terminal sessions on Windows</li></ul> https://windsurf.com/changelog#2.0.50#2.0.50 Changelog Thu, 16 Apr 2026 00:00:00 +0000 Windsurf 2.0.44 https://windsurf.com/changelog#2.0.44 <h3>Windsurf 2.0</h3><p>Read the full announcementhere.</p><p><strong>Devin in Windsurf</strong></p><ul><li>Devin cloud agent available directly inside Windsurf, included with every self-serve plan</li><li>Delegate tasks from a local session to Devin with one click; Devin runs on its own VM</li><li>Review Devin changes and test results without leaving the editor</li><li>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.</li></ul><p>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.</p><p>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.</p><p></p><p><strong>Agent Command Center</strong></p><ul><li>New Kanban-style view showing all local and cloud agent sessions, organized by status</li><li>Group agent sessions, PRs, files, and context into task-level Spaces</li><li>Switch between Spaces to switch between tasks</li></ul><p><strong>Additional Changes</strong></p><ul><li>Refined Windsurf Browser with toolbar integration and Cascade tool for reading page contents</li><li>Sped up initial load times for the Cascade sidebar</li><li>Improved .gitignore and .codeiumignore handling across the product</li><li>Stability improvements for remote extensions (WSL, SSH, Dev Containers)</li><li>Performance improvements for typing in large active diff zones</li></ul> https://windsurf.com/changelog#2.0.44#2.0.44 Changelog Wed, 15 Apr 2026 00:00:00 +0000 Windsurf 1.9600.41 https://windsurf.com/changelog#1.9600.41 <p><strong>Adaptive Fix</strong></p><p>We fixed a bug with the adaptive model router which prevented switching models after the first request.</p><p>All users who encountered the bug have had quota reset and overage restored.</p> https://windsurf.com/changelog#1.9600.41#1.9600.41 Changelog Tue, 07 Apr 2026 00:00:00 +0000 Windsurf 1.9600.40 https://windsurf.com/changelog#1.9600.40 <p><strong>Adaptive Model Visibility</strong></p><p>We've improved the visibility of the adaptive model in the model picker.</p><p></p> https://windsurf.com/changelog#1.9600.40#1.9600.40 Changelog Mon, 06 Apr 2026 00:00:00 +0000 Windsurf 1.9600.38 https://windsurf.com/changelog#1.9600.38 <h3>Introducing Adaptive</h3><p>We've made several model packaging changes, with more infohere.</p><p><strong>Adaptive Model Router</strong></p><p>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.</p><ul><li>Availability: Now available to all self-serve users on Pro, Max, and Teams plans.</li><li>Dynamic model selection- Automatically chooses the right underlying model for your task while drawing down quota at a fixed per-token rate.</li><li>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.</li></ul><p><strong>Updated Model Picker with Pricing Context</strong></p><p>The model picker now shows token pricing information directly, so you can see the exact rate extra usage is billed at.</p><ul><li>Token pricing display- Per-model input, output, and cache read token rates visible in the picker.</li><li>Prompt cache timer- A new prompt cache timer is integrated into the context window indicator to help you track caching status.</li><li>Token counts in response cards- Response cards after messages now include token counts so you can understand exactly how each message cost was calculated.</li></ul> https://windsurf.com/changelog#1.9600.38#1.9600.38 Changelog Mon, 06 Apr 2026 00:00:00 +0000 Windsurf 1.9577.43 https://windsurf.com/changelog#1.9577.43 <h3>Quota Billing</h3><ul><li>Added support for the new quota billing system</li><li>Daily and Weekly quota usage is now displayed directly in the IDE</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Fix build for Mac x64</li></ul> https://windsurf.com/changelog#1.9577.43#1.9577.43 Changelog Thu, 19 Mar 2026 00:00:00 +0000 Windsurf 1.9577.42 https://windsurf.com/changelog#1.9577.42 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog#1.9577.42#1.9577.42 Changelog Thu, 19 Mar 2026 00:00:00 +0000 Windsurf 1.9577.27 https://windsurf.com/changelog#1.9577.27 <h3>Bug Fixes and Improvements</h3><ul><li>Fix for Apple M5</li></ul> https://windsurf.com/changelog#1.9577.27#1.9577.27 Changelog Thu, 12 Mar 2026 00:00:00 +0000 Windsurf 1.9577.24 https://windsurf.com/changelog#1.9577.24 <p><strong>Cascade</strong></p><ul><li>Fix dangling Diff Zones related to Jupyter Notebooks</li><li>Improve Jupyter Notebook performance when running on WSL</li><li>Improve Cascade UI rendering performance</li><li>Fix Cascade agent panel crashes under certain conditions</li><li>Improve notifications for model price changes</li><li>Add support for loading SKILL.md files from the.windsurf/skills/directory</li><li>FixAGENTS.mdbeing ignored by Cascade in specific cases</li></ul><p><strong>MCP</strong></p><ul><li>Add support forsystem-level Skill definitionsvia MDM-managed configs for Enterprise</li><li>Improve context management for MCP servers</li></ul><p><strong>Stability & Performance</strong></p><ul><li>Improve autocomplete error handling and performance</li><li>Improve SSH & Remote performance</li></ul> https://windsurf.com/changelog#1.9577.24#1.9577.24 Changelog Mon, 09 Mar 2026 00:00:00 +0000 Windsurf 1.9566.11 https://windsurf.com/changelog#1.9566.11 <h3>Bug Fixes and Improvements</h3><ul><li>Fix extension installation version selection</li></ul> https://windsurf.com/changelog#1.9566.11#1.9566.11 Changelog Thu, 26 Feb 2026 00:00:00 +0000 Windsurf 1.9566.9 https://windsurf.com/changelog#1.9566.9 <p><strong>New Model Picker</strong></p><p>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.</p><p><strong>Cascade Improvements</strong></p><ul><li>AddedPOST_CASCADE_RESPONSE_WITH_TRANSCRIPTcascade hook</li><li>Added Cascade hooks configuration visibility on team settings page</li><li>Reduced the priority of Git commits in @ mention search</li><li>Added awindsurf.cascade.readClaudeCodeConfigflag to disable reading Claude configuration</li></ul><p><strong>MCP Improvements</strong></p><ul><li>Added an MCP Refresh button</li><li>Auto-trigger OAuth login when adding HTTP/SSE MCP servers</li><li>Fix bugs with parsing on Windows and startup</li></ul><p><strong>Platform Improvements</strong></p><ul><li>Merged changes from VS Code 1.108</li><li>Improved startup reliability for Cascade</li><li>Fixed Windows update initialization path that could block updates</li><li>Released binaries for Linux ARM64</li></ul> https://windsurf.com/changelog#1.9566.9#1.9566.9 Changelog Wed, 25 Feb 2026 00:00:00 +0000 Windsurf 1.9552.25 https://windsurf.com/changelog#1.9552.25 <h3>Bug Fixes and Improvements</h3><ul><li>Fix compatibility with GitHub Pull Requests extension</li></ul> https://windsurf.com/changelog#1.9552.25#1.9552.25 Changelog Sat, 21 Feb 2026 00:00:00 +0000 Windsurf 1.9552.24 https://windsurf.com/changelog#1.9552.24 <h3>Bug Fixes and Improvements</h3><ul><li>Fix for self-updating on Windows</li><li>Fix for macOS UI flickering</li></ul> https://windsurf.com/changelog#1.9552.24#1.9552.24 Changelog Tue, 17 Feb 2026 00:00:00 +0000 Windsurf 1.9552.21 https://windsurf.com/changelog#1.9552.21 <h3>Cascade Improvements</h3><ul><li>Plan Mode now supports automatic switching back to Code Mode when you start implementing a plan</li><li>Added support for reading skills from the.agents/skillsdirectory</li><li>Tracking triggered rules in thepost_cascade_responsehook via a newrules_appliedfield</li><li>Diff zones will now automatically close on commit</li></ul><h3>Linux ARM64 Support</h3><ul><li>Full Linux ARM64 client support with deb and rpm packaging</li></ul><h3>Enterprise & Team Improvements</h3><ul><li>Cloud configuration for Cascade Hooks is now available for enterprise teams via the cloud dashboard</li><li>Support for Devin service key authentication</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Fixes forpost_write_codehooks to handle all code editing tool formats</li><li>Fixes and improvements for MCP server resource loading</li><li>Fixed osascript privilege escalation being incorrectly triggered on Linux for shell command installation</li><li>Addressed multiple memory leaks</li><li>Improved RTL language rendering in todo lists</li></ul> https://windsurf.com/changelog#1.9552.21#1.9552.21 Changelog Thu, 12 Feb 2026 00:00:00 +0000 Windsurf 1.9544.35 https://windsurf.com/changelog#1.9544.35 <h3>New Models</h3><ul><li>GPT-5.3-Codex-Spark is now available in Arena Mode's Fast Arena and Hybrid Arena battle groups</li></ul><h3>Claude Opus 4.6 (fast mode)</h3><p>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:</p><ul><li>No thinking:10x credits</li><li>With thinking:12x credits</li></ul><p>Opus 4.6 (fast mode) has the same intelligence as Opus 4.6 but with up to 2.5x higher output speeds.</p><h3>Claude Opus 4.6</h3><p>Claude Opus 4.6 is now available in Windsurf with limited-time promotional pricing for self serve users:</p><ul><li>No thinking:2x credits</li><li>With thinking:3x credits</li></ul><p>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.</p> https://windsurf.com/changelog#1.9544.35#1.9544.35 Changelog Wed, 04 Feb 2026 00:00:00 +0000 Windsurf 1.9544.28 https://windsurf.com/changelog#1.9544.28 <h3>Bug Fixes and Improvements</h3><ul><li>Fix issues with Arena Mode Battle Groups</li></ul> https://windsurf.com/changelog#1.9544.28#1.9544.28 Changelog Tue, 03 Feb 2026 00:00:00 +0000 Windsurf 1.9544.26 https://windsurf.com/changelog#1.9544.26 <h3>Bug Fixes and Improvements</h3><ul><li>Improve UI styling for announcement popups and notifications</li><li>Close model picker when selecting a battle group</li></ul> https://windsurf.com/changelog#1.9544.26#1.9544.26 Changelog Fri, 30 Jan 2026 00:00:00 +0000 Windsurf 1.9544.24 https://windsurf.com/changelog#1.9544.24 <h3>Wave 14: Arena Mode</h3><p>Arena Mode brings side-by-side model comparison directly into your IDE, plus Plan Mode for smarter task planning.</p><p><strong>Arena Mode</strong></p><p>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.</p><ul><li>Battle Groups: Choose specific models to compare or let Windsurf randomly select from curated groups like "fast models" vs "smart models"</li><li>Personal & Global Leaderboards: Your votes contribute to both a personal leaderboard (your preferences) and a global one (across all Windsurf users)</li><li>Sync or Branch: Send followup prompts to both agents simultaneously, or branch and explore different paths individually</li></ul><p>To get started, select the newArenatab in the model picker. All battle groups are free for the first week for paid users.</p><p><strong>Plan Mode</strong></p><p>Plan Mode is a new Cascade mode alongside Code and Ask. Use it to create detailed implementation plans before diving into code.</p><p>Pro tip: Typemegaplanin the Cascade input box to trigger an advanced form that asks clarifying questions to create a more aligned, comprehensive plan.</p><h3>Bug Fixes and Improvements</h3><ul><li>Admins can now set a default model that applies to all team members when they first open Windsurf</li><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog#1.9544.24#1.9544.24 Changelog Fri, 30 Jan 2026 00:00:00 +0000 Windsurf 1.13.14 https://windsurf.com/changelog#1.13.14 <h3>Bug Fixes and Improvements</h3><ul><li>Fix bug with permanently disconnected cascades</li></ul> https://windsurf.com/changelog#1.13.14#1.13.14 Changelog Tue, 27 Jan 2026 00:00:00 +0000 Windsurf 1.13.13 https://windsurf.com/changelog#1.13.13 <h3>Bug Fixes</h3><ul><li>Fixes commit message generation and codemaps suggestions</li></ul> https://windsurf.com/changelog#1.13.13#1.13.13 Changelog Mon, 26 Jan 2026 00:00:00 +0000 Windsurf 1.13.12 https://windsurf.com/changelog#1.13.12 <h3>Enterprise Features</h3><ul><li>Enterprise admins can now specify organization-wide allow and deny lists for command auto-execution.Learn more</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Bug fixes and performance improvements for diff zones</li><li>Improved overall stability and reliability</li><li>Addedpost_setup_worktreehook for initializing worktrees in Cascade</li></ul> https://windsurf.com/changelog#1.13.12#1.13.12 Changelog Sun, 25 Jan 2026 00:00:00 +0000 Windsurf 1.13.9 https://windsurf.com/changelog#1.13.9 <h3>Bug Fixes and Improvements</h3><ul><li>Improvements to GPT-5.2-Codex harness</li><li>Admins can now manage Windsurf restrictions via Windows Group Policy</li></ul> https://windsurf.com/changelog#1.13.9#1.13.9 Changelog Fri, 16 Jan 2026 00:00:00 +0000 Windsurf 1.13.8 https://windsurf.com/changelog#1.13.8 <h3>GPT-5.2-Codex</h3><p>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.</p><h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li><li>Improved stability and reliability</li></ul> https://windsurf.com/changelog#1.13.8#1.13.8 Changelog Wed, 14 Jan 2026 00:00:00 +0000 Windsurf 1.13.6 https://windsurf.com/changelog#1.13.6 <h3>New Features and Improvements</h3><ul><li>Windsurf now supportsAgent Skillsfor Cascade.</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li><li>Improved stability and reliability</li></ul> https://windsurf.com/changelog#1.13.6#1.13.6 Changelog Mon, 12 Jan 2026 00:00:00 +0000 Windsurf 1.13.5 https://windsurf.com/changelog#1.13.5 <h3>Gemini 3 Flash</h3><p>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.</p><ul><li>Blazing Fast Responses: Experience near-instant feedback with 3x faster performance than previous generations, perfect for iterative development compared to Gemini 3 Pro</li><li>Superior Coding Intelligence: Outperforms even Pro-tier models on key coding benchmarks (78% on SWE-bench Verified), providing more accurate code generation and debugging</li><li>Deep Multimodal Understanding: Easily process complex video, data extraction, and visual Q&A tasks with frontier-level reasoning</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li><li>Tab fixes and improvements</li></ul> https://windsurf.com/changelog#1.13.5#1.13.5 Changelog Sat, 27 Dec 2025 00:00:00 +0000 Windsurf 1.13.3 https://windsurf.com/changelog#1.13.3 <h3>Wave 13: Merry Shipmas</h3><p>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.</p><p><strong>SWE-1.5 Free</strong></p><p>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.</p><p><strong>Git Worktree Support</strong></p><p>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.</p><p><strong>Multi-Cascade Panes & Tabs</strong></p><p>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.</p><p><strong>Cascade Dedicated Terminal (Beta)</strong></p><p>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).</p><p>In this version, the Cascade Dedicated Te... https://windsurf.com/changelog#1.13.3#1.13.3 Changelog Wed, 24 Dec 2025 00:00:00 +0000 Windsurf 1.12.47 https://windsurf.com/changelog#1.12.47 <h3>Features</h3><p>Added a new "Promo" label to LLM models that are newly available or have special discount pricing</p><h3>Bug fixes and improvements</h3><p><strong>Agents & Tool Execution</strong></p><ul><li>Fixed Command-I functionality</li><li>Fixed Ctrl+C during tool execution not working properly</li><li>Fixed Go (fallback) processes not being killed properly</li><li>Fixed handling of parallel tool call errors</li><li>Improved MCP tool call visibility (show tool name, args, etc)</li><li>Fixed fallback diff handling for nonexistent files in code actions</li></ul><p><strong>UI & Rendering</strong></p><ul><li>Fixed incorrect indentation from code blocks in terminal rendering</li><li>Fixed nested lists not rendering on new line in terminal markdown</li><li>Fixed content spacing issues</li><li>Fixed streaming flashes</li><li>Enhanced code block file path display to hide line numbers for whole files</li><li>Improved citation and language parsing in code blocks with a more robust regex pattern</li><li>Updated the UI for code block title bars to properly handle long paths with truncation</li><li>Improved the auto-run command menu interface and its display logic</li><li>Added loading indicators when thinking or during long running operations</li><li>Fix opening old Cascade diffs</li></ul><p><strong>Platform & Messaging</strong></p><ul><li>Fixed rate limit error message to say "no credits were used" instead of "credits have been refunded"</li><li>Fixed continuously rechecking for updates on macOS</li><li>Added a user-facing message when API providers are exhausted</li></ul><p><strong>Workspace & Onboarding</strong></p><ul><li>Allowed clicking items in the Windsurf onboarding pane</li><li>Respect gitignore patterns in the workspace directory tree</li></ul> https://windsurf.com/changelog#1.12.47#1.12.47 Changelog Fri, 12 Dec 2025 00:00:00 +0000 Windsurf 1.12.44 https://windsurf.com/changelog#1.12.44 <h3>Patch Fixes and Improvements</h3><ul><li>Reduce occurrence of "prompt is too long" errors</li><li>Request all supported scopes if no scopes are provided in MCP OAuth config</li></ul> https://windsurf.com/changelog#1.12.44#1.12.44 Changelog Fri, 12 Dec 2025 00:00:00 +0000 Windsurf 1.12.43 https://windsurf.com/changelog#1.12.43 <h3>GPT-5.2</h3><p>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.</p><p>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</p><p>Download thelatest version on Windsurfto try it out!</p><h3>Bug fixes and improvements</h3><ul><li>General Windsurf stability and performance improvements</li><li>General Tab (Supercomplete) improvements and stability</li><li>Fixes issues with Cascade running commands that could not be cancelled during certain long-running processes</li></ul> https://windsurf.com/changelog#1.12.43#1.12.43 Changelog Thu, 11 Dec 2025 00:00:00 +0000 Windsurf 1.12.41 https://windsurf.com/changelog#1.12.41 <h3>Features & Tools</h3><p><strong>Cascade Hooks on User Prompts</strong></p><p>Users can now configure Cascade Hooks on user prompts for logging all user prompts and blocking policy-violating prompts.</p><p><strong>MCP Servers</strong></p><ul><li>Added support for GitLab remote MCP.</li><li>Added OAuth support for GitHub remote MCP.</li><li>Fixed an issue where every MCP would reauth on opening Windsurf.</li><li>Added support forMCP prompts</li><li>Added toggles to enable/disable MCPs in the Cascade header</li></ul><h3>Diff Zones</h3><ul><li>Fixes issues with diff zones not rendering correctly or jumping to the end of a file when editing</li></ul><h3>Tab (Supercomplete)</h3><ul><li>Improves reliability of Tab autocomplete</li><li>Makes Tab more responsive and faster in the appropiate circumstances</li></ul><h3>Bug fixes and improvements</h3><ul><li>General stability and performance improvements</li><li>Fixes issues with login timing out too quickly during onboarding</li></ul> https://windsurf.com/changelog#1.12.41#1.12.41 Changelog Wed, 10 Dec 2025 00:00:00 +0000 Windsurf 1.12.39 https://windsurf.com/changelog#1.12.39 <h3>GPT-5.1-Codex Max</h3><p>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.</p> https://windsurf.com/changelog#1.12.39#1.12.39 Changelog Thu, 04 Dec 2025 00:00:00 +0000 Windsurf 1.12.37 https://windsurf.com/changelog#1.12.37 <h3>Patch Fixes and Improvements</h3><ul><li>General bug fixes and improvements.</li></ul> https://windsurf.com/changelog#1.12.37#1.12.37 Changelog Tue, 02 Dec 2025 00:00:00 +0000 Windsurf 1.12.36 https://windsurf.com/changelog#1.12.36 <h3>Claude Opus 4.5</h3><p>You can now use Claude Opus 4.5 in Windsurf!</p><p>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).</p><p>This model is available to all paid Windsurf subscribers.</p> https://windsurf.com/changelog#1.12.36#1.12.36 Changelog Tue, 25 Nov 2025 00:00:00 +0000 Windsurf 1.12.35 https://windsurf.com/changelog#1.12.35 <h3>AI Models</h3><p><strong>Gemini 3 Pro</strong></p><ul><li>Resolved an issue where Gemini 3 Pro caused internal Cascade errors for some users.</li></ul><p><strong>SWE-1.5</strong></p><ul><li>Fixed notebook tool functionality for SWE-1.5.</li><li>Addressed an issue where SWE-1.5 would unexpectedly stop or return "No response requested".</li></ul><p><strong>Sonnet 4.5</strong></p><ul><li>Added support for Sonnet 4.5 with a 1M token context window.</li><li>Reduced the frequency of unnecessary Markdown file creation by Sonnet 4.5.</li></ul><p><strong>GPT-5.1 Codex and Codex Mini</strong></p><ul><li>Added support for GPT-5.1 Codex and Codex Mini with low reasoning effort configuration.</li></ul><h3>Features & Tools</h3><p><strong>Codemaps</strong></p><ul><li>Improved reliability of saving and retrieving Codemaps.</li><li>Fixed Codemap sorting and increased the limit of visible open Codemaps.</li><li>Resolved issues with mentioning Codemaps in Cascade.</li></ul><p><strong>MCP Servers</strong></p><ul><li>Fixed scope handling and OAuth authentication flows for various MCP servers.</li><li>Resolved issues preventing installation of new MCP servers.</li><li>Added support for handling embedded resource content in tool call responses.</li></ul><p><strong>Tab Completion</strong></p><ul><li>Improved latency, responsiveness, and accuracy of autocomplete.</li></ul><p>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.</p><p><strong>Vibe and Replace</strong></p><ul><li>Fixed reliability issues with Vibe and Replace.</li></ul><p><strong>Fast Context</strong></p><ul><li>Added support for.codeiumignoreand.gitignorefor Fast Context.</li></ul><h3>General Improvements</h3><ul><li>Fixed various UI alignment issues with icons and styles.</li><li>General performance and stability improvements.</li><li>Fixed issues with the file search tool.</li></ul> https://windsurf.com/changelog#1.12.35#1.12.35 Changelog Fri, 21 Nov 2025 00:00:00 +0000 Windsurf 1.12.33 https://windsurf.com/changelog#1.12.33 <h3>Gemini 3 Pro Preview</h3><ul><li>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.</li></ul> https://windsurf.com/changelog#1.12.33#1.12.33 Changelog Tue, 18 Nov 2025 00:00:00 +0000 Windsurf 1.12.32 https://windsurf.com/changelog#1.12.32 <h3>GPT-5.1 Priority Mode</h3><ul><li>Added priority processing support for GPT-5.1 models, providing guaranteed low-latency responses for faster (~50 tokens/sec), more reliable AI assistance.</li><li>Priority processing costs 2x the standard rate, which will be reflected in the Windsurf credit system.</li></ul><h3>Patch Fixes and Improvements</h3><ul><li>Fixed tool call calling issues for GPT-5.1-Codex and GPT-5.1-Codex Mini models</li></ul> https://windsurf.com/changelog#1.12.32#1.12.32 Changelog Fri, 14 Nov 2025 00:00:00 +0000 Windsurf 1.12.31 https://windsurf.com/changelog#1.12.31 <h3>GPT-5.1 and GPT-5.1-Codex</h3><p>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.</p><p>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.</p><h3>Patch Fixes and Improvements</h3><p><strong>MCP Improvements</strong></p><ul><li>Loading state indicators: Show loading state per installed MCP to improve visibility during initialization.</li><li>Refresh only edited MCPs: Whenmcp_config.jsonis modified, only the affected MCP server instance is initialized/refreshed; no other instances are refreshed.</li><li>Increased initialization timeout: MCP initialization timeout increased to 60s.</li><li>Refresh button for error states: Show refresh button for MCPs in error state to allow manual recovery.</li></ul><p><strong>Cascade Hooks</strong></p><ul><li>Cascade Hooks feature: New Cascade Hooks feature available to all tiers.</li><li>Documentation: SeeCascade Hooks docsfor available hooks and usage examples.</li></ul><p><strong>SWE 1.5 Image Support</strong></p><ul><li>Image understanding: SWE 1.5 now supports image understanding, enabling visual content analysis.</li></ul><p><strong>Removed Features</strong></p><ul><li>Knowledge Base: Removed the Knowledge Base feature.</li></ul><p><strong>Bug Fixes</strong></p><ul><li>Vim extension typing lag: Fixed bug causing typing lag when Vim extension is enabled.</li><li>PowerShell + Turbo Mode: Fixed an issue where PowerShell was not running commands when Turbo Mode is enabled.</li></ul><p><strong>Shortcuts</strong></p><ul><li>Attach current file to Cascade: New shortcutOption/Alt+Cmd+Lwhen in an editor to... https://windsurf.com/changelog#1.12.31#1.12.31 Changelog Thu, 13 Nov 2025 00:00:00 +0000 Windsurf 1.12.28 https://windsurf.com/changelog#1.12.28 <h3>Features</h3><p><strong>Expanded Codemaps</strong></p><p>Codemaps now include powerful new capabilities:</p><ul><li>Chat with map- Interact directly with your codebase visualizations</li><li>Mermaid diagrams- Generate visual diagrams within maps for better code understanding</li><li>Cascade suggestions- Get AI-powered suggestions directly in your maps</li><li>Map option in chat/edit nudges- Easily create maps from chat and edit interactions</li><li>Smart mode option- Enhanced intelligent assistance when working with maps</li></ul><p><strong>Cascade Summarization Fix</strong></p><p>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.</p><p><strong>MCP Enhancements</strong></p><ul><li>Path component handling- Improved support for MCP URLs with path components (e.g., Smithery MCPs)</li><li>OAuth flow improvements- Better OAuth flow for streamable HTTP MCPs</li></ul><h3>Bug fixes and improvements</h3><p><strong>Performance Improvements</strong></p><ul><li>Sticky scroll lag fixes- Resolved lag spikes when using sticky scroll with Vim bindings</li><li>General slowness fixes- Addressed performance issues caused by VSCode OSS update</li><li>Terminal rendering optimization- Fixed rendering loop that caused 500ms+ delays on first terminal open</li></ul><p><strong>Terminal Fixes</strong></p><ul><li>PowerShell improvements- Fixed Windows terminal integration edge cases where commands would appear stuck</li><li>Shell theme compatibility- Resolved edge cases with custom shell themes (zsh, fish, powerlevel10k, etc.) that could cause Windsurf to break or show stuck commands</li></ul><p><strong>Editor Stability</strong></p><ul><li>Terminal freeze fix- Fixed an issue where the editor would freeze when opening the terminal</li><li>CMD+J fix- Resolved layout thrashing issue when opening terminal... https://windsurf.com/changelog#1.12.28#1.12.28 Changelog Mon, 03 Nov 2025 00:00:00 +0000 Windsurf 1.12.27 https://windsurf.com/changelog#1.12.27 <h3>Falcon Alpha</h3><p>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!</p><h3>Patch Fixes and Improvements</h3><ul><li>Various performance improvements and bug fixes.</li></ul> https://windsurf.com/changelog#1.12.27#1.12.27 Changelog Sun, 26 Oct 2025 00:00:00 +0000 Windsurf 1.12.25 https://windsurf.com/changelog#1.12.25 <h3>Patch Fixes and Improvements</h3><ul><li>Support and fixes for AGENTS.md</li><li>Improvements and bug fixes for Codemaps.</li><li>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.</li><li>New auto-linting behavior that speeds up Cascade.</li><li>Fix for MCP Marketplace not respecting team whitelist options.</li><li>Fixes for Jupyter Notebook tool.</li><li>Fixes for Memories, Rules, and Workflows.</li><li>General bug fixes and improvements.</li><li>Performance optimizations and stability enhancements.</li></ul><h3>Dependencies</h3><ul><li>Updated Code OSS to version 1.105.0 (Electron: 37.6.0, Chromium: 138.0.7204.251)</li></ul> https://windsurf.com/changelog#1.12.25#1.12.25 Changelog Wed, 22 Oct 2025 00:00:00 +0000 Windsurf 1.12.21 https://windsurf.com/changelog#1.12.21 <h3>Patch Fixes</h3><ul><li>Resolved issues affecting SSH remote connections with high resource usage.</li><li>Fix certain models seeing increased error rates on editing files.</li><li>Improved diagnostics for third party extensions.</li></ul> https://windsurf.com/changelog#1.12.21#1.12.21 Changelog Fri, 17 Oct 2025 00:00:00 +0000 Windsurf 1.12.20 https://windsurf.com/changelog#1.12.20 <h3>New Features</h3><ul><li>Fast Context: Introduced Fast Context subagent powered by SWE-grep, enabling agents to find relevant code context up to 20x faster with >2,800 tokens per second throughput.</li></ul><p>Learn more on ourblog.</p><h3>Bug Fixes</h3><ul><li>Fixed issues with WSL compatibility.</li><li>Fixed bugs in Workflows and Rules UI.</li><li>Various stability improvements and minor bug fixes.</li></ul> https://windsurf.com/changelog#1.12.20#1.12.20 Changelog Thu, 16 Oct 2025 00:00:00 +0000 Windsurf 1.12.18 https://windsurf.com/changelog#1.12.18 <h3>Patch Fixes</h3><ul><li>Fixes issue with custom MCP servers not being displayed correctly in the new MCP panel.</li><li>Improvements and bug fixes for the beta Codemaps feature.</li><li>Fixes issue where some bash commands would get stuck.</li><li>Fixes issue where certain models couldn't create or edit Jupyter notebooks.</li><li>General bug fixes and improvements.</li></ul> https://windsurf.com/changelog#1.12.18#1.12.18 Changelog Tue, 14 Oct 2025 00:00:00 +0000 Windsurf 1.12.16 https://windsurf.com/changelog#1.12.16 <h3>Codemaps</h3><ul><li>Codemaps is a beta feature for codebase understanding and navigation. Open the codemaps pane to try it out!</li></ul><h3>Patch Fixes</h3><ul><li>Fixes to Cascade to reduce internal errors.</li><li>Fixes to Cascade not seeing terminal output.</li><li>Various other bug fixes and stability improvements.</li></ul> https://windsurf.com/changelog#1.12.16#1.12.16 Changelog Fri, 10 Oct 2025 00:00:00 +0000 Windsurf 1.12.12 https://windsurf.com/changelog#1.12.12 <h3>Claude Sonnet 4.5</h3><ul><li>Claude Sonnet 4.5 is now available</li></ul> https://windsurf.com/changelog#1.12.12#1.12.12 Changelog Mon, 29 Sep 2025 00:00:00 +0000 Windsurf 1.12.11 https://windsurf.com/changelog#1.12.11 <h3>Patch Fixes</h3><ul><li>Fix using MCP tools with certain models.</li><li>Fixes to terminal issues on Windows.</li></ul> https://windsurf.com/changelog#1.12.11#1.12.11 Changelog Fri, 26 Sep 2025 00:00:00 +0000 Windsurf 1.12.9 https://windsurf.com/changelog#1.12.9 <h3>Patch Fixes</h3><ul><li>Fix to Cascade slowness issues</li></ul> https://windsurf.com/changelog#1.12.9#1.12.9 Changelog Wed, 24 Sep 2025 00:00:00 +0000 Windsurf 1.12.8 https://windsurf.com/changelog#1.12.8 <h3>GPT-5-Codex is now in Windsurf!</h3><p>GPT-5-Codex is now available for free (0x credits) for a limited time for paid users!</p><p>Free users can use GPT-5-Codex as well for 0.5x credits.</p> https://windsurf.com/changelog#1.12.8#1.12.8 Changelog Tue, 23 Sep 2025 00:00:00 +0000 Windsurf 1.12.6 https://windsurf.com/changelog#1.12.6 <h3>Cascade Improvements</h3><p><strong>Queued messages</strong></p><ul><li>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.</li></ul><p><strong>Mermaid diagram support</strong></p><ul><li>Cascade now renders mermaid diagrams in the conversation.</li></ul><h3>Deprecation</h3><ul><li>Windsurf Browser is now deprecated. We plan to refactor and release a replacement feature in the coming months. Please usePreviewsinstead.</li></ul><h3>Patch Fixes</h3><ul><li>Made improvements to the sign up onboarding flow.</li><li>Various bug fixes and stability improvements.</li></ul> https://windsurf.com/changelog#1.12.6#1.12.6 Changelog Tue, 16 Sep 2025 00:00:00 +0000 Windsurf 1.12.5 https://windsurf.com/changelog#1.12.5 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog#1.12.5#1.12.5 Changelog Tue, 09 Sep 2025 00:00:00 +0000 Windsurf 1.12.4 https://windsurf.com/changelog#1.12.4 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog#1.12.4#1.12.4 Changelog Wed, 03 Sep 2025 00:00:00 +0000 Windsurf 1.12.3 https://windsurf.com/changelog#1.12.3 <h3>Deprecation Notice</h3><p>The Windsurf Browser will be deprecated on Sept 11. We plan to refactor and release a replacement feature in the coming months. Please usePreviewsinstead.</p> https://windsurf.com/changelog#1.12.3#1.12.3 Changelog Wed, 03 Sep 2025 00:00:00 +0000 Windsurf 1.12.3 https://windsurf.com/changelog#1.12.3 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li><li>Memory improvements</li></ul> https://windsurf.com/changelog#1.12.3#1.12.3 Changelog Fri, 29 Aug 2025 00:00:00 +0000 Windsurf 1.12.2 https://windsurf.com/changelog#1.12.2 <h3>Grok Code Fast is now in Windsurf!</h3><p>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.</p> https://windsurf.com/changelog#1.12.2#1.12.2 Changelog Mon, 25 Aug 2025 00:00:00 +0000 Windsurf 1.12.2 https://windsurf.com/changelog#1.12.2 <h3>GPT-5 Pricing Changes</h3><p>Starting on Tuesday, August 26, our GPT-5 promotion will end for all users. The new pricing will be:</p><ul><li>GPT 5 High: 2x Credits</li><li>GPT 5 Med: 1x Credits</li><li>GPT 5 Low: 0.5x Credits</li></ul> https://windsurf.com/changelog#1.12.2#1.12.2 Changelog Fri, 22 Aug 2025 00:00:00 +0000 Windsurf 1.12.2 https://windsurf.com/changelog#1.12.2 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog#1.12.2#1.12.2 Changelog Fri, 15 Aug 2025 00:00:00 +0000 Windsurf 1.12.1 https://windsurf.com/changelog#1.12.1 <h3>Devin features in Windsurf, stability improvements, and a brand new UI</h3><ul><li>Stability & Performance: Over 100 bug fixes and reliability improvements.</li><li>DeepWiki in Windsurf: Hover over code symbols for intelligent DeepWiki-powered documentation.</li><li>Vibe and Replace: AI-powered find and replace functionality. Apply intelligent transformations to multiple code matches.</li><li>Cascade Agent Improvements: Automatic planning mode with no manual toggles required. Revamped tools with more accurate edits. Enhanced code exploration leveraging long context models.</li><li>Tab Autocomplete: New system with more frequent and smarter suggestions.</li><li>UI Redesign: All-new Chat, Cascade, and home screen panels.</li><li>Dev Containers: Support for development containers via remote SSH access.</li></ul> https://windsurf.com/changelog#1.12.1#1.12.1 Changelog Thu, 14 Aug 2025 00:00:00 +0000 Windsurf 1.11.5 https://windsurf.com/changelog#1.11.5 <h3>GPT-5 Available</h3><p>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!</p><h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog#1.11.5#1.11.5 Changelog Thu, 07 Aug 2025 00:00:00 +0000 Windsurf 1.11.3 https://windsurf.com/changelog#1.11.3 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog#1.11.3#1.11.3 Changelog Mon, 04 Aug 2025 00:00:00 +0000 Windsurf 1.11.2 https://windsurf.com/changelog#1.11.2 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog#1.11.2#1.11.2 Changelog Wed, 30 Jul 2025 00:00:00 +0000 Windsurf 1.11.1 https://windsurf.com/changelog#1.11.1 <h3>Kimi K2 Available</h3><p>Windsurf now supports Kimi K2 model which costs 0.5 credits per prompt.</p> https://windsurf.com/changelog#1.11.1#1.11.1 Changelog Wed, 23 Jul 2025 00:00:00 +0000 Windsurf 1.11.0 https://windsurf.com/changelog#1.11.0 <h3>Speak to Cascade</h3><p><strong>Voice</strong></p><ul><li>Users can now speak into the chat rather than having to type things out.</li></ul><p><strong>@-mentioning conversations</strong></p><ul><li>@-mention the first conversation so Cascade has full context of it as it goes to write tests for you.</li></ul><p><strong>Deeper Browser integration</strong></p><ul><li>Chat with Cascade about tabs that are open in the Browser using @-mentions</li></ul><p><strong>JetBrains improvements</strong></p><ul><li>Planning Mode, Workflows, and file-based Rules are now available for Cascade on JetBrains</li></ul><p><strong>Improvements</strong></p><ul><li>Now you can @-mention terminal in Cascade.</li><li>You can turn on the Auto-Continue setting to have Cascade automatically continue its response if it hits a limit.</li><li>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).</li><li>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</li></ul> https://windsurf.com/changelog#1.11.0#1.11.0 Changelog Thu, 17 Jul 2025 00:00:00 +0000 Windsurf 1.10.8 https://windsurf.com/changelog#1.10.8 <h3>Linux Fixes</h3><ul><li>Fixes to RHEL 8 Support</li></ul> https://windsurf.com/changelog#1.10.8#1.10.8 Changelog Tue, 15 Jul 2025 00:00:00 +0000 Windsurf 1.10.7 https://windsurf.com/changelog#1.10.7 <h3>Cascade Improvements</h3><ul><li>Improvements to Cascade reliability</li></ul> https://windsurf.com/changelog#1.10.7#1.10.7 Changelog Thu, 03 Jul 2025 00:00:00 +0000 Windsurf 1.10.6 https://windsurf.com/changelog#1.10.6 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog#1.10.6#1.10.6 Changelog Wed, 02 Jul 2025 00:00:00 +0000 Windsurf 1.10.5 https://windsurf.com/changelog#1.10.5 <h3>Browser Fixes</h3><ul><li>Fixed unauthenticated missing CSRF token</li></ul> https://windsurf.com/changelog#1.10.5#1.10.5 Changelog Thu, 19 Jun 2025 00:00:00 +0000 Windsurf 1.10.4 https://windsurf.com/changelog#1.10.4 <h3>Patch Fixes</h3><ul><li>Fixed API Pricing labels in the model selector</li><li>Fixed bugs related to planning mode</li><li>Fixed some behavior around conversation button dropdown</li></ul> https://windsurf.com/changelog#1.10.4#1.10.4 Changelog Wed, 18 Jun 2025 00:00:00 +0000 Windsurf 1.10.3 https://windsurf.com/changelog#1.10.3 <h3>Windsurf Browser</h3><ul><li>Ability to share browser context with Windsurf</li><li>Share code blocks, selected text, web page elements, screenshots, and console logs</li><li>Send blocks directly to Cascade</li></ul><p><strong>Fixes</strong></p><ul><li>Fixed writing to plan.md files for Enterprise users</li></ul> https://windsurf.com/changelog#1.10.3#1.10.3 Changelog Thu, 12 Jun 2025 00:00:00 +0000 Windsurf 1.10.1 https://windsurf.com/changelog#1.10.1 <h3>Planning Mode</h3><ul><li>Send messages to Cascade in Planning Mode, a setting that will let Cascade plan before making edits</li><li>Cascade will create a plan.md file of the actions it plans to take before taking action</li><li>The plan is user-editable, and Cascade will pick up on user changes</li></ul><p><strong>Terminal Improvements</strong></p><ul><li>Native terminal in Cascade panel</li><li>Terminal now accepts user inputs in the Cascade panel</li></ul><p><strong>Legacy Mode Removal</strong></p><ul><li>Legacy mode has been removed, leaving Write and Chat mode</li></ul><p><strong>Improvements</strong></p><ul><li>Icons in @-mentions</li><li>Theme-aware codeblocks with refreshed design</li><li>Improvements to.codeiumignore</li><li>New menu to open previous conversations to quickly switch conversations</li></ul> https://windsurf.com/changelog#1.10.1#1.10.1 Changelog Tue, 10 Jun 2025 00:00:00 +0000 Windsurf 1.9.4 https://windsurf.com/changelog#1.9.4 <h3>Patch Fixes</h3><ul><li>Fixed Cascade and terminal integration issues for Mac and Linux users</li><li>Merged upstream changes from VS Code 1.99.3</li><li>Improvements to import behavior during onboarding</li><li>Fixed shadow with the App Icon on Mac</li></ul> https://windsurf.com/changelog#1.9.4#1.9.4 Changelog Tue, 03 Jun 2025 00:00:00 +0000 Windsurf 1.9.2 https://windsurf.com/changelog#1.9.2 <h3>Bring your Own Anthropic Key</h3><p><strong>BYOK (Anthropic Key)</strong></p><ul><li>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</li><li>To use BYOK, go toprovide API keysand input your key</li><li>Once entered, go back to Windsurf and reload the window. You should now be able to use the new models</li><li>This is only available for Free and Pro users at this time</li></ul> https://windsurf.com/changelog#1.9.2#1.9.2 Changelog Thu, 22 May 2025 00:00:00 +0000 Windsurf 1.9.1 https://windsurf.com/changelog#1.9.1 <h3>SWE-1 Improvements</h3><ul><li>Adds multi-modal (image) support to SWE-1</li></ul> https://windsurf.com/changelog#1.9.1#1.9.1 Changelog Wed, 21 May 2025 00:00:00 +0000 Windsurf 1.9.0 https://windsurf.com/changelog#1.9.0 <h3>New Family of SWE-1 Models</h3><p><strong>SWE-1</strong></p><ul><li>New SWE-1 Model made by Windsurf is available in Cascade</li><li>SWE-1 is a new model with frontier model-level capabilities</li><li>Free for a limited time for Pro Users</li></ul><p><strong>SWE-1-lite</strong></p><ul><li>SWE-1-lite is a new, far more capable model replacing Cascade Base</li><li>Free to use for all plans and tiers</li></ul><p><strong>SWE-1-mini</strong></p><ul><li>SWE-1-Mini is our revamped model for tab completion in Windsurf</li></ul><p><strong>Misc</strong></p><ul><li>Few memory leak bug fixes</li><li>Various fixes to Cascade Plugin Panel</li></ul> https://windsurf.com/changelog#1.9.0#1.9.0 Changelog Thu, 15 May 2025 00:00:00 +0000 Windsurf 1.8.2 https://windsurf.com/changelog#1.8.2 <h3>Cascade Customization</h3><p><strong>Cascade UX Improvements</strong></p><ul><li>Redesigned Model Selector</li><li>Continue button when reaching individual tool call limit</li><li>Opening conversations will now open the associated workspace</li><li>Hunk accept/reject widget now has a compact mode to cover less code</li><li>Improvements to commit message generation quality</li><li>Commit message generation reads from global rules as context</li><li>Ability to edit proposed terminal command</li></ul><p><strong>Custom Workflows</strong></p><ul><li>You can create “workflows”, saved prompts that Cascade can follow</li><li>Workflows can be invoked via slash command</li><li>Cascade can help create and edit workflows</li><li>Workflow files are saved in the workspace, under .windsurf/workflows</li></ul><p><strong>File-Based Rules</strong></p><ul><li>You can create granular rules files that are always on, @mention-able, requested by Cascade, or attached to file globs</li><li>Rules files are saved in the workspace, under .windsurf/rules</li></ul><p><strong>Simultaneous Cascades</strong></p><ul><li>Allow Cascade to keep running when switching to another conversation</li><li>Add support for switching between conversations via a dropdown menu or keyboard shortcuts</li></ul><p><strong>Cascade Plugins</strong></p><ul><li>New panel in Cascade for managing MCP Servers</li><li>Easier one-click uninstall and install</li><li>Easier search</li><li>MCP now has MCP resources and multimodel responses</li><li>More MCP Server options coming soon</li></ul><p><strong>Fixes</strong></p><ul><li>Fixed tool call errors for users with disabled telemetry</li><li>Fixed crashes around workspace conversation</li></ul> https://windsurf.com/changelog#1.8.2#1.8.2 Changelog Tue, 06 May 2025 00:00:00 +0000 Windsurf 1.8.0 https://windsurf.com/changelog#1.8.0 <h3>Teams Features</h3><p><strong>Teams: Windsurf Reviews</strong></p><ul><li>Team admins can install a Github app for code review and PR title/description edits</li><li>Available to Teams and Enterprise SAAS for 500 reviews/month</li></ul><p><strong>Teams: Conversation Sharing</strong></p><ul><li>Team users can generate a shareable URL to a Cascade conversation</li><li>Only fellow team members can access this URL</li><li>Available to Teams and Enterprise SaaS</li></ul><p><strong>Teams: Knowledge</strong></p><ul><li>Team admins can connect their Google account and curate relevant Google Docs</li><li>Team members will be able to @mention these docs, and Cascade can retrieve them</li><li>Available to Teams and Enterprise SaaS</li></ul><p><strong>Teams Deploys</strong></p><ul><li>Teams users can connect their Netlify account via Windsurf settings</li><li>Deploy apps through Cascade directly to your Netlify team for full control</li><li>Supports team-specific settings like SSO, custom domains, and more through the Netlify dashboard</li><li>Team admins can manage Deploy permissions and settings for their team.</li></ul><p><strong>Teams Analytics</strong></p><ul><li>Teams users get a refreshed analytics dashboard for their team</li><li>Includes new Cascade analytics such as messages sent, total tool calls, model usage, and more</li></ul><p><strong>Misc</strong></p><ul><li>Upgrade to VS Code 1.99.1</li></ul> https://windsurf.com/changelog#1.8.0#1.8.0 Changelog Tue, 06 May 2025 00:00:00 +0000 Windsurf 1.7.3 https://windsurf.com/changelog#1.7.3 <h3>Patch Fixes</h3><ul><li>Reduced errors for edit tool calls for Windows</li><li>Fixed model selection and loading bugs on Command</li></ul> https://windsurf.com/changelog#1.7.3#1.7.3 Changelog Tue, 29 Apr 2025 00:00:00 +0000 Windsurf 1.7.2 https://windsurf.com/changelog#1.7.2 <h3>New App Icon & Upgraded Free Tier</h3><p><strong>New App Icon</strong></p><ul><li>Windsurf is now refreshed with a new app icon</li><li>Windsurf.com has been updated with the new wordmark</li><li>(Mac) Customizable app icons now use the new logo</li></ul><p><strong>Upgraded Free Tier</strong></p><ul><li>Free tier now has new, higher limits</li><li>Ability to use Cascade in write mode</li><li>Cascade prompt credits: 5 to 25 Cascade prompt credits per month</li><li>Unlimited Fast Tab</li><li>Unlimited Cascade Base</li><li>Access to Previews</li><li>1 Deploy</li></ul><p><strong>Performance Improvements</strong></p><ul><li>Performance and reliability improvements when deploying an app using Deploys</li><li>Allow users to create a new deployment even if they have an existing deployment config yaml</li><li>Deploy web app tool now has a check deploy status tool call</li><li>Stability improvements for remote extensions (WSL, SSH, Dev Containers)</li><li>Performance improvements when typing in a large active diff zone</li></ul><p><strong>Misc</strong></p><ul><li>Adds GPT-4.1 to Command</li><li>Upgraded to VSCode base version 1.98</li></ul> https://windsurf.com/changelog#1.7.2#1.7.2 Changelog Mon, 28 Apr 2025 00:00:00 +0000 Windsurf 1.7.1 https://windsurf.com/changelog#1.7.1 <h3>Patch Fixes</h3><ul><li>Updates IDE marketplace link by mirroring Open VSX</li></ul> https://windsurf.com/changelog#1.7.1#1.7.1 Changelog Thu, 24 Apr 2025 00:00:00 +0000 Windsurf 1.7.0 https://windsurf.com/changelog#1.7.0 <h3>Updated & Simplified Pricing</h3><p><strong>We're getting rid of Flow Action Credits</strong></p><ul><li>We're simplifying our pricing model by removing Flow Action Credits</li><li>Change takes effect April 21st, 2025</li><li>Plans now come with prompt credits with add-on credits available for purchase</li></ul><p><strong>User Prompt Credits</strong></p><ul><li>Plans now come with prompt credits, which are consumed per every message sent and not via every tool call</li><li>Add-on credits are available for purchase</li><li>Auto-top off (with max limits) can be enabled via profile</li></ul><p><strong>Existing Plans</strong></p><ul><li>Existing plans are migrating over to the new pricing model</li><li>For more information, please visit thePricing page</li></ul> https://windsurf.com/changelog#1.7.0#1.7.0 Changelog Mon, 21 Apr 2025 00:00:00 +0000 Windsurf 1.6.5 https://windsurf.com/changelog#1.6.5 <h3>o4-mini Available</h3><p><strong>New o4-mini models available and Free (Limited Time)</strong></p><ul><li>Windsurf now supports the o4-mini medium and o4-mini high models, which are free for all users</li><li>Usage in Windsurf is free for a limited time from April 16th to April 21st</li></ul> https://windsurf.com/changelog#1.6.5#1.6.5 Changelog Wed, 16 Apr 2025 00:00:00 +0000 Windsurf 1.6.4 https://windsurf.com/changelog#1.6.4 <h3>GPT 4.1 Available</h3><p><strong>New GPT 4.1 Model available and Free (Limited Time)</strong></p><ul><li>Windsurf now supports the new GPT 4.1 model, which is free for all users</li><li>Usage in Windsurf is free for a limited time from April 14th to April 21st</li></ul> https://windsurf.com/changelog#1.6.4#1.6.4 Changelog Mon, 14 Apr 2025 00:00:00 +0000 Windsurf 1.6.3 https://windsurf.com/changelog#1.6.3 <h3>Patch Fixes</h3><ul><li>Fixes to Commit Generation parsing on Windows</li><li>UI Fixes to Rules</li><li>Allow empty files on website deploy</li><li>Better Deploys error visibility</li><li>Ability to edit subdomain on website deploy</li><li>Increased stability around MCP SSE connections</li><li>Cascade bug fixes</li></ul> https://windsurf.com/changelog#1.6.3#1.6.3 Changelog Mon, 07 Apr 2025 00:00:00 +0000 Windsurf 1.6.2 https://windsurf.com/changelog#1.6.2 <h3>Patch Fixes</h3><ul><li>Fixes to "Remote - WSL" extension</li><li>Minor UX fixes</li></ul> https://windsurf.com/changelog#1.6.2#1.6.2 Changelog Thu, 03 Apr 2025 00:00:00 +0000 Windsurf 1.6.1 https://windsurf.com/changelog#1.6.1 <h3>Deploys</h3><p><strong>Deploys (Beta)</strong></p><ul><li>Deploy your application with one prompt to Netlify under a windsurf.build domain</li><li>Claim your application's URL via Netlify</li><li>Once claimed, continue deploying to the same project as you make updates</li><li>To deploy a new site or change your subdomain, just ask Cascade to deploy to a new subdomain</li><li>Available to all users for all tiers, with more for paid plans</li></ul><p><strong>Commit Message Generation (Beta)</strong></p><ul><li>Generate commit messages with a click in the Source Control Panel</li><li>Available to users on paid plans with no additional credit cost per use</li></ul><p><strong>Improvements to Memories</strong></p><ul><li>New memories tab in Cascade</li><li>New ability to edit Cascade's generated memories, including the memory's title, content and tags</li><li>New ability to search Cascade's generated memories</li><li>User setting toggle for Auto-Generate Memories</li><li>When enabled, Cascade will autonomously generate memories to remember important context</li><li>When disabled, Cascade will only create memories when you explicitly ask in your prompt</li></ul><p><strong>Improvements to Long Conversations</strong></p><ul><li>Introduced Cascade table of contents of all past user messages, which appears on conversation scroll</li><li>Table of contents enables the ability to revert or scroll to any past message</li><li>Improved performance when interacting with long conversations</li></ul><p><strong>Improvements to Windsurf Tab</strong></p><ul><li>Jupyter Notebook Support for Windsurf Tab</li><li>Additional context signals for Windsurf Tab, including in-IDE search</li></ul><h3>New Mac Icons</h3><ul><li>Two new application icons (Retro and Pixel Surf) are available for users on paid plans</li></ul><h3>Misc</h3><ul><li>Cascade new conversation screen now has a new toolbar for tools like MCP, Preview and Deployments.</li><li>Cascade now supports SSE MCP servers in the JSON ... https://windsurf.com/changelog#1.6.1#1.6.1 Changelog Wed, 02 Apr 2025 00:00:00 +0000 Windsurf 1.5.9 https://windsurf.com/changelog#1.5.9 <h3>New Model</h3><p><strong>Gemini 2.5 Pro (Beta)</strong></p><ul><li>Gemini 2.5 Pro is now available in beta!</li><li>Gemini 2.5 Pro takes 1x user prompt credits on every message and 1x flow action credits on each tool call</li><li>Available for users Free and Pro Plans</li><li>Currently experiencing high-demand and working to increase capacity</li></ul><p><strong>Fixes</strong></p><ul><li>Fixes to "Remote - SSH" extension, including custom SSH binary path setting</li></ul> https://windsurf.com/changelog#1.5.9#1.5.9 Changelog Tue, 25 Mar 2025 00:00:00 +0000 Windsurf 1.5.8 https://windsurf.com/changelog#1.5.8 <h3>Patch Fixes</h3><ul><li>Fixes for Cascade, which now better respects User-Defined Memories</li><li>Improvements for Browser Previews</li><li>Fixes for a few Cascade layout issues impacting icons</li></ul> https://windsurf.com/changelog#1.5.8#1.5.8 Changelog Mon, 24 Mar 2025 00:00:00 +0000 Windsurf 1.5.6 https://windsurf.com/changelog#1.5.6 <h3>Windsurf Tab</h3><p><strong>New Windsurf Tab Experience</strong></p><ul><li>Rolled up Autocomplete, Supercomplete, Tab to Jump, and Tab to Import into one experience called Windsurf Tab</li><li>Windsurf Tab runs a larger and higher quality model, increasing contextual awareness, quality, and speed</li></ul><p><strong>Context Improvements</strong></p><ul><li>Completions now use more signals including recently viewed files, terminal commands and outputs, Cascade conversations</li><li>Optional clipboard as context for completions (default off, opt-in via Advanced Settings)</li><li>Expanded context length, including more signals to improve completions</li></ul><p><strong>Quality Improvements</strong></p><ul><li>Increased precision choosing between Autocompletes (insertions) and Supercompletes (edits)</li><li>Higher recall and more than double the jump distances for Tab to Jump from previous versions</li><li>Improved indenting and spacing for next-line suggestions</li></ul><p><strong>Speed Improvements</strong></p><ul><li>Added predictive triggers, leading to consecutive completions after your previous completion or tab to jump</li><li>Increased server capacities and improved inference speeds</li><li>Improved networking, leading to reduced network latencies</li><li>Tab to Import shows quicker and applies more reliably</li></ul><p><strong>Tab UX Improvements</strong></p><ul><li>Accepted completions are highlighted green (can be disabled via Advanced Settings)</li><li>Tab to Jump and Tab to Import widgets have a refreshed, more visible UI</li><li>Tab to Jump and Tab to Import widgets are clickable</li></ul><p><strong>Misc Improvements</strong></p><ul><li>More reliable credit discounting for lint-fixing edits in auto-fix lint mode</li><li>In-IDE Terminal commands are now used as context for Cascade</li><li>The Tab key works to accept intellisense in the Debug Console</li><li>Improved Cascade diff review UX</li><li>Fixes to low credit warnings</li><li>Fixes to Autocomple... https://windsurf.com/changelog#1.5.6#1.5.6 Changelog Tue, 18 Mar 2025 00:00:00 +0000 Windsurf 1.4.6 https://windsurf.com/changelog#1.4.6 <h3>Patch Fixes</h3><ul><li>Fixes crashes around MCP misconfiguration</li><li>Fixes around web search for Sonnet 3.7</li><li>Fixes for proxy settings</li></ul> https://windsurf.com/changelog#1.4.6#1.4.6 Changelog Mon, 10 Mar 2025 00:00:00 +0000 Windsurf 1.4.4 https://windsurf.com/changelog#1.4.4 <p><strong>Patch Fixes</strong></p><ul><li>Fixes to Windsurf Previews where certain routes would not load.</li><li>Fixes to open Cascade shortcuts (cmd/ctrl+shift+L)</li><li>Re-added new settings configs to new settings panel (proxy settings, index size)</li></ul> https://windsurf.com/changelog#1.4.4#1.4.4 Changelog Thu, 06 Mar 2025 00:00:00 +0000 Windsurf 1.4.3 https://windsurf.com/changelog#1.4.3 <p><strong>Windsurf Previews, Auto-Linter, and new MCP servers</strong></p><p><strong>Windsurf Previews (Beta)</strong></p><ul><li>Cascade will now let you preview locally run websites in your IDE or in your browser.</li><li>You can select React and HTML element(s) within the preview to send to Cascade as context.</li><li>This context will be included in your Cascade conversation so you no longer need to copy-paste or send screenshots.</li><li>You can also send console errors to Cascade as context.</li><li>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.</li><li>A preview can be shown in the IDE or in a new browser on Chrome, Arc, and Chromium based browsers.</li><li>Can be turned off via Windsurf Settings.</li><li>Available to all plans and costs no credits.</li></ul><p><strong>Cascade Auto-Linter</strong></p><ul><li>Cascade now auto-lints proposed code changes it has made.</li><li>If an output from a code edit proposes a lint error, Cascade will automatically fix it in a subsequent edit.</li><li>Fixes to lints are available to all plans and the Cascade edit step to fix the lints costs no credits.</li><li>For example, if Cascade made 4 lint errors in a step, Cascade will try to fix the 4 lint errors at no credit charge.</li><li>Disclaimer: The LLM decides when its purely fixing lints and when to not charge a credit.</li><li>Can be turned off via Windsurf Settings.</li><li>Available to all plans.</li></ul><p><strong>New MCP Server Integration</strong></p><ul><li>You can now setup Cascade to make tool calls to trusted MCP servers.</li><li>A list of common MCP servers can be found in the new Windsurf Settings Page.</li><li>Brand new UX to make it easier to add and configure MCP servers.</li><li>A user-configurable JSON is still available via the Settings page.</li><li>Available to Pro and Pro Ultimate plans, with support to Teams and Enterprise plans coming so... https://windsurf.com/changelog#1.4.3#1.4.3 Changelog Wed, 05 Mar 2025 00:00:00 +0000 Windsurf 1.3.11 https://windsurf.com/changelog#1.3.11 <p><strong>Patch Fixes</strong></p><ul><li>Fixes crashes due to permissions errors on Ubuntu 24.04</li></ul> https://windsurf.com/changelog#1.3.11#1.3.11 Changelog Mon, 03 Mar 2025 00:00:00 +0000 Windsurf 1.3.10 https://windsurf.com/changelog#1.3.10 <h3>Patch Fixes</h3><p><strong>Patch Fixes</strong></p><ul><li>Improvements for Cascade credit usage for Claude 3.7 Sonnet</li><li>Once updating, try running all future credits in a new conversation</li><li>MCP fixes for incorrectly formatted MCP tools in JSON</li><li>Better MCP Error Handling</li><li>Fixes for some App Icon issues for Mac users</li><li>Option for Cascade to view / edit .gitignore files</li></ul> https://windsurf.com/changelog#1.3.10#1.3.10 Changelog Fri, 28 Feb 2025 00:00:00 +0000 Windsurf 1.3.9 https://windsurf.com/changelog#1.3.9 <h3>Claude 3.7</h3><p><strong>New Cascade Models</strong></p><ul><li>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.</li><li>Takes 1.0 user prompt credits on every message and 1.0 flow action credits on each tool call</li><li>Support for Claude 3.7 Sonnet ships with Thinking, with a 1.5x multiplier on credit cost.</li><li>[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.</li><li>Due to costs, rate limits, and quality from early testing, we will be rolling it out to users incrementally.</li></ul> https://windsurf.com/changelog#1.3.9#1.3.9 Changelog Tue, 25 Feb 2025 00:00:00 +0000 Windsurf 1.3.4 https://windsurf.com/changelog#1.3.4 <h3>Patch Fixes</h3><p><strong>Fixes</strong></p><ul><li>Some fixes for Cascade write tools</li><li>Fixes some bugs around user message cancellation</li><li>Fixes around enabling Cascade Base when low on credits</li><li>Catches some error cases around auth entry login and surfaces error message to user</li></ul> https://windsurf.com/changelog#1.3.4#1.3.4 Changelog Fri, 14 Feb 2025 00:00:00 +0000 Windsurf 1.3.3 https://windsurf.com/changelog#1.3.3 <h3>Model Context Protocol, Custom App Icons, and Tab to Jump</h3><p><strong>Model Context Protocol</strong></p><ul><li>Cascade now supports Model Context Protocol (MCP)</li><li>You can setup your Cascade conversation to make tool calls to user-configured MCP servers</li><li>You can setup MCP by clicking on the hammer in the Cascade input tool bar</li><li>Available to all individual plans</li><li>Every MCP tool call costs one flow action credit, regardless of the execution result</li></ul><p><strong>New Customizable App Icons</strong></p><ul><li>You can now change Windsurf's App Icon (Beta & Mac Only)</li><li>Paying users can choose between Classic, Blueprint, Hand-drawn, and Valentine options</li><li>Updates across entire operating-system, though a restart is required for a system-wide change to take effect</li><li>Available to all paid user plans</li><li>Customization coming to Windows and Linux soon</li></ul><p><strong>Improvements to Completions</strong></p><ul><li>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</li><li>Background predictive completions for improved latencies</li><li>Performance and quality improvements for supercomplete and autocomplete</li></ul><p><strong>Cascade Turbo Mode</strong></p><ul><li>Cascade has a revamped "Turbo Mode" that allows Cascade to auto-execute terminal commands, unless specified in deny-list</li><li>Available to all individual plans</li></ul><p><strong>Cascade Drag and Drop Image Support</strong></p><ul><li>Cascade now allows you to drag and drop images into Cascade</li><li>Works from system files or screenshots</li></ul><p><strong>Credit Visibility</strong></p><ul><li>Cascade now shows many credits an action took.</li><li>You can see the number of credits consumed by mouse hovering over the completed action in Cascade.</li></ul><p><strong>Misc</strong></p><ul><li>Fixes to some bugs in Cascade terminal commands.</li><li>Comm... https://windsurf.com/changelog#1.3.3#1.3.3 Changelog Thu, 13 Feb 2025 00:00:00 +0000 Windsurf 1.2.6 https://windsurf.com/changelog#1.2.6 <h3>Patch Fixes</h3><p><strong>Fixes</strong></p><ul><li>Fixed issues with partial credits when transitioning to flex credits</li></ul> https://windsurf.com/changelog#1.2.6#1.2.6 Changelog Wed, 05 Feb 2025 00:00:00 +0000 Windsurf 1.2.5 https://windsurf.com/changelog#1.2.5 <h3>Patch Fixes</h3><p><strong>Fixes</strong></p><ul><li>Fixed tool calls errors, specifically around invalid tool calls by the model</li><li>Fixed Web Search setting unavailable message option</li></ul><p><strong>New Models</strong></p><ul><li>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</li><li>Gemini 2.0 Flash takes 0.25 user prompt credits on every message and 0.25 flow action credits on each tool call</li></ul> https://windsurf.com/changelog#1.2.5#1.2.5 Changelog Fri, 31 Jan 2025 00:00:00 +0000 Windsurf 1.2.4 https://windsurf.com/changelog#1.2.4 <h3>New Models: DeepSeek-R1, DeepSeek-V3 and o3-mini</h3><p><strong>Models</strong></p><ul><li>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</li><li>Deepseek-V3 and Deepseek-R1 are available to users on Pro and Pro Ultimate Plans</li><li>Deepseek-V3 takes 0.25 user prompt credits on every message and 0.25 flow action credits on each tool call</li><li>DeepSeek-R1 takes 0.5 user prompt credits on every message and 0.5 flow action credits on each tool call</li><li>o3-mini is available to all users on paid plans</li><li>o3-mini takes 1 user prompt credit on every message and 1 flow action credit on each tool call</li></ul><p><strong>Fixes</strong></p><ul><li>Further fixes to input lag in long Cascade conversations</li><li>Fixed a bug where Cascade panel would always open on reload, even if the user disabled it in their settings</li><li>@docshas more options to choose from</li><li>Fixed Tab to Jump Quick Setting configuration</li><li>Added support for drag and drop images into Cascade</li></ul> https://windsurf.com/changelog#1.2.4#1.2.4 Changelog Fri, 31 Jan 2025 00:00:00 +0000 Windsurf 1.2.2 https://windsurf.com/changelog#1.2.2 <h3>Quick Updates</h3><p><strong>Improvements</strong></p><ul><li>Cascade Web search now includes the website description and uses page rank to determine relevance</li><li>Improvements to Cascade Auto-Generated Memories (Beta)</li></ul><p><strong>Fixes</strong></p><ul><li>Fixed input lag in long Cascade conversations</li><li>Increased precision when Cascade makes code edits</li><li>Fixed issues around Cascade edits with .gitignore files</li><li>Fixed Tab to Jump Quick Setting configuration</li></ul> https://windsurf.com/changelog#1.2.2#1.2.2 Changelog Fri, 24 Jan 2025 00:00:00 +0000 Windsurf 1.2.1 https://windsurf.com/changelog#1.2.1 <h3>Cascade Memories, Web Search and Docs</h3><p><strong>Web and Docs Search</strong></p><ul><li>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!</li><li>Automatically: Simply ask a query that needs a live internet search and Cascade will trigger web search automatically.</li><li>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.).</li><li>@web: If you prefer to explicitly ask Cascade to search the web, use the@webcommand.</li><li>@docs: Cascade can search through some popular documentation sites, including Windsurf's own help docs!</li><li>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.</li><li>A web search is 1 flow action credit and the resulting URL page reads are additional credits.</li></ul><p><strong>Cascade Auto-Generated Memories</strong></p><ul><li>Cascade can now automatically generate memories to retain context between conversations</li><li>You can prompt Cascade to create a memory at any time if you want it to remember key context</li><li>Memories are visible in the Memories Panel, which is accessible when Cascade makes a memory or through the command palette</li><li>Memories can be deleted from the Memories Panel</li><li>Memories do not cost any flow action credits to generate</li></ul><p><strong>Improvements to Dev Container Support (Beta)</strong></p><ul><li>Dev Container support for Windows is now in beta</li><li>UI T... https://windsurf.com/changelog#1.2.1#1.2.1 Changelog Fri, 17 Jan 2025 00:00:00 +0000 Windsurf 1.1.3 https://windsurf.com/changelog#1.1.3 <h3>Patch Fixes</h3><p><strong>Fixes</strong></p><ul><li>Fixed Cascade's Chat Mode sometimes not giving an "Apply" button</li><li>Dev Container Stability Improvements</li><li>Some Fixes for Cascade Flow Actions on Windows users</li></ul> https://windsurf.com/changelog#1.1.3#1.1.3 Changelog Thu, 09 Jan 2025 00:00:00 +0000 Windsurf 1.1.2 https://windsurf.com/changelog#1.1.2 <h3>Patch Fixes</h3><p><strong>Fixes</strong></p><ul><li>Fixed text wrapping layout bugs in Cascade</li><li>Fixed a bug where "Show Logs" did not read the correct path</li></ul> https://windsurf.com/changelog#1.1.2#1.1.2 Changelog Sun, 22 Dec 2024 00:00:00 +0000 Windsurf 1.1.1 https://windsurf.com/changelog#1.1.1 <h3>Quick Updates</h3><p><strong>Product Improvements</strong></p><ul><li>Added a "Send to Cascade" button in the Problems tab</li><li>Autocomplete and supercomplete show up regardless of intellisense.</li><li>You can now see your plan on the Status Bar, with usage information on mouse hover</li><li>Improvements to the onboarding flow</li><li>Ability to download Windsurf Logs to help with support tickets</li></ul><p><strong>Fixes</strong></p><ul><li>Fixed a bug for Cascade unable to apply its proposed code edits in chat mode on Windows</li><li>Fixes autocomplete speed slowdowns affecting some users</li><li>Bug fixes and stability improvements</li></ul> https://windsurf.com/changelog#1.1.1#1.1.1 Changelog Thu, 19 Dec 2024 00:00:00 +0000 Windsurf 1.1.0 https://windsurf.com/changelog#1.1.0 <h3>Cascade Memories</h3><p><strong>Cascade Memories</strong></p><ul><li>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</li><li>Rules can be found in the Windsurf Quick Settings panel by clicking on "Windsurf Settings" on the status bar</li><li>Global rules are rules that will be applied to Cascade in all workspaces</li><li>Workspace rules are rules that will be applied to Cascade in the current workspace</li><li>More information can be found on ourdocs.</li></ul><p><strong>Cascade Auto Run Commands</strong></p><ul><li>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</li><li>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.</li><li>More information can be found on ourdocs.</li></ul><p><strong>Extensions</strong></p><ul><li>WSL support is now in beta</li><li>Bug fixes and improvements to devcontainer support, notably on Mac</li><li>Updates to Windsurf Pyright</li></ul><p><strong>Misc</strong></p><ul><li>Added Cascade undo/redo for full-file accept/reject and workspace-wide accept/reject all</li><li>One-time check to install Windsurf Pyright if Python found</li></ul> https://windsurf.com/changelog#1.1.0#1.1.0 Changelog Wed, 11 Dec 2024 00:00:00 +0000 Windsurf 1.0.7 https://windsurf.com/changelog#1.0.7 <h3>Patch Fixes</h3><h3>Misc</h3><ul><li>Fixes for some crashes for some users</li><li>Fixed bug where changing Cascade models would toggle the mode to Chat only</li></ul> https://windsurf.com/changelog#1.0.7#1.0.7 Changelog Sat, 07 Dec 2024 00:00:00 +0000 Windsurf 1.0.6 https://windsurf.com/changelog#1.0.6 <h3>Usage Transparency</h3><p><strong>Usage Transparency and Pricing</strong></p><ul><li>Rolling out updated usage and pricing system for Windsurf. Seepricingfor details</li><li>Quick settings panel now additionally shows current plan usage, with information on trial expiry, next refresh cycle, and links to upgrade</li><li>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</li><li>View Cascade usage in the settings panel. Learn more about viewing Cascade usagehere.</li></ul><p><strong>Cascade Image Uploads</strong></p><ul><li>Cascade image uploads are no longer limited to 1MB</li></ul><p><strong>Improved Language support for Python</strong></p><ul><li>Added feature-rich language support for Python with Windsurf Pyright. Windsurf Pyright is a Pylance alternative</li></ul><h3>Misc</h3><ul><li>Importing from other VS Code-based IDEs now imports snippets alongside settings</li><li>AI-related Keybindings can be viewed and configured in the quick settings panel</li><li>Added clearer error messages and debug handling for users experiencing auth issues</li></ul> https://windsurf.com/changelog#1.0.6#1.0.6 Changelog Fri, 06 Dec 2024 00:00:00 +0000 Windsurf 1.0.5 https://windsurf.com/changelog#1.0.5 <h3>Image Upload</h3><p><strong>Upload Images to Cascade</strong></p><ul><li>Cascade now supports uploading images on premium models</li><li>Ask Cascade to build or tweak UI on image upload</li></ul><p><strong>New keybindings</strong></p><ul><li>Keybindings to navigate between changes in a Cascade diff (⌥/Alt + j and ⌥/Alt + k by default)</li><li>Keybindings to navigate between files with Cascade diffs (⌥/Alt + h and ⌥/Alt + l by default)</li></ul><h3>Misc</h3><ul><li>Cascade panel open diff button now opens to the first change in the file</li><li>Added option to control whether Cascade automatically opens created / edited files (enabled by default)</li><li>Fixed minor autocomplete settings issues that affected some users</li><li>New quick settings panel UI</li></ul> https://windsurf.com/changelog#1.0.5#1.0.5 Changelog Wed, 27 Nov 2024 00:00:00 +0000 Windsurf 1.0.4 https://windsurf.com/changelog#1.0.4 <h3>Cascade Explain & Fix Problem</h3><p><strong>Explain & fix problem</strong></p><ul><li>Cascade will attempt to fix issues in the codebase</li><li>Option appears on hover of the issue</li></ul><p><strong>Import from Cursor</strong></p><ul><li>Import settings and extensions</li><li>Available via Command Palette or Reset Onboarding</li></ul><p><strong>New keybindings</strong></p><ul><li>Keybinding for accept all active diffs in a file (⌘/Ctrl + ⏎ by default)</li><li>Keybinding to reject all active diffs in a file (⌘/Ctrl + ⌫ by default)</li><li>⌘/ctrl + shift + L open new conversation in Cascade. It also copies selected terminal / editor text to new conversation</li></ul><p><strong>Improved Command</strong></p><ul><li>Improved Command experience in Jupyter notebooks</li></ul><p><strong>Improved diff views</strong></p><ul><li>Removes diffs in deleted files by Cascade</li><li>Clearer cursor indication that text in a deleted text diff is selectable</li></ul><p><strong>Misc</strong></p><ul><li>Windsurf quick settings dismisses when clicking outside the panel</li><li>Increased visibility of elements on onboarding for certain themes</li><li>Fixed minor layout issues</li><li>Added button to join Discord community</li><li>Increased stability of Cascade panel over SSH</li><li>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</li><li>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</li></ul> https://windsurf.com/changelog#1.0.4#1.0.4 Changelog Thu, 21 Nov 2024 00:00:00 +0000 Windsurf 1.0.3 https://windsurf.com/changelog#1.0.3 <h3>Improvements & fixes</h3><ul><li>Minor fixes to Cascade</li></ul> https://windsurf.com/changelog#1.0.3#1.0.3 Changelog Tue, 19 Nov 2024 00:00:00 +0000 Windsurf 1.0.2 https://windsurf.com/changelog#1.0.2 <h3>Windsurf Launch</h3><ul><li>Windsurf General Release!</li><li>Chat with Cascade, Codeium’s full repo-aware chat with ability to make multi-file edits</li><li>Blazing fast Autocomplete, with fast mode</li><li>Supercomplete, a new modality that predicts next intent</li><li>Command, with a brand new UX, with an ability to do larger file diffs and modifications</li></ul> https://windsurf.com/changelog#1.0.2#1.0.2 Changelog Wed, 13 Nov 2024 00:00:00 +0000 ================================================ FILE: feeds/feed_windsurf_next_changelog.xml ================================================ Windsurf Next Changelog https://windsurf.com/changelog/windsurf-next Latest version updates from Windsurf Next http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 10:51:21 +0000 Windsurf Next 2.2.1017 https://windsurf.com/changelog/windsurf-next#2.2.1017 <p><strong>Devin Review & Quick Review</strong></p><p>All Windsurf IDE users now have access toDevin ReviewandQuick Reviewwith your existing subscription.</p><p><strong>Agent Command Center</strong></p><ul><li>Added list display option for the agent inbox</li><li>Improved sessions sidebar sorting and filtering</li><li>Performance improvements for loading and switching sessions</li></ul><p><strong>Windows updates</strong></p><p>We have fixed a bug preventing updates for some users on Windows. To upgrade to this version, you may need to:</p><ul><li>Wait for the update to download.</li><li>Once it is downloaded, open Windows Task Manager and close alldevin.exeprocesses</li><li>Proceed with installing the update and restarting Windsurf</li></ul><p><strong>Bug fixes and improvements</strong></p><ul><li>Fixed bugs with some MCP servers</li><li>Improved reliability of Devin Local agent</li></ul> https://windsurf.com/changelog/windsurf-next#2.2.1017#2.2.1017 Changelog Wed, 06 May 2026 00:00:00 +0000 Windsurf Next 2.2.1001 https://windsurf.com/changelog/windsurf-next#2.2.1001 <h3>Settings Improvements</h3><ul><li>Settings now open in a dedicated tab instead of a modal, making it easier to navigate and find what you need</li><li>Added a searchable sidebar to quickly locate settings across all categories</li><li>Consolidated the settings gear into the global activity dropdown for a cleaner titlebar</li></ul><h3>Agent Command Center Improvements</h3><ul><li>Added button to rename agent sessions directly from the sidebar</li><li>Added space @-mentions — you can now reference entire spaces in Cascade conversations</li><li>Added automatic context sharing across sessions in a space</li><li>Model picker search now surfaces the best-matching variant per model family</li><li>Improved at-mention loading with incremental results instead of waiting for all categories</li><li>Tab completions now respect yourfiles.excludesettings</li><li>The toolbar footer now works like the Cascade footer with accept/reject buttons tied to diff zones</li><li>File paths and selection ranges are now included in @-mentions</li><li>Session PRs are now rendered in the Devin Cloud sidebar item</li><li>Fixed UI freeze that could occur when pasting large text into Cascade</li></ul><h3>Bug Fixes</h3><ul><li>Fixed scroll position not being preserved when switching between editor tabs</li><li>Fixed sign-in / sign-out state showing contradictory status after a failed authentication</li><li>Fixed titlebar items disappearing in narrow windows</li><li>Fixed stale session data showing in the sidebar</li></ul> https://windsurf.com/changelog/windsurf-next#2.2.1001#2.2.1001 Changelog Fri, 01 May 2026 00:00:00 +0000 Windsurf Next 2.1.1032 https://windsurf.com/changelog/windsurf-next#2.1.1032 <h3>Bug Fixes & Improvements</h3><p><strong>Bug Fixes</strong></p><ul><li>Fixed a crash that could occur when switching between Cascade conversations</li><li>Fixed an authentication issue that could prevent Devin Cloud sessions from starting</li><li>Fixed an issue where responses to agent questions were not sent correctly</li></ul> https://windsurf.com/changelog/windsurf-next#2.1.1032#2.1.1032 Changelog Wed, 29 Apr 2026 00:00:00 +0000 Windsurf Next 2.1.1029 https://windsurf.com/changelog/windsurf-next#2.1.1029 <h3>Devin for Terminal</h3><ul><li>Updated Devin Local agent to respect existing Windsurf proxy settings</li><li>Added context window indicator for Devin Local agent</li><li>Improved revert support for Devin Local agent</li><li>Enabled mentioning terminal content in Devin Local sessions</li><li>Added new keyboard shortcuts for accepting permission requests from Devin Local agent</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Added support for server-driven extension deny lists</li><li>Simplified file drag & drop support in Agent Command Center</li></ul> https://windsurf.com/changelog/windsurf-next#2.1.1029#2.1.1029 Changelog Tue, 28 Apr 2026 00:00:00 +0000 Windsurf Next 2.1.1026 https://windsurf.com/changelog/windsurf-next#2.1.1026 <h3>Devin for Terminal</h3><p>Devin is now availablefor Terminal. All Windsurf users can use this new CLI agent with your existing subscription.</p><ul><li>Runs on your machine— Optimized for interactive work, with full access to your codebase, tools, and environment.</li><li>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.</li><li>Multi-model— All of your favorite frontier models in one place, including Opus 4.7, GPT-5.5, and SWE-1.6.</li><li>Fast— Written in Rust and so performant that the binary can run on an original VT100.</li></ul><p><strong>Devin Agent in Windsurf</strong></p><p>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.</p><p>In our testing, it's up to 30% more token-efficient than the existing Cascade agent.</p><p><strong>Additional Changes</strong></p><ul><li>Improved search subtitle layout during streaming</li><li>Fixed file drag-and-drop in agent window Cascade tabs</li><li>Fixed edit rendering issues in Devin Local on Windows</li><li>Fixed Go to Line/Column keybinding on Windows/Linux (Ctrl+Shift+G)</li><li>Stability and performance improvements</li></ul> https://windsurf.com/changelog/windsurf-next#2.1.1026#2.1.1026 Changelog Mon, 27 Apr 2026 00:00:00 +0000 Windsurf Next 2.1.1010 https://windsurf.com/changelog/windsurf-next#2.1.1010 <h3>Agent Command Center</h3><ul><li>Added workspace and session filters to the spaces sidebar</li><li>Improved unread indicators for sessions with mark read/unread functionality</li><li>You can now drag sessions onto kanban cards to create Spaces</li><li>Added "Put Devin to sleep" tab context menu action</li><li>Improved Cmd+F find-in-chat for agent sessions</li><li>Hand off plans from Cascade to Devin Cloud with one click</li></ul><h3>Bug Fixes</h3><ul><li>Fixed Cmd+P flicker when focused on cascade in agent mode</li><li>Fixed Cmd+N to open untitled file when editor surface is focused in agent window</li><li>Fixed Ctrl+Shift+M microphone keybinding in agent window mode</li><li>Fixed agent sidebar highlight when focus moves to related panes</li><li>Skip button now skips one question at a time in Devin Cloud sessions</li><li>MCP registry now paginates instead of requesting limit=1000</li><li>Honor HTTP_PROXY for Windsurf Remote-SSH language server</li><li>Stop Devin for Terminal from spawning console windows on Windows</li><li>Prevent Cascade input re-renders causing typing lag</li></ul> https://windsurf.com/changelog/windsurf-next#2.1.1010#2.1.1010 Changelog Fri, 24 Apr 2026 00:00:00 +0000 Windsurf Next 2.0.1067 https://windsurf.com/changelog/windsurf-next#2.0.1067 <h3>Bug Fixes and Improvements</h3><ul><li>Fixed OAuth authentication issues for some MCP servers</li></ul> https://windsurf.com/changelog/windsurf-next#2.0.1067#2.0.1067 Changelog Tue, 21 Apr 2026 00:00:00 +0000 Windsurf Next 2.0.1063 https://windsurf.com/changelog/windsurf-next#2.0.1063 <h3>Bug Fixes and Improvements</h3><ul><li>Fixed a regression with OAuth integration for some MCP servers</li><li>Improved reliability of Devin Cloud connections in Windsurf</li></ul> https://windsurf.com/changelog/windsurf-next#2.0.1063#2.0.1063 Changelog Mon, 20 Apr 2026 00:00:00 +0000 Windsurf Next 2.0.1061 https://windsurf.com/changelog/windsurf-next#2.0.1061 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog/windsurf-next#2.0.1061#2.0.1061 Changelog Fri, 17 Apr 2026 00:00:00 +0000 Windsurf Next 2.0.1050 https://windsurf.com/changelog/windsurf-next#2.0.1050 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements for improving Windsurf 2.0 auth experience.</li><li>Fixed bug with spawning Terminal sessions on Windows</li></ul> https://windsurf.com/changelog/windsurf-next#2.0.1050#2.0.1050 Changelog Thu, 16 Apr 2026 00:00:00 +0000 Windsurf Next 2.0.1044 https://windsurf.com/changelog/windsurf-next#2.0.1044 <h3>Windsurf 2.0</h3><p>Read the full announcementhere.</p><p><strong>Devin in Windsurf</strong></p><ul><li>Devin cloud agent available directly inside Windsurf, included with every self-serve plan</li><li>Delegate tasks from a local session to Devin with one click; Devin runs on its own VM</li><li>Review Devin changes and test results without leaving the editor</li><li>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.</li></ul><p>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.</p><p>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.</p><p></p><p><strong>Agent Command Center</strong></p><ul><li>New Kanban-style view showing all local and cloud agent sessions, organized by status</li><li>Group agent sessions, PRs, files, and context into task-level Spaces</li><li>Switch between Spaces to switch between tasks</li></ul><p><strong>Additional Changes</strong></p><ul><li>Refined Windsurf Browser with toolbar integration and Cascade tool for reading page contents</li><li>Sped up initial load times for the Cascade sidebar</li><li>Improved .gitignore and .codeiumignore handling across the product</li><li>Stability improvements for remote extensions (WSL, SSH, Dev Containers)</li><li>Performance improvements for typing in large active diff zones</li></ul> https://windsurf.com/changelog/windsurf-next#2.0.1044#2.0.1044 Changelog Wed, 15 Apr 2026 00:00:00 +0000 Windsurf Next 1.9600.1047 https://windsurf.com/changelog/windsurf-next#1.9600.1047 <h3>Bug Fixes and Improvements</h3><ul><li>Fixed resource parameter support for OAuth connections to MCP servers</li><li>Enhanced MCP registry support</li></ul> https://windsurf.com/changelog/windsurf-next#1.9600.1047#1.9600.1047 Changelog Fri, 10 Apr 2026 00:00:00 +0000 Windsurf Next 1.9600.1042 https://windsurf.com/changelog/windsurf-next#1.9600.1042 <p><strong>Adaptive Fix</strong></p><p>We fixed a bug with the adaptive model router which prevented switching models after the first request.</p><p>All users who encountered the bug have had quota reset and overage restored.</p> https://windsurf.com/changelog/windsurf-next#1.9600.1042#1.9600.1042 Changelog Tue, 07 Apr 2026 00:00:00 +0000 Windsurf Next 1.9600.1040 https://windsurf.com/changelog/windsurf-next#1.9600.1040 <p><strong>Adaptive Model Visibility</strong></p><p>We've improved the visibility of the adaptive model in the model picker.</p><p></p> https://windsurf.com/changelog/windsurf-next#1.9600.1040#1.9600.1040 Changelog Mon, 06 Apr 2026 00:00:00 +0000 Windsurf Next 1.9600.1038 https://windsurf.com/changelog/windsurf-next#1.9600.1038 <h3>Introducing Adaptive</h3><p>We've made several model packaging changes, with more infohere.</p><p><strong>Adaptive Model Router</strong></p><p>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.</p><ul><li>Availability: Now available to all self-serve users on Pro, Max, and Teams plans.</li><li>Dynamic model selection- Automatically chooses the right underlying model for your task while drawing down quota at a fixed per-token rate.</li><li>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.</li></ul> https://windsurf.com/changelog/windsurf-next#1.9600.1038#1.9600.1038 Changelog Mon, 06 Apr 2026 00:00:00 +0000 Windsurf Next 1.9600.1032 https://windsurf.com/changelog/windsurf-next#1.9600.1032 <h3>Token Tracking in Response Card</h3><ul><li>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.</li><li>Enhanced the context window indicator to show when the prompt cache expires, giving you better visibility into cache utilization.</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Fixed keyboard input issues with the built-in terminal on Windows</li><li>Improved cost sorting for token-based plans in the model picker</li><li>Clarified which models are available only on pro plans</li><li>Repaired devcontainer support on RHEL 8</li></ul> https://windsurf.com/changelog/windsurf-next#1.9600.1032#1.9600.1032 Changelog Thu, 02 Apr 2026 00:00:00 +0000 Windsurf Next 1.9600.1002 https://windsurf.com/changelog/windsurf-next#1.9600.1002 <h3>Model & Cost Visibility</h3><p>Replaced dollar signs with granular cost metrics for quota-based billing plans.</p><h3>Additional fixes</h3><ul><li>Improved performance for large repos</li><li>Upgraded to VSCode base version 1.110</li><li>Fixed issues with diff zones reappearing after acceptance</li></ul> https://windsurf.com/changelog/windsurf-next#1.9600.1002#1.9600.1002 Changelog Thu, 26 Mar 2026 00:00:00 +0000 Windsurf Next 1.9577.1043 https://windsurf.com/changelog/windsurf-next#1.9577.1043 <h3>Quota Billing</h3><ul><li>Added support for the new quota billing system</li><li>Daily and Weekly quota usage is now displayed directly in the IDE</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Fix build for Mac x64</li></ul> https://windsurf.com/changelog/windsurf-next#1.9577.1043#1.9577.1043 Changelog Thu, 19 Mar 2026 00:00:00 +0000 Windsurf Next 1.9577.1042 https://windsurf.com/changelog/windsurf-next#1.9577.1042 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog/windsurf-next#1.9577.1042#1.9577.1042 Changelog Thu, 19 Mar 2026 00:00:00 +0000 Windsurf Next 1.9577.1027 https://windsurf.com/changelog/windsurf-next#1.9577.1027 <h3>Bug Fixes and Improvements</h3><ul><li>Fix for Apple M5</li></ul> https://windsurf.com/changelog/windsurf-next#1.9577.1027#1.9577.1027 Changelog Thu, 12 Mar 2026 00:00:00 +0000 Windsurf Next 1.9577.1024 https://windsurf.com/changelog/windsurf-next#1.9577.1024 <p><strong>Cascade</strong></p><ul><li>Fix dangling Diff Zones related to Jupyter Notebooks</li><li>Improve Jupyter Notebook performance when running on WSL</li></ul> https://windsurf.com/changelog/windsurf-next#1.9577.1024#1.9577.1024 Changelog Mon, 09 Mar 2026 00:00:00 +0000 Windsurf Next 1.9577.1020 https://windsurf.com/changelog/windsurf-next#1.9577.1020 <p><strong>Cascade</strong></p><ul><li>Improve Cascade UI rendering performance</li><li>Fix Cascade agent crashes under certain conditions</li><li>Improve notifications for model price changes</li><li>Add support for loading SKILL.md files from the.windsurf/skills/directory</li><li>FixAGENTS.mdbeing ignored by Cascade in specific cases</li></ul><p><strong>MCP</strong></p><ul><li>Add support forsystem-level Skill definitionsvia MDM-managed configs for Enterprise</li><li>Improve context management for MCP servers</li></ul><p><strong>Stability & Performance</strong></p><ul><li>Improve autocomplete error handling and performance</li><li>Improve SSH & Remote performance</li></ul> https://windsurf.com/changelog/windsurf-next#1.9577.1020#1.9577.1020 Changelog Sun, 08 Mar 2026 00:00:00 +0000 Windsurf Next 1.9566.1015 https://windsurf.com/changelog/windsurf-next#1.9566.1015 <h3>Phoenix Alpha</h3><p>Phoenix Alpha is now available in Next.</p> https://windsurf.com/changelog/windsurf-next#1.9566.1015#1.9566.1015 Changelog Tue, 03 Mar 2026 00:00:00 +0000 Windsurf Next 1.9566.1011 https://windsurf.com/changelog/windsurf-next#1.9566.1011 <h3>Bug Fixes and Improvements</h3><ul><li>Fix extension installation version selection</li></ul> https://windsurf.com/changelog/windsurf-next#1.9566.1011#1.9566.1011 Changelog Thu, 26 Feb 2026 00:00:00 +0000 Windsurf Next 1.9566.1009 https://windsurf.com/changelog/windsurf-next#1.9566.1009 <p><strong>New Model Picker</strong></p><p>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.</p><p><strong>Cascade Improvements</strong></p><ul><li>AddedPOST_CASCADE_RESPONSE_WITH_TRANSCRIPTcascade hook</li><li>Added Cascade hooks configuration visibility on team settings page</li><li>Reduced the priority of Git commits in @ mention search</li><li>Added awindsurf.cascade.readClaudeCodeConfigflag to disable reading Claude configuration</li></ul><p><strong>MCP Improvements</strong></p><ul><li>Added an MCP Refresh button</li><li>Auto-trigger OAuth login when adding HTTP/SSE MCP servers</li><li>Fix bugs with parsing on Windows and startup</li></ul><p><strong>Platform Improvements</strong></p><ul><li>Merged changes from VS Code 1.108</li><li>Improved startup reliability for Cascade</li><li>Fixed Windows update initialization path that could block updates</li><li>Released binaries for Linux ARM64</li></ul> https://windsurf.com/changelog/windsurf-next#1.9566.1009#1.9566.1009 Changelog Tue, 24 Feb 2026 00:00:00 +0000 Windsurf Next 1.9552.1025 https://windsurf.com/changelog/windsurf-next#1.9552.1025 <h3>Bug Fixes and Improvements</h3><ul><li>Fix compatibility with GitHub Pull Requests extension</li></ul> https://windsurf.com/changelog/windsurf-next#1.9552.1025#1.9552.1025 Changelog Sat, 21 Feb 2026 00:00:00 +0000 Windsurf Next 1.9552.1024 https://windsurf.com/changelog/windsurf-next#1.9552.1024 <h3>Bug Fixes and Improvements</h3><ul><li>Fix for self-updating on Windows</li><li>Fix for macOS UI flickering</li></ul> https://windsurf.com/changelog/windsurf-next#1.9552.1024#1.9552.1024 Changelog Tue, 17 Feb 2026 00:00:00 +0000 Windsurf Next 1.9552.1021 https://windsurf.com/changelog/windsurf-next#1.9552.1021 <h3>Cascade Improvements</h3><ul><li>Plan Mode now supports automatic switching back to Code Mode when you start implementing a plan</li><li>Added support for reading skills from the.agents/skillsdirectory</li><li>Tracking triggered rules in thepost_cascade_responsehook via a newrules_appliedfield</li><li>Diff zones will now automatically close on commit</li></ul><h3>Linux ARM64 Support</h3><ul><li>Full Linux ARM64 client support with deb and rpm packaging</li></ul><h3>Enterprise & Team Improvements</h3><ul><li>Cloud configuration for Cascade Hooks is now available for enterprise teams via the cloud dashboard</li><li>Support for Devin service key authentication</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Fixes forpost_write_codehooks to handle all code editing tool formats</li><li>Fixes and improvements for MCP server resource loading</li><li>Fixed osascript privilege escalation being incorrectly triggered on Linux for shell command installation</li><li>Addressed multiple memory leaks</li><li>Improved RTL language rendering in todo lists</li></ul> https://windsurf.com/changelog/windsurf-next#1.9552.1021#1.9552.1021 Changelog Thu, 12 Feb 2026 00:00:00 +0000 Windsurf Next 1.9544.1029 https://windsurf.com/changelog/windsurf-next#1.9544.1029 <h3>Claude Opus 4.6 (fast mode)</h3><p>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:</p><ul><li>No thinking:10x credits</li><li>With thinking:12x credits</li></ul><p>Opus 4.6 (fast mode) has the same intelligence as Opus 4.6 but with up to 2.5x higher output speeds.</p><h3>Claude Opus 4.6</h3><p>Claude Opus 4.6 is now available in Windsurf with limited-time promotional pricing for self serve users:</p><ul><li>No thinking:2x credits</li><li>With thinking:3x credits</li></ul><p>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.</p><h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li><li>Released Tab v2 model selector to all users</li></ul> https://windsurf.com/changelog/windsurf-next#1.9544.1029#1.9544.1029 Changelog Wed, 04 Feb 2026 00:00:00 +0000 Windsurf Next 1.9544.1028 https://windsurf.com/changelog/windsurf-next#1.9544.1028 <h3>New Models</h3><ul><li>GPT-5.3-Codex-Spark is now available in Arena Mode's Fast Arena and Hybrid Arena battle groups</li></ul><h3>Claude Opus 4.6 (fast mode)</h3><p>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:</p><ul><li>No thinking:10x credits</li><li>With thinking:12x credits</li></ul><p>Opus 4.6 (fast mode) has the same intelligence as Opus 4.6 but with up to 2.5x higher output speeds.</p><h3>Bug Fixes and Improvements</h3><ul><li>Fix issues with Arena Mode Battle Groups</li></ul> https://windsurf.com/changelog/windsurf-next#1.9544.1028#1.9544.1028 Changelog Tue, 03 Feb 2026 00:00:00 +0000 Windsurf Next 1.9544.1026 https://windsurf.com/changelog/windsurf-next#1.9544.1026 <h3>Bug Fixes and Improvements</h3><ul><li>Improve UI styling for announcement popups and notifications</li><li>Close model picker when selecting a battle group</li></ul> https://windsurf.com/changelog/windsurf-next#1.9544.1026#1.9544.1026 Changelog Fri, 30 Jan 2026 00:00:00 +0000 Windsurf Next 1.9544.1024 https://windsurf.com/changelog/windsurf-next#1.9544.1024 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog/windsurf-next#1.9544.1024#1.9544.1024 Changelog Fri, 30 Jan 2026 00:00:00 +0000 Windsurf Next 1.9544.1018 https://windsurf.com/changelog/windsurf-next#1.9544.1018 <h3>Wave 14: Arena Mode</h3><p>Arena Mode brings side-by-side model comparison directly into your IDE, plus Plan Mode for smarter task planning.</p><p><strong>Arena Mode</strong></p><p>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.</p><ul><li>Battle Groups: Choose specific models to compare or let Windsurf randomly select from curated groups like "fast models" vs "smart models"</li><li>Personal & Global Leaderboards: Your votes contribute to both a personal leaderboard (your preferences) and a global one (across all Windsurf users)</li><li>Sync or Branch: Send followup prompts to both agents simultaneously, or branch and explore different paths individually</li></ul><p>To get started, select the newArenatab in the model picker. All battle groups are free for the first week for paid users.</p><p><strong>Plan Mode</strong></p><p>Plan Mode is a new Cascade mode alongside Code and Ask. Use it to create detailed implementation plans before diving into code.</p><p>Pro tip: Typemegaplanin the Cascade input box to trigger an advanced form that asks clarifying questions to create a more aligned, comprehensive plan.</p><h3>Bug Fixes and Improvements</h3><ul><li>Admins can now set a default model that applies to all team members when they first open Windsurf</li><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog/windsurf-next#1.9544.1018#1.9544.1018 Changelog Fri, 30 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.115 https://windsurf.com/changelog/windsurf-next#1.13.115 <h3>Bug Fixes and Improvements</h3><ul><li>Fix bug with permanently disconnected cascades</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.115#1.13.115 Changelog Tue, 27 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.114 https://windsurf.com/changelog/windsurf-next#1.13.114 <h3>Bug Fixes</h3><ul><li>Fixes commit message generation and codemaps suggestions</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.114#1.13.114 Changelog Mon, 26 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.113 https://windsurf.com/changelog/windsurf-next#1.13.113 <h3>Enterprise Features</h3><ul><li>Enterprise admins can now specify organization-wide allow and deny lists for command auto-execution.Learn more</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Bug fixes and performance improvements for diff zones</li><li>Improved overall stability and reliability</li><li>Addedpost_setup_worktreehook for initializing worktrees in Cascade</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.113#1.13.113 Changelog Sun, 25 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.110 https://windsurf.com/changelog/windsurf-next#1.13.110 <h3>Bug Fixes and Improvements</h3><ul><li>Improvements to GPT-5.2-Codex harness</li><li>Admins can now manage Windsurf restrictions via Windows Group Policy</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.110#1.13.110 Changelog Fri, 16 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.109 https://windsurf.com/changelog/windsurf-next#1.13.109 <h3>GPT-5.2-Codex</h3><p>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.</p><h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li><li>Improved stability and reliability</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.109#1.13.109 Changelog Wed, 14 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.108 https://windsurf.com/changelog/windsurf-next#1.13.108 <h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li><li>Improved stability and reliability</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.108#1.13.108 Changelog Mon, 12 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.107 https://windsurf.com/changelog/windsurf-next#1.13.107 <h3>New Features and Improvements</h3><ul><li>Plan Mode Update</li><li>Support for Skills</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.107#1.13.107 Changelog Fri, 09 Jan 2026 00:00:00 +0000 Windsurf Next 1.13.106 https://windsurf.com/changelog/windsurf-next#1.13.106 <h3>Gemini 3 Flash</h3><p>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.</p><ul><li>Blazing Fast Responses: Experience near-instant feedback with 3x faster performance than previous generations, perfect for iterative development compared to Gemini 3 Pro</li><li>Superior Coding Intelligence: Outperforms even Pro-tier models on key coding benchmarks (78% on SWE-bench Verified), providing more accurate code generation and debugging</li><li>Deep Multimodal Understanding: Easily process complex video, data extraction, and visual Q&A tasks with frontier-level reasoning</li></ul><h3>Bug Fixes and Improvements</h3><ul><li>Various bug fixes and performance improvements</li><li>Tab fixes and improvements</li></ul> https://windsurf.com/changelog/windsurf-next#1.13.106#1.13.106 Changelog Sat, 27 Dec 2025 00:00:00 +0000 Windsurf Next 1.13.104 https://windsurf.com/changelog/windsurf-next#1.13.104 <h3>Wave 13: Merry Shipmas</h3><p>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.</p><p><strong>SWE-1.5 Free</strong></p><p>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.</p><p><strong>Git Worktree Support</strong></p><p>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.</p><p><strong>Multi-Cascade Panes & Tabs</strong></p><p>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.</p><p><strong>Cascade Dedicated Terminal (Beta)</strong></p><p>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).</p><p>In this version, the Cascade Dedicated Te... https://windsurf.com/changelog/windsurf-next#1.13.104#1.13.104 Changelog Wed, 24 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.167 https://windsurf.com/changelog/windsurf-next#1.12.167 <h3>Bug Fixes and Performance Improvements</h3><ul><li>Fix race condition in the new dedicated terminal implementation</li><li>MCP fixes</li><li>Added setting to control scroll-to-next-hunk behavior in diff zones (default off)</li><li>Improve markdown completion</li><li>Preserve terminal colors and styling in the Cascade terminal output pane</li><li>Diff zone fixes and improvements</li><li>Support turbo mode for web fetch requests made by Cascade's Web Fetch tool</li><li>Support force killing commands in the new dedicated terminal</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.167#1.12.167 Changelog Tue, 23 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.166 https://windsurf.com/changelog/windsurf-next#1.12.166 <h3>New Features</h3><p><strong>Windsurf Dedicated Terminal</strong></p><ul><li>Introduces a new terminal for Cascade that improves command execution reliability (OS X only)</li></ul><p><strong>Multi Cascade Panels and Tabs</strong></p><ul><li>Adds support for multiple Cascade panels and tabs, allowing users to work with multiple Cascade sessions simultaneously</li></ul><p><strong>Cascade Hooks on Cascade Response</strong></p><ul><li>Allows users to configure Cascade Hooks on model response, specifically for logging all Cascade responses for auditing purposes</li></ul><p><strong>System-level Rules + Workflows</strong></p><ul><li>Allows enterprises to place rules and workflows files on users' machines with MDM policies</li></ul><h3>Bug Fixes</h3><ul><li>Fix opening old Cascade diffs</li><li>Fix various stability issues with the new terminal implementation</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.166#1.12.166 Changelog Sun, 21 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.165 https://windsurf.com/changelog/windsurf-next#1.12.165 <h3>Patch Fixes and Improvements</h3><ul><li>Fix opening old Cascade diffs</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.165#1.12.165 Changelog Tue, 16 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.164 https://windsurf.com/changelog/windsurf-next#1.12.164 <h3>Features</h3><p>Added a new "Promo" label to LLM models that are newly available or have special discount pricing</p><h3>Patch Fixes and Improvements</h3><ul><li>Enhances code block file path display to hide line numbers for whole files</li><li>Improves citation and language parsing in code blocks with a more robust regex pattern</li><li>Updates the UI for code block title bars to properly handle long paths with truncation</li><li>Fixes fallback diff handling for nonexistent files in code actions</li><li>Improves the auto-run command menu interface and its display logic</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.164#1.12.164 Changelog Mon, 15 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.163 https://windsurf.com/changelog/windsurf-next#1.12.163 <h3>Patch Fixes and Improvements</h3><p><strong>Agents & Tool Execution</strong></p><ul><li>Fixed Command-I functionality</li><li>Fixed Ctrl+C during tool execution not working properly</li><li>Fixed Go (fallback) processes not being killed properly</li><li>Fixed handling of parallel tool call errors</li></ul><p><strong>UI & Rendering</strong></p><ul><li>Fixed incorrect indentation from code blocks in terminal rendering</li><li>Fixed nested lists not rendering on new line in terminal markdown</li><li>Fixed content spacing issues</li><li>Fixed streaming flashes</li></ul><p><strong>Messaging & Platform</strong></p><ul><li>Fixed rate limit error message to say "no credits were used" instead of "credits have been refunded"</li><li>Fixed continuously rechecking for updates on macOS</li><li>Added a user-facing message when API providers are exhausted</li></ul><p><strong>Tooling & Onboarding</strong></p><ul><li>Improved MCP tool call visibility (show tool name, args, etc)</li><li>Added loading indicators when thinking or during long running operations</li><li>Allowed clicking items in the Windsurf onboarding pane</li><li>Respected gitignore patterns in the workspace directory tree</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.163#1.12.163 Changelog Sat, 13 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.162 https://windsurf.com/changelog/windsurf-next#1.12.162 <h3>Patch Fixes and Improvements</h3><ul><li>Reduce occurrence of "prompt is too long" errors</li><li>Request all supported scopes if no scopes are provided in MCP OAuth config</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.162#1.12.162 Changelog Fri, 12 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.161 https://windsurf.com/changelog/windsurf-next#1.12.161 <h3>GPT-5.2</h3><p>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.</p><p>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</p><p>Download thelatest version on Windsurfto try it out!</p><h3>Bug fixes and improvements</h3><ul><li>General Windsurf stability and performance improvements</li><li>General Tab (Supercomplete) improvements and stability</li><li>Fixes issues with Cascade running commands that could not be cancelled during certain long-running processes</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.161#1.12.161 Changelog Thu, 11 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.160 https://windsurf.com/changelog/windsurf-next#1.12.160 <h3>Diff Zones</h3><ul><li>Fixes issues with diff zones not rendering correctly or jumping to the end of a file when editing</li></ul><h3>Lifeguard</h3><ul><li>Fixes various Lifeguard bugs and stability issues</li></ul><h3>Tab (Supercomplete)</h3><ul><li>Improves reliability of Tab autocomplete</li><li>Makes Tab more responsive and faster in the appropiate circumstances</li></ul><h3>MCP Servers</h3><ul><li>Added support forMCP prompts</li><li>Added toggles to enable/disable MCPs in the Cascade header</li></ul><h3>Bug fixes and improvements</h3><ul><li>General stability and performance improvements</li><li>Fixes issues with login timing out too quickly during onboarding</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.160#1.12.160 Changelog Wed, 10 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.158 https://windsurf.com/changelog/windsurf-next#1.12.158 <h3>Features & Tools</h3><p><strong>Cascade Hooks on User Prompts</strong></p><ul><li>Users can now configure Cascade Hooks on user prompts for logging all user prompts and blocking policy-violating prompts.</li></ul><p><strong>Worktree / Arena Mode</strong></p><ul><li>Added support for Worktree and Arena Mode.</li></ul><p><strong>MCP Servers</strong></p><ul><li>Added support for GitLab remote MCP.</li><li>Added OAuth support for GitHub remote MCP.</li><li>Fixed an issue where every MCP would reauth on opening Windsurf.</li></ul><h3>General Improvements</h3><ul><li>General performance and stability improvements.</li><li>Improvements for Tab (Supercomplete) autocomplete reliability.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.158#1.12.158 Changelog Mon, 08 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.157 https://windsurf.com/changelog/windsurf-next#1.12.157 <h3>GPT-5.1-Codex Max</h3><p>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.</p> https://windsurf.com/changelog/windsurf-next#1.12.157#1.12.157 Changelog Thu, 04 Dec 2025 00:00:00 +0000 Windsurf Next 1.12.153 https://windsurf.com/changelog/windsurf-next#1.12.153 <h3>Claude Opus 4.5</h3><p>You can now use Claude Opus 4.5 in Windsurf!</p><p>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).</p><p>This model is available to all paid Windsurf subscribers.</p> https://windsurf.com/changelog/windsurf-next#1.12.153#1.12.153 Changelog Tue, 25 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.152 https://windsurf.com/changelog/windsurf-next#1.12.152 <h3>AI Models</h3><p><strong>Gemini 3 Pro</strong></p><ul><li>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.</li><li>Resolved an issue where Gemini 3 Pro caused internal Cascade errors for some users.</li></ul><p><strong>SWE-1.5</strong></p><ul><li>Fixed notebook tool functionality for SWE-1.5.</li><li>Addressed an issue where SWE-1.5 would unexpectedly stop or return "No response requested".</li></ul><p><strong>Sonnet 4.5</strong></p><ul><li>Added support for Sonnet 4.5 with a 1M token context window.</li><li>Reduced the frequency of unnecessary Markdown file creation by Sonnet 4.5.</li></ul><p><strong>GPT-5.1 Codex and Codex Mini</strong></p><ul><li>Added support for GPT-5.1 Codex and Codex Mini with low reasoning effort configuration.</li></ul><h3>Features & Tools</h3><p><strong>Codemaps</strong></p><ul><li>Improved reliability of saving and retrieving Codemaps.</li><li>Fixed Codemap sorting and increased the limit of visible open Codemaps.</li><li>Resolved issues with mentioning Codemaps in Cascade.</li></ul><p><strong>MCP Servers</strong></p><ul><li>Fixed scope handling and OAuth authentication flows for various MCP servers.</li><li>Resolved issues preventing installation of new MCP servers.</li><li>Added support for handling embedded resource content in tool call responses.</li></ul><p><strong>Tab Completion</strong></p><ul><li>Improved latency, responsiveness, and accuracy of autocomplete.</li></ul><p>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.</p><p><strong>Vibe and Replace</strong></p><ul><li>Fixed reliability issues with Vibe and Replace.</li></ul><p><strong>Fast Context</strong></p><ul><li>Added support for.codeiumignoreand.gitignorefor Fast Context.</li></ul><h3>General Improvements</h3><ul><l... https://windsurf.com/changelog/windsurf-next#1.12.152#1.12.152 Changelog Fri, 21 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.150 https://windsurf.com/changelog/windsurf-next#1.12.150 <h3>Worktree Preview</h3><p>You can now use Windsurf's AI agent with worktrees to explore and modify code across multiple branches simultaneously.</p><h3>MCP Server Improvements</h3><ul><li>Fixes issues with scopes and OAuth authentication flows for multiple MCP servers</li></ul><h3>Tab Completion</h3><ul><li>Improved latency, responsiveness, and accuracy of autocomplete.</li></ul><h3>Context Window Indicator Beta</h3><ul><li>Context window indicator now shows the current context window used by the Cascade AI agent.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.150#1.12.150 Changelog Fri, 14 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.149 https://windsurf.com/changelog/windsurf-next#1.12.149 <h3>GPT-5.1 Priority Mode</h3><ul><li>Added priority processing support for GPT-5.1 models, providing guaranteed low-latency responses for faster (~50 tokens/sec), more reliable AI assistance.</li><li>Priority processing costs 2x the standard rate, which will be reflected in the Windsurf credit system.</li></ul><h3>Patch Fixes and Improvements</h3><ul><li>Fixed tool call calling issues for GPT-5.1-Codex and GPT-5.1-Codex Mini models</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.149#1.12.149 Changelog Fri, 14 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.148 https://windsurf.com/changelog/windsurf-next#1.12.148 <h3>GPT-5.1 and GPT-5.1-Codex</h3><p>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.</p><p>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.</p><h3>Patch Fixes and Improvements</h3><p><strong>Removed Features</strong></p><ul><li>Knowledge Base: Removed the Knowledge Base feature</li></ul><p><strong>Bug Fixes</strong></p><ul><li>PowerShell + Turbo Mode: Fixed an issue where PowerShell was not running commands when Turbo Mode is enabled</li></ul><p><strong>Shortcuts</strong></p><ul><li>Attach current file to Cascade: New shortcutOption/Alt+Cmd+Lwhen in an editor to attach the current file to Cascade</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.148#1.12.148 Changelog Thu, 13 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.144 https://windsurf.com/changelog/windsurf-next#1.12.144 <h3>Features</h3><p><strong>MCP Improvements</strong></p><ul><li>Loading state indicators: Show loading state per installed MCP to improve visibility during initialization</li><li>Refresh only edited MCPs: Whenmcp_config.jsonis modified, only the affected MCP server instance is initialized/refreshed - no other instances are refreshed</li><li>Increased initialization timeout: MCP initialization timeout increased to 60s</li><li>Refresh button for error states: Show refresh button for MCPs in error state to allow manual recovery</li></ul><p><strong>Cascade Hooks</strong></p><ul><li>Enterprise feature: New Cascade Hooks feature available</li><li>Public documentation:Draft documentationwith details and descriptions of hooks available in Windsurf Docs</li></ul><p><strong>Bug Fixes</strong></p><ul><li>Vim extension typing lag: Fixed bug causing typing lag when Vim extension is enabled</li></ul><p><strong>SWE 1.5 Image Support</strong></p><ul><li>Image understanding: Images are now supported in SWE 1.5, enabling visual content analysis</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.144#1.12.144 Changelog Thu, 06 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.143 https://windsurf.com/changelog/windsurf-next#1.12.143 <h3>Features</h3><p><strong>Improvements to SWE-1.5 + Claude Sonnet 4.5 Mode</strong></p><p>Enhanced the SWE-1.5 + Claude Sonnet 4.5 mode with improved performance and reliability for better coding assistance.</p> https://windsurf.com/changelog/windsurf-next#1.12.143#1.12.143 Changelog Wed, 05 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.142 https://windsurf.com/changelog/windsurf-next#1.12.142 <h3>Features</h3><p><strong>Expanded Codemaps</strong></p><p>Codemaps now include powerful new capabilities:</p><ul><li>Chat with map- Interact directly with your codebase visualizations</li><li>Mermaid diagrams- Generate visual diagrams within maps for better code understanding</li><li>Cascade suggestions- Get AI-powered suggestions directly in your maps</li><li>Map option in chat/edit nudges- Easily create maps from chat and edit interactions</li><li>Smart mode option- Enhanced intelligent assistance when working with maps</li></ul><p><strong>Cascade Summarization Fix</strong></p><p>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.</p><p><strong>Sonnet 4.5 Support for SWE 1.5 Planning</strong></p><p>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.</p><p><strong>MCP Enhancements</strong></p><ul><li>Path component handling- Improved support for MCP URLs with path components (e.g., Smithery MCPs)</li><li>OAuth flow improvements- Better OAuth flow for streamable HTTP MCPs (e.g., Canva, ServiceNow's internal MCP)</li></ul><h3>Bug fixes and improvements</h3><p><strong>Performance Improvements</strong></p><ul><li>Sticky scroll lag fixes- Resolved lag spikes when using sticky scroll with Vim bindings</li><li>General slowness fixes- Addressed performance issues caused by VSCode OSS update</li><li>Terminal rendering optimization- Fixed rendering loop that caused 500ms+ delays on first terminal open</li></ul><p><strong>Terminal Fixes</strong></p><ul><li>PowerShell improvements- Fixed Windows terminal integration issues where commands would appear stuck</li><li>Shell theme compatibility- Resolved edge cases with custom shell themes (zsh, fish, powerlevel10k, etc.) that could cause Windsurf to break or show... https://windsurf.com/changelog/windsurf-next#1.12.142#1.12.142 Changelog Mon, 03 Nov 2025 00:00:00 +0000 Windsurf Next 1.12.140 https://windsurf.com/changelog/windsurf-next#1.12.140 <h3>Features</h3><p>New beta plan mode (type /plan in the Cascade chat input to activate it).</p><p>Expanded Codemaps:</p><ul><li>Chat with map</li><li>Mermaid diagrams in maps</li><li>Cascade suggestions for maps</li><li>Chat / edit nudge includes “map option”</li><li>Smart mode option</li></ul><h3>Bug fixes and improvements</h3><ul><li>Fixes for lag spikes when using sticky scroll</li><li>Fixes for general slowness caused by VSCode OSS update</li><li>Powershell fixes for Windows terminal integration / commands appearing stuck.</li><li>Fixes for certain edge cases around shells with custom themes.</li><li>Fixed an issue where the editor would freeze when opening the terminal</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.140#1.12.140 Changelog Fri, 31 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.138 https://windsurf.com/changelog/windsurf-next#1.12.138 <h3>Falcon Alpha</h3><p>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!</p><h3>Patch Fixes and Improvements</h3><ul><li>Various performance improvements and bug fixes.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.138#1.12.138 Changelog Sun, 26 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.136 https://windsurf.com/changelog/windsurf-next#1.12.136 <h3>Patch Fixes and Improvements</h3><ul><li>Support and fixes for AGENTS.md</li><li>Improvements and bug fixes for Codemaps.</li><li>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.</li><li>New auto-linting behavior that speeds up Cascade.</li><li>Fix for MCP Marketplace not respecting team whitelist options.</li><li>Fixes for Jupyter Notebook tool.</li><li>Fixes for Memories, Rules, and Workflows.</li><li>General bug fixes and improvements.</li><li>Performance optimizations and stability enhancements.</li></ul><h3>Dependencies</h3><ul><li>Updated Code OSS to version 1.105.0 (Electron: 37.6.0, Chromium: 138.0.7204.251)</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.136#1.12.136 Changelog Wed, 22 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.133 https://windsurf.com/changelog/windsurf-next#1.12.133 <h3>Patch Fixes</h3><ul><li>Bug fixes and improvements.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.133#1.12.133 Changelog Wed, 22 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.132 https://windsurf.com/changelog/windsurf-next#1.12.132 <h3>Patch Fixes</h3><ul><li>Bug fixes and improvements.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.132#1.12.132 Changelog Tue, 21 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.131 https://windsurf.com/changelog/windsurf-next#1.12.131 <h3>Patch Fixes</h3><ul><li>Bug fixes and improvements.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.131#1.12.131 Changelog Mon, 20 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.130 https://windsurf.com/changelog/windsurf-next#1.12.130 <h3>Patch Fixes</h3><ul><li>Early preview of Windsurf's new Tab model.</li><li>Bug fixes and improvements.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.130#1.12.130 Changelog Thu, 16 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.129 https://windsurf.com/changelog/windsurf-next#1.12.129 <h3>Patch Fixes</h3><ul><li>Bug fixes and improvements.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.129#1.12.129 Changelog Thu, 16 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.127 https://windsurf.com/changelog/windsurf-next#1.12.127 <h3>Patch Fixes</h3><ul><li>Fixes issues with the experimental Cascade tool for finding context not working properly.</li><li>Improvements and bug fixes for the beta Codemaps feature.</li><li>Improvements to the Lifeguard (Beta) feature.</li><li>Fixes issue with custom MCP servers not being displayed correctly in the new MCP panel.</li><li>Fixes issue where some bash commands would get stuck.</li><li>Fixes issue where certain models couldn't create or edit Jupyter notebooks.</li><li>General bug fixes and improvements.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.127#1.12.127 Changelog Tue, 14 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.126 https://windsurf.com/changelog/windsurf-next#1.12.126 <h3>Patch Fixes</h3><ul><li>Various improvements to the experimental Cascade tool which searches and finds relevant files.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.126#1.12.126 Changelog Sat, 11 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.125 https://windsurf.com/changelog/windsurf-next#1.12.125 <h3>Experimental Cascade Tool</h3><ul><li>Experimental Cascade tool to quickly search for files and find relevant context.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.125#1.12.125 Changelog Wed, 08 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.124 https://windsurf.com/changelog/windsurf-next#1.12.124 <h3>Lifeguard (Beta) Updates</h3><ul><li>Try out Lifeguard by clicking the Lifeguard icon at the top right corner of your editor.</li></ul><h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.124#1.12.124 Changelog Tue, 07 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.121 https://windsurf.com/changelog/windsurf-next#1.12.121 <h3>Lifeguard</h3><ul><li>Beta preview of lifeguard, a tool to help you find and resolve bugs inside your IDE.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.121#1.12.121 Changelog Thu, 02 Oct 2025 00:00:00 +0000 Windsurf Next 1.12.119 https://windsurf.com/changelog/windsurf-next#1.12.119 <h3>Codemaps</h3><ul><li>Beta preview of codemaps: open the codemaps pane to try it out!</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.119#1.12.119 Changelog Tue, 30 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.118 https://windsurf.com/changelog/windsurf-next#1.12.118 <h3>Claude Sonnet 4.5</h3><ul><li>Claude Sonnet 4.5 is now available</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.118#1.12.118 Changelog Mon, 29 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.117 https://windsurf.com/changelog/windsurf-next#1.12.117 <h3>Patch Fixes</h3><ul><li>Fix using MCP tools with certain models.</li><li>Fixes to terminal issues on Windows.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.117#1.12.117 Changelog Fri, 26 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.115 https://windsurf.com/changelog/windsurf-next#1.12.115 <h3>Patch Fixes</h3><ul><li>Fix to Cascade slowness issues</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.115#1.12.115 Changelog Wed, 24 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.114 https://windsurf.com/changelog/windsurf-next#1.12.114 <h3>GPT-5-Codex is now in Windsurf!</h3><p>GPT-5-Codex is now available for free (0x credits) for a limited time for paid users!</p><p>Free users can use GPT-5-Codex as well for 0.5x credits.</p> https://windsurf.com/changelog/windsurf-next#1.12.114#1.12.114 Changelog Tue, 23 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.113 https://windsurf.com/changelog/windsurf-next#1.12.113 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.113#1.12.113 Changelog Thu, 18 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.112 https://windsurf.com/changelog/windsurf-next#1.12.112 <h3>Cascade Improvements</h3><ul><li>Queued messages in Cascade</li></ul><h3>Patch Fixes</h3><ul><li>Various improvements and bug fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.112#1.12.112 Changelog Sat, 13 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.110 https://windsurf.com/changelog/windsurf-next#1.12.110 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.110#1.12.110 Changelog Mon, 08 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.109 https://windsurf.com/changelog/windsurf-next#1.12.109 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.109#1.12.109 Changelog Tue, 02 Sep 2025 00:00:00 +0000 Windsurf Next 1.12.108 https://windsurf.com/changelog/windsurf-next#1.12.108 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.108#1.12.108 Changelog Thu, 28 Aug 2025 00:00:00 +0000 Windsurf Next 1.12.105 https://windsurf.com/changelog/windsurf-next#1.12.105 <h3>Patch Fixes</h3><ul><li>Minor improvements and bug fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.105#1.12.105 Changelog Fri, 15 Aug 2025 00:00:00 +0000 Windsurf Next 1.12.103 https://windsurf.com/changelog/windsurf-next#1.12.103 <h3>Improvements</h3><ul><li>Early access to Wave 12 features.</li></ul> https://windsurf.com/changelog/windsurf-next#1.12.103#1.12.103 Changelog Thu, 14 Aug 2025 00:00:00 +0000 Windsurf Next 1.11.105 https://windsurf.com/changelog/windsurf-next#1.11.105 <h3>Patch Fixes</h3><ul><li>Performance fixes, especially relating to long chats</li></ul> https://windsurf.com/changelog/windsurf-next#1.11.105#1.11.105 Changelog Fri, 01 Aug 2025 00:00:00 +0000 Windsurf Next 1.11.104 https://windsurf.com/changelog/windsurf-next#1.11.104 <h3>Patch Fixes</h3><ul><li>Miscellaneous fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.11.104#1.11.104 Changelog Fri, 01 Aug 2025 00:00:00 +0000 Windsurf Next 1.11.103 https://windsurf.com/changelog/windsurf-next#1.11.103 <h3>Patch fixes</h3><ul><li>Miscellaneous fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.11.103#1.11.103 Changelog Wed, 30 Jul 2025 00:00:00 +0000 Windsurf Next 1.11.102 https://windsurf.com/changelog/windsurf-next#1.11.102 <h3>Patch Fixes</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.11.1</li></ul> https://windsurf.com/changelog/windsurf-next#1.11.102#1.11.102 Changelog Wed, 23 Jul 2025 00:00:00 +0000 Windsurf Next 1.11.101 https://windsurf.com/changelog/windsurf-next#1.11.101 <h3>Patch Fixes</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.11.0</li></ul> https://windsurf.com/changelog/windsurf-next#1.11.101#1.11.101 Changelog Thu, 17 Jul 2025 00:00:00 +0000 Windsurf Next 1.11.100 https://windsurf.com/changelog/windsurf-next#1.11.100 <h3>Speak to Cascade</h3><p><strong>Voice</strong></p><ul><li>Users can now speak into the chat rather than having to type things out.</li></ul><p><strong>@-mentioning conversations</strong></p><ul><li>@-mention the first conversation so Cascade has full context of it as it goes to write tests for you.</li></ul><p><strong>Deeper Browser integration</strong></p><ul><li>Chat with Cascade about tabs that are open in the Browser using @-mentions</li></ul><p><strong>JetBrains improvements</strong></p><ul><li>Planning Mode, Workflows, and file-based Rules are now available for Cascade on JetBrains</li></ul><p><strong>Improvements</strong></p><ul><li>Now you can @-mention terminal in Cascade.</li><li>You can turn on the Auto-Continue setting to have Cascade automatically continue its response if it hits a limit.</li><li>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).</li><li>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</li></ul> https://windsurf.com/changelog/windsurf-next#1.11.100#1.11.100 Changelog Wed, 16 Jul 2025 00:00:00 +0000 Windsurf Next 1.10.113 https://windsurf.com/changelog/windsurf-next#1.10.113 <h3>Patch fixes</h3><ul><li>Miscellaneous fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.113#1.10.113 Changelog Tue, 08 Jul 2025 00:00:00 +0000 Windsurf Next 1.10.112 https://windsurf.com/changelog/windsurf-next#1.10.112 <h3>Cascade Improvements</h3><ul><li>Improvements to Cascade reliability</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.112#1.10.112 Changelog Thu, 03 Jul 2025 00:00:00 +0000 Windsurf Next 1.10.111 https://windsurf.com/changelog/windsurf-next#1.10.111 <h3>Patch fixes</h3><ul><li>Miscellaneous fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.111#1.10.111 Changelog Wed, 02 Jul 2025 00:00:00 +0000 Windsurf Next 1.10.109 https://windsurf.com/changelog/windsurf-next#1.10.109 <h3>Patch fixes</h3><ul><li>Miscellaneous fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.109#1.10.109 Changelog Wed, 25 Jun 2025 00:00:00 +0000 Windsurf Next 1.10.108 https://windsurf.com/changelog/windsurf-next#1.10.108 <h3>Patch Fixes</h3><ul><li>Fixes to default model selection for new users</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.108#1.10.108 Changelog Tue, 24 Jun 2025 00:00:00 +0000 Windsurf Next 1.10.107 https://windsurf.com/changelog/windsurf-next#1.10.107 <h3>Patch Fixes</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.10.5</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.107#1.10.107 Changelog Thu, 19 Jun 2025 00:00:00 +0000 Windsurf Next 1.10.106 https://windsurf.com/changelog/windsurf-next#1.10.106 <h3>Patch Fixes</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.10.4</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.106#1.10.106 Changelog Wed, 18 Jun 2025 00:00:00 +0000 Windsurf Next 1.10.105 https://windsurf.com/changelog/windsurf-next#1.10.105 <h3>Planning Mode</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.10.3</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.105#1.10.105 Changelog Thu, 12 Jun 2025 00:00:00 +0000 Windsurf Next 1.10.103 https://windsurf.com/changelog/windsurf-next#1.10.103 <h3>Planning Mode</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.10.1</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.103#1.10.103 Changelog Tue, 10 Jun 2025 00:00:00 +0000 Windsurf Next 1.10.101 https://windsurf.com/changelog/windsurf-next#1.10.101 <h3>Patch fixes</h3><ul><li>Miscellaneous fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.101#1.10.101 Changelog Sat, 07 Jun 2025 00:00:00 +0000 Windsurf Next 1.10.100 https://windsurf.com/changelog/windsurf-next#1.10.100 <h3>Updates</h3><ul><li>Removal of legacy mode</li><li>Icons in @-mentions</li><li>Theme-aware codeblocks with refreshed design</li><li>Native terminal in Cascade panel</li></ul> https://windsurf.com/changelog/windsurf-next#1.10.100#1.10.100 Changelog Thu, 05 Jun 2025 00:00:00 +0000 Windsurf Next 1.9.104 https://windsurf.com/changelog/windsurf-next#1.9.104 <h3>Patch Fixes</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.9.4</li></ul> https://windsurf.com/changelog/windsurf-next#1.9.104#1.9.104 Changelog Tue, 03 Jun 2025 00:00:00 +0000 Windsurf Next 1.9.102 https://windsurf.com/changelog/windsurf-next#1.9.102 <h3>BYOK (Anthropic Key)</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.9.2</li></ul> https://windsurf.com/changelog/windsurf-next#1.9.102#1.9.102 Changelog Thu, 22 May 2025 00:00:00 +0000 Windsurf Next 1.9.101 https://windsurf.com/changelog/windsurf-next#1.9.101 <h3>SWE-1 Improvements</h3><ul><li>Adds multi-modal (image) support to SWE-1</li></ul> https://windsurf.com/changelog/windsurf-next#1.9.101#1.9.101 Changelog Tue, 20 May 2025 00:00:00 +0000 Windsurf Next 1.9.100 https://windsurf.com/changelog/windsurf-next#1.9.100 <h3>New Family of SWE-1 Models</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.9.0</li></ul> https://windsurf.com/changelog/windsurf-next#1.9.100#1.9.100 Changelog Thu, 15 May 2025 00:00:00 +0000 Windsurf Next 1.8.106 https://windsurf.com/changelog/windsurf-next#1.8.106 <h3>Patch Fixes</h3><ul><li>Fixes on Windows signing to prevent warnings from Windows Defender</li></ul> https://windsurf.com/changelog/windsurf-next#1.8.106#1.8.106 Changelog Fri, 09 May 2025 00:00:00 +0000 Windsurf Next 1.8.105 https://windsurf.com/changelog/windsurf-next#1.8.105 <h3>Patch Fixes</h3><p>Based on the latest release of the Windsurf Editor, v1.8.2</p> https://windsurf.com/changelog/windsurf-next#1.8.105#1.8.105 Changelog Tue, 06 May 2025 00:00:00 +0000 Windsurf Next 1.8.103 https://windsurf.com/changelog/windsurf-next#1.8.103 <h3>Teams Features</h3><p>Based on the latest release of the Windsurf Editor, v1.8.0</p> https://windsurf.com/changelog/windsurf-next#1.8.103#1.8.103 Changelog Tue, 06 May 2025 00:00:00 +0000 Windsurf Next 1.8.102 https://windsurf.com/changelog/windsurf-next#1.8.102 <h3>Improvements</h3><p>Some improvements to app icons, fixes to SSH server connection, and UI Polish for Cascade Plugins.</p> https://windsurf.com/changelog/windsurf-next#1.8.102#1.8.102 Changelog Mon, 05 May 2025 00:00:00 +0000 Windsurf Next 1.8.101 https://windsurf.com/changelog/windsurf-next#1.8.101 <h3>New Features</h3><p><strong>Cascade Plugin Panel</strong></p><ul><li>New panel in Cascade for managing MCP Servers</li><li>Easier one-click uninstall and install</li><li>Easier search</li><li>MCP now has MCP resources and multimodel responses</li><li>More MCP Server options coming soon</li></ul><p><strong>Cascade Customization Panel</strong></p><ul><li>Revamped Memories panel to include rules, workflows, and memories</li></ul><p><strong>Revamped rules</strong></p><ul><li>Support for workspace-style rules in.windsurf/rules</li><li>Custom triggers when to activate a rule</li></ul><p><strong>Workflows</strong></p><ul><li>Support for quick instructions for Cascade to take on mini-tasks</li><li>.windsurf/workflowshouses workflows that Cascade can do in the current workspace</li><li>Workflows can be found as slash commands (/) in the Cascade input</li></ul><p><strong>Cascade Improvements</strong></p><ul><li>Conversation sharing with a teams-only accessible URL</li></ul><p><strong>Misc</strong></p><ul><li>Redesigned Model Selector</li><li>Continue button when reaching individual tool call limit</li><li>Hunk accept/reject widget now has a compact mode to cover less code</li><li>Tab respects files mentioned incodeiumignore</li></ul> https://windsurf.com/changelog/windsurf-next#1.8.101#1.8.101 Changelog Thu, 01 May 2025 00:00:00 +0000 Windsurf Next 1.7.104 https://windsurf.com/changelog/windsurf-next#1.7.104 <h3>Patch Fixes</h3><p>Based on the latest release of the Windsurf Editor, v1.7.3</p> https://windsurf.com/changelog/windsurf-next#1.7.104#1.7.104 Changelog Tue, 29 Apr 2025 00:00:00 +0000 Windsurf Next 1.7.103 https://windsurf.com/changelog/windsurf-next#1.7.103 <h3>New App Icon & Upgraded Free Tier</h3><p>Based on the latest release of the Windsurf Editor, v1.7.2</p> https://windsurf.com/changelog/windsurf-next#1.7.103#1.7.103 Changelog Mon, 28 Apr 2025 00:00:00 +0000 Windsurf Next 1.7.102 https://windsurf.com/changelog/windsurf-next#1.7.102 <p><strong>Patch Fixes</strong></p><ul><li>Updates IDE marketplace link by mirroring Open VSX</li></ul> https://windsurf.com/changelog/windsurf-next#1.7.102#1.7.102 Changelog Thu, 24 Apr 2025 00:00:00 +0000 Windsurf Next 1.7.101 https://windsurf.com/changelog/windsurf-next#1.7.101 <p><strong>Experimental Improvements</strong></p><ul><li>Bug fixes</li><li>Performance optimizations</li><li>VS Code 1.98.0 Updates</li></ul> https://windsurf.com/changelog/windsurf-next#1.7.101#1.7.101 Changelog Tue, 22 Apr 2025 00:00:00 +0000 Windsurf Next 1.7.100 https://windsurf.com/changelog/windsurf-next#1.7.100 <p><strong>Updated and Simplified Pricing</strong></p><ul><li>We're simplifying our pricing model by removing Flow Action Credits</li><li>Change takes effect April 21st, 2025</li><li>Plans now come with prompt credits with add-on credits available for purchase</li></ul><p><strong>User Prompt Credits</strong></p><ul><li>Plans now come with prompt credits, which are consumed per every message sent and not via every tool call</li><li>Add-on credits are available for purchase</li><li>Auto-top off (with max limits) can be enabled via profile</li></ul><p><strong>Existing Plans</strong></p><ul><li>Existing plans are migrating over to the new pricing model</li><li>For more information, please visit thePricing page</li></ul> https://windsurf.com/changelog/windsurf-next#1.7.100#1.7.100 Changelog Mon, 21 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.121 https://windsurf.com/changelog/windsurf-next#1.6.121 <p><strong>New o4-mini models available and Free (Limited Time)</strong></p><ul><li>Windsurf now supports the o4-mini medium and o4-mini high models, which are free for all users</li><li>Usage in Windsurf is free for a limited time from April 16th to April 21st</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.121#1.6.121 Changelog Wed, 16 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.120 https://windsurf.com/changelog/windsurf-next#1.6.120 <p><strong>Patch Fixes</strong></p><ul><li>Bug fixes and improvements around credit banners</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.120#1.6.120 Changelog Tue, 15 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.119 https://windsurf.com/changelog/windsurf-next#1.6.119 <p><strong>New GPT 4.1 Model available and Free (Limited Time)</strong></p><ul><li>Windsurf now supports the new GPT 4.1 model, which is free for all users</li><li>Usage in Windsurf is free for a limited time from April 14th to April 21st</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.119#1.6.119 Changelog Mon, 14 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.118 https://windsurf.com/changelog/windsurf-next#1.6.118 <p><strong>Improvements</strong></p><ul><li>Cascade can now check the status of deploys</li><li>Fixes to duplicated rules</li><li>Commit Generation Fixes on Windows</li><li>Fixes for Commit Generation through the command palette</li><li>Cascade UI Fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.118#1.6.118 Changelog Sat, 05 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.117 https://windsurf.com/changelog/windsurf-next#1.6.117 <p><strong>Fixes</strong></p><ul><li>Fixes to "Remote - WSL" extension</li><li>Minor UX fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.117#1.6.117 Changelog Thu, 03 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.116 https://windsurf.com/changelog/windsurf-next#1.6.116 <p><strong>App Deploys from Windsurf Wave 6</strong></p><ul><li>App Deploys are now available in Windsurf - Next</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.116#1.6.116 Changelog Wed, 02 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.115 https://windsurf.com/changelog/windsurf-next#1.6.115 <p><strong>Bug Fixes and Improvements</strong></p><ul><li>Fixed Cascade top menu button click opening file explorer on Windows</li><li>Fixed occasional extra space inserted beneath Cascade input</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.115#1.6.115 Changelog Tue, 01 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.114 https://windsurf.com/changelog/windsurf-next#1.6.114 <p><strong>Bug Fixes and Improvements</strong></p><ul><li>Fixed sound on startup</li><li>Fixed issues around adding rules</li><li>Fixed generate project with Cascade entry point</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.114#1.6.114 Changelog Tue, 01 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.113 https://windsurf.com/changelog/windsurf-next#1.6.113 <p><strong>April 1st Release</strong></p><ul><li>Introduced Completion Sound for Cascade (Beta)New setting to enable a sound when Cascade has finished generating (default off)</li><li>New setting to enable a sound when Cascade has finished generating (default off)</li><li>Introduced Sound for Windsurf Tab (Beta)New setting to enable a sound on tab completion (default off)</li><li>New setting to enable a sound on tab completion (default off)</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.113#1.6.113 Changelog Tue, 01 Apr 2025 00:00:00 +0000 Windsurf Next 1.6.112 https://windsurf.com/changelog/windsurf-next#1.6.112 <p><strong>Updates</strong></p><ul><li>UI fixes to Cascade</li><li>Improvements to the no-internet state</li><li>Commit message generation reliability and quality</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.112#1.6.112 Changelog Mon, 31 Mar 2025 00:00:00 +0000 Windsurf Next 1.6.111 https://windsurf.com/changelog/windsurf-next#1.6.111 <p><strong>Updates</strong></p><ul><li>UI Fixes and updates</li><li>Cascade icon returned in upper corner</li><li>Improvements to terminal output rendering in Cascade</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.111#1.6.111 Changelog Fri, 28 Mar 2025 00:00:00 +0000 Windsurf Next 1.6.110 https://windsurf.com/changelog/windsurf-next#1.6.110 <p><strong>Improvements</strong></p><ul><li>Enabled Cascade to wait for background commands to finish when querying command status.</li><li>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.</li><li>When enabled, Cascade will autonomously generate memories to remember important context.</li><li>When disabled, Cascade will only create memories when you explicitly ask.</li><li>Bug fixes in SSH extension (when RemoteCommand was enabled)</li><li>Redesigned the terminal tool step. Inputs can be sent to the terminal via "Open terminal".</li><li>Underlined links are now clickable in Cascade and user messages.</li><li>New conversation screen now has a new toolbar for tools like MCP and Preview.</li><li>Cascade input is persisted across new conversation screen and an active conversation.</li><li>Cascade now has a quick table of contents of all past user messagesNew ability to revert or scroll to any past message</li><li>New ability to revert or scroll to any past message</li><li>Added support for custom SSH paths</li><li>Add workspace search as context to Windsurf Tab</li><li>Adds auto generate commit messages in Source Control Panel</li><li>New Rules and Memories panel in Cascade</li><li>Improvements to long conversation performance</li><li>Two new app icons (for Mac)</li><li>Support for SSE-based MCP</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.110#1.6.110 Changelog Wed, 26 Mar 2025 00:00:00 +0000 Windsurf Next 1.6.106 https://windsurf.com/changelog/windsurf-next#1.6.106 <p><strong>Patch fixes</strong></p><ul><li>Bug/stability fixes</li><li>Adds auto generate commit messages in Source Control Panel</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.106#1.6.106 Changelog Thu, 20 Mar 2025 00:00:00 +0000 Windsurf Next 1.6.105 https://windsurf.com/changelog/windsurf-next#1.6.105 <p><strong>Improvements</strong></p><ul><li>Further improvements to the tab completions experience</li></ul><p><strong>Patch fixes</strong></p><ul><li>Bug/stability fixes</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.105#1.6.105 Changelog Sat, 15 Mar 2025 00:00:00 +0000 Windsurf Next 1.6.103 https://windsurf.com/changelog/windsurf-next#1.6.103 <p><strong>Improvements</strong></p><ul><li>More improvements to the tab completions experience</li><li>Improvements to Cascade "start with history"</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.103#1.6.103 Changelog Fri, 14 Mar 2025 00:00:00 +0000 Windsurf Next 1.6.101 https://windsurf.com/changelog/windsurf-next#1.6.101 <p><strong>Improvements</strong></p><ul><li>More improvements to the tab completions experience</li><li>Completions can now use your clipboard for suggestions, must be enabled in settings</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.101#1.6.101 Changelog Tue, 11 Mar 2025 00:00:00 +0000 Windsurf Next 1.6.100 https://windsurf.com/changelog/windsurf-next#1.6.100 <p><strong>Improvements</strong></p><ul><li>Improvements to the tab completions experience</li></ul> https://windsurf.com/changelog/windsurf-next#1.6.100#1.6.100 Changelog Fri, 07 Mar 2025 00:00:00 +0000 Windsurf Next 1.5.108 https://windsurf.com/changelog/windsurf-next#1.5.108 <p><strong>Patch Fixes</strong></p><ul><li>Improvements from Windsurf v1.4.4</li></ul> https://windsurf.com/changelog/windsurf-next#1.5.108#1.5.108 Changelog Thu, 06 Mar 2025 00:00:00 +0000 Windsurf Next 1.5.107 https://windsurf.com/changelog/windsurf-next#1.5.107 <p><strong>Patch Fixes</strong></p><ul><li>Builds off of Windsurf v1.4.3</li></ul> https://windsurf.com/changelog/windsurf-next#1.5.107#1.5.107 Changelog Wed, 05 Mar 2025 00:00:00 +0000 Windsurf Next 1.3.110 https://windsurf.com/changelog/windsurf-next#1.3.110 <p><strong>Patch Fixes</strong></p><ul><li>Fixes crashes due to permissions errors on Ubuntu 24.04</li></ul> https://windsurf.com/changelog/windsurf-next#1.3.110#1.3.110 Changelog Mon, 03 Mar 2025 00:00:00 +0000 Windsurf Next 1.3.109 https://windsurf.com/changelog/windsurf-next#1.3.109 <h3>New operating system support</h3><ul><li>Beta support for Windows ARM64</li></ul> https://windsurf.com/changelog/windsurf-next#1.3.109#1.3.109 Changelog Sun, 02 Mar 2025 00:00:00 +0000 Windsurf Next 1.3.107 https://windsurf.com/changelog/windsurf-next#1.3.107 <p><strong>Patch Fixes</strong></p><ul><li>Builds off of Windsurf v1.3.10</li></ul> https://windsurf.com/changelog/windsurf-next#1.3.107#1.3.107 Changelog Fri, 28 Feb 2025 00:00:00 +0000 Windsurf Next 1.3.104 https://windsurf.com/changelog/windsurf-next#1.3.104 <p><strong>New Cascade Models</strong></p><ul><li>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.</li><li>Takes 1.0 user prompt credits on every message and 1.0 flow action credits on each tool call</li><li>Support for Claude 3.7 Sonnet ships with Thinking, with a 1.5x multiplier on credit cost.</li></ul> https://windsurf.com/changelog/windsurf-next#1.3.104#1.3.104 Changelog Tue, 25 Feb 2025 00:00:00 +0000 Windsurf Next 1.3.102 https://windsurf.com/changelog/windsurf-next#1.3.102 <h3>Fixes</h3><ul><li>Improved Cascade Base</li><li>New Configure MCP toolbar</li><li>Bug Fixes and Improvements</li></ul> https://windsurf.com/changelog/windsurf-next#1.3.102#1.3.102 Changelog Fri, 21 Feb 2025 00:00:00 +0000 Windsurf Next 1.3.101 https://windsurf.com/changelog/windsurf-next#1.3.101 <h3>Fixes</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.3.3</li><li>Fixes for model selection on reload</li></ul> https://windsurf.com/changelog/windsurf-next#1.3.101#1.3.101 Changelog Fri, 14 Feb 2025 00:00:00 +0000 Windsurf Next 1.2.109 https://windsurf.com/changelog/windsurf-next#1.2.109 <h3>Multiple Fixes</h3><ul><li>Fixes for User-Defined Memories, Settings, MCP config</li><li>Input toolbar now appears on empty conversation</li><li>Opens the correct changelog</li></ul> https://windsurf.com/changelog/windsurf-next#1.2.109#1.2.109 Changelog Thu, 13 Feb 2025 00:00:00 +0000 Windsurf Next 1.2.107 https://windsurf.com/changelog/windsurf-next#1.2.107 <h3>Separation from Windsurf - Stable</h3><ul><li>Windsurf - Next will no longer share conversations, settings, or memories with Windsurf (Stable)</li><li>This allows us to ship experimental features to Next without breaking Windsurf (Stable)</li><li>A one time import is not available yet, but to be shipped in future releases</li><li>You can copy the data manually by copying data from the.codeium/windsurffolder to the.codeium/windsurf-nextfolder</li></ul><p><strong>Fixes</strong></p><ul><li>Fixes for Chat Model Gemini 2.0 Flash mistakingly being marked as Free</li></ul> https://windsurf.com/changelog/windsurf-next#1.2.107#1.2.107 Changelog Fri, 07 Feb 2025 00:00:00 +0000 Windsurf Next 1.2.106 https://windsurf.com/changelog/windsurf-next#1.2.106 <h3>Windsurf - Next Launch</h3><ul><li>Based on the latest release of the Windsurf Editor, v1.2.5</li></ul><p><strong>MCP Support</strong></p><ul><li>Cascade now supports the new MCP protocol, allowing you to connect new tools</li><li>Load your MCP servers through a user-configurable JSON file</li><li>Every MCP tool call costs one flow action credit, regardless of the execution result</li></ul><p><strong>New Cascade Toolbar</strong></p><ul><li>New Cascade toolbar that shows files with changes, active terminals, and MCP connection status</li></ul> https://windsurf.com/changelog/windsurf-next#1.2.106#1.2.106 Changelog Wed, 05 Feb 2025 00:00:00 +0000 ================================================ FILE: feeds/feed_xainews.xml ================================================ xAI News https://x.ai/news Latest updates from xAI http://www.rssboard.org/rss-specification python-feedgen en Wed, 13 May 2026 11:22:43 +0000 Grok Imagine Quality Mode API https://x.ai/news/grok-imagine-quality-mode Higher realism. Stronger text rendering. Better creative control. https://x.ai/news/grok-imagine-quality-mode May 06, 2026 Wed, 06 May 2026 00:00:00 +0000 Connectors in web, iOS, and Android https://x.ai/news/grok-connectors Deep integrations that bring the apps you use every day directly into Grok. https://x.ai/news/grok-connectors May 06, 2026 Wed, 06 May 2026 00:00:00 +0000 New Compute Partnership with Anthropic https://x.ai/news/anthropic-compute-partnership SpaceXAI has signed an agreement with Anthropic to provide access to Colossus 1. https://x.ai/news/anthropic-compute-partnership Company Wed, 06 May 2026 00:00:00 +0000 Custom Voices and Voice Library https://x.ai/news/grok-custom-voices Your voice. Your brand. Clone a voice from a short recording and manage your entire voice catalog from the xAI console. https://x.ai/news/grok-custom-voices April 30, 2026 Thu, 30 Apr 2026 00:00:00 +0000 Grok Voice Think Fast 1.0 https://x.ai/news/grok-voice-think-fast-1 Our most capable voice agent is now available via API. https://x.ai/news/grok-voice-think-fast-1 April 23, 2026 Thu, 23 Apr 2026 00:00:00 +0000 Grok Speech to Text and Text to Speech APIs https://x.ai/news/grok-stt-and-tts-apis Fast and accurate. Natural, expressive voices. Simple pricing. Multilingual support. https://x.ai/news/grok-stt-and-tts-apis April 17, 2026 Fri, 17 Apr 2026 00:00:00 +0000 xAI joins SpaceX https://x.ai/news/xai-joins-spacex SpaceX announced today that it has acquired xAI. https://x.ai/news/xai-joins-spacex February 02, 2026 Mon, 02 Feb 2026 00:00:00 +0000 Grok Imagine API https://x.ai/news/grok-imagine-api State-of-the-art video generation across quality, cost, and latency. https://x.ai/news/grok-imagine-api January 28, 2026 Wed, 28 Jan 2026 00:00:00 +0000 xAI Raises $20B Series E https://x.ai/news/series-e xAI is rapidly accelerating its progress in building advanced AI. https://x.ai/news/series-e January 06, 2026 Tue, 06 Jan 2026 00:00:00 +0000 Introducing Grok Business and Grok Enterprise https://x.ai/news/grok-business The best assistant in the world is now Enterprise ready. https://x.ai/news/grok-business December 30, 2025 Tue, 30 Dec 2025 00:00:00 +0000 Supporting the DOW's mission with AI https://x.ai/news/us-gov-dept-of-war xAI is proud to be selected by the US Department of War to deliver Frontier AI https://x.ai/news/us-gov-dept-of-war December 22, 2025 Mon, 22 Dec 2025 00:00:00 +0000 Grok Collections API https://x.ai/news/grok-collections-api State-of-the-art RAG system built directly into our API. https://x.ai/news/grok-collections-api December 22, 2025 Mon, 22 Dec 2025 00:00:00 +0000 Grok Voice Agent API https://x.ai/news/grok-voice-agent-api Bringing the power of Grok Voice to all developers. https://x.ai/news/grok-voice-agent-api December 17, 2025 Wed, 17 Dec 2025 00:00:00 +0000 xAI and El Salvador Pioneer the World's First Nationwide AI Education Program https://x.ai/news/el-salvador-partnership Announcing Our Transformative Partnership with the Government of El Salvador. https://x.ai/news/el-salvador-partnership December 11, 2025 Thu, 11 Dec 2025 00:00:00 +0000 Grok goes Global with KSA https://x.ai/news/grok-goes-global Announcing Our Landmark Partnership with Saudi Arabia and HUMAIN https://x.ai/news/grok-goes-global November 19, 2025 Wed, 19 Nov 2025 00:00:00 +0000 Grok 4.1 Fast and Agent Tools API https://x.ai/news/grok-4-1-fast Bringing the next generation of tool-calling agents to the xAI API https://x.ai/news/grok-4-1-fast November 19, 2025 Wed, 19 Nov 2025 00:00:00 +0000 Grok 4.1 https://x.ai/news/grok-4-1 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. https://x.ai/news/grok-4-1 November 17, 2025 Mon, 17 Nov 2025 00:00:00 +0000 Expanding xAI for Government with GSA OneGov https://x.ai/news/onegov Expanding ‘xAI For Government’ with more accessible AI tools for the Federal Government https://x.ai/news/onegov September 25, 2025 Thu, 25 Sep 2025 00:00:00 +0000 Grok 4 Fast https://x.ai/news/grok-4-fast Pushing the Frontier of Cost-Efficient Intelligence https://x.ai/news/grok-4-fast September 19, 2025 Fri, 19 Sep 2025 00:00:00 +0000 Grok Code Fast 1 https://x.ai/news/grok-code-fast-1 We're thrilled to introduce grok-code-fast-1, a speedy and economical reasoning model that excels at agentic coding. https://x.ai/news/grok-code-fast-1 August 28, 2025 Thu, 28 Aug 2025 00:00:00 +0000 Announcing xAI for Government https://x.ai/news/government We are excited to announce xAI For Government – a suite of frontier AI products available first to United States Government customers. https://x.ai/news/government July 14, 2025 Mon, 14 Jul 2025 00:00:00 +0000 Grok 4 https://x.ai/news/grok-4 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. https://x.ai/news/grok-4 July 09, 2025 Wed, 09 Jul 2025 00:00:00 +0000 Grok 3 Beta — The Age of Reasoning Agents https://x.ai/news/grok-3 We are thrilled to unveil an early preview of Grok 3, our most advanced model yet, blending superior reasoning with extensive pretraining knowledge. https://x.ai/news/grok-3 February 19, 2025 Wed, 19 Feb 2025 00:00:00 +0000 xAI raises $6B Series C https://x.ai/news/series-c We are partnering with A16Z, Blackrock, Fidelity Management & Research Company, Kingdom Holdings, Lightspeed, MGX, Morgan Stanley, OIA, QIA, Sequoia Capital, Valor Equity Partners and Vy Capital, amongst others. https://x.ai/news/series-c December 23, 2024 Mon, 23 Dec 2024 00:00:00 +0000 Bringing Grok to Everyone https://x.ai/news/grok-1212 Grok is now faster, sharper, and has improved multilingual support. It is available to everyone on the 𝕏 platform. https://x.ai/news/grok-1212 December 12, 2024 Thu, 12 Dec 2024 00:00:00 +0000 Grok Image Generation Release https://x.ai/news/grok-image-generation-release We are updating Grok's capabilities with a new autoregressive image generation model, code-named Aurora, available on the 𝕏 platform. https://x.ai/news/grok-image-generation-release December 09, 2024 Mon, 09 Dec 2024 00:00:00 +0000 API Public Beta https://x.ai/news/api 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. https://x.ai/news/api November 04, 2024 Mon, 04 Nov 2024 00:00:00 +0000 Grok-2 Beta Release https://x.ai/news/grok-2 We announce our new Grok-2 and Grok-2 mini models. https://x.ai/news/grok-2 August 13, 2024 Tue, 13 Aug 2024 00:00:00 +0000 Series B funding round https://x.ai/news/series-b xAI is pleased to announce our series B funding round of $6 billion. https://x.ai/news/series-b May 26, 2024 Sun, 26 May 2024 00:00:00 +0000 Grok-1.5 Vision Preview https://x.ai/news/grok-1.5v Connecting the digital and physical worlds with our first multimodal model. https://x.ai/news/grok-1.5v April 12, 2024 Fri, 12 Apr 2024 00:00:00 +0000 Announcing Grok-1.5 https://x.ai/news/grok-1.5 Grok-1.5 comes with improved reasoning capabilities and a context length of 128,000 tokens. Available on 𝕏 soon. https://x.ai/news/grok-1.5 March 28, 2024 Thu, 28 Mar 2024 00:00:00 +0000 Open Release of Grok-1 https://x.ai/news/grok-os We are releasing the weights and architecture of our 314 billion parameter Mixture-of-Experts model Grok-1. https://x.ai/news/grok-os March 17, 2024 Sun, 17 Mar 2024 00:00:00 +0000 Announcing PromptIDE https://x.ai/news/prompt-ide Integrated development environment for prompt engineering and interpretability research. https://x.ai/news/prompt-ide November 06, 2023 Mon, 06 Nov 2023 00:00:00 +0000 Announcing Grok https://x.ai/news/grok 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! https://x.ai/news/grok November 03, 2023 Fri, 03 Nov 2023 00:00:00 +0000 ================================================ FILE: feeds.yaml ================================================ # Feed Registry -- single source of truth for all feed generators. # run_all_feeds.py reads this file instead of scanning *.py files. # # To add a new feed: # 1. Create feed_generators/.py # 2. Add an entry here # 3. Add a Make target in makefiles/feeds.mk # 4. Update README.md # # To disable a feed temporarily: # some_feed: # script: some_blog.py # type: requests # blog_url: https://example.com # enabled: false feeds: ai_first_podcast: script: ai_first_podcast.py type: requests blog_url: https://ai-first.ai/podcast anthropic_eng: script: anthropic_eng_blog.py type: requests blog_url: https://www.anthropic.com/engineering anthropic_news: script: anthropic_news_blog.py type: selenium blog_url: https://www.anthropic.com/news anthropic_red: script: anthropic_red_blog.py type: requests blog_url: https://red.anthropic.com/ anthropic_research: script: anthropic_research_blog.py type: selenium blog_url: https://www.anthropic.com/research blogsurgeai: script: blogsurgeai_feed_generator.py type: requests blog_url: https://www.surgehq.ai/blog chanderramesh: script: chanderramesh_blog.py type: requests blog_url: https://chanderramesh.com/writing claude: script: claude_blog.py type: requests blog_url: https://claude.com/blog cohere: script: cohere_blog.py type: requests blog_url: https://cohere.com/blog cursor: script: cursor_blog.py type: requests blog_url: https://cursor.com/blog dagster: script: dagster_blog.py type: requests blog_url: https://dagster.io/blog google_ai: script: google_ai_blog.py type: requests blog_url: https://developers.googleblog.com/search/?technology_categories=AI groq: script: groq_blog.py type: requests blog_url: https://groq.com/blog/ meta_ai: script: meta_ai_blog.py type: selenium blog_url: https://ai.meta.com/blog/ mistral: script: mistral_blog.py type: selenium blog_url: https://mistral.ai/news ollama: script: ollama_blog.py type: requests blog_url: https://ollama.com/blog paulgraham: script: paulgraham_blog.py type: requests blog_url: https://paulgraham.com/articles.html perplexity_hub: script: perplexity_hub.py type: selenium blog_url: https://www.perplexity.ai/hub pinecone: script: pinecone_blog.py type: selenium blog_url: https://www.pinecone.io/blog/ the_batch: script: deeplearningai_the_batch.py type: requests blog_url: https://www.deeplearning.ai/the-batch/ thinkingmachines: script: thinkingmachines_blog.py type: requests blog_url: https://thinkingmachines.ai/blog/ weaviate: script: weaviate_blog.py type: requests blog_url: https://weaviate.io/blog windsurf_blog: script: windsurf_blog.py type: requests blog_url: https://windsurf.com/blog windsurf_changelog: script: windsurf_changelog.py type: requests blog_url: https://windsurf.com/changelog windsurf_next_changelog: script: windsurf_next_changelog.py type: requests blog_url: https://windsurf.com/changelog/windsurf-next xainews: script: xainews_blog.py type: selenium blog_url: https://x.ai/news ================================================ FILE: makefiles/ci.mk ================================================ ########################## ### CI/CD Workflows ### ########################## .PHONY: ci_test_workflow_local ci_test_workflow_local: ## Run the test_feed.yml workflow locally using act $(call check_command,act) $(call print_info_section,Running test_feed workflow locally) $(Q)act --container-architecture linux/amd64 -W .github/workflows/test_feed.yml $(call print_success,Workflow completed) .PHONY: ci_run_feeds_workflow_local ci_run_feeds_workflow_local: ## Run the run_feeds.yml workflow locally using act $(call check_command,act) $(call print_info_section,Running run_feeds workflow locally) $(Q)act --container-architecture linux/amd64 -W .github/workflows/run_feeds.yml $(call print_success,Workflow completed) .PHONY: ci_trigger_feeds_workflow ci_trigger_feeds_workflow: ## Trigger the run_feeds.yml workflow on GitHub using gh $(call check_command,gh) $(call print_info,Triggering run_feeds workflow on GitHub) $(Q)gh workflow run run_feeds.yml $(call print_success,Workflow triggered) .PHONY: ci_trigger_selenium_feeds_workflow ci_trigger_selenium_feeds_workflow: ## Trigger the run_selenium_feeds.yml workflow on GitHub using gh $(call check_command,gh) $(call print_info,Triggering selenium feeds workflow on GitHub) $(Q)gh workflow run run_selenium_feeds.yml $(call print_success,Workflow triggered) .PHONY: ci_trigger_validate_feeds_workflow ci_trigger_validate_feeds_workflow: ## Trigger the validate_feeds.yml workflow on GitHub using gh $(call check_command,gh) $(call print_info,Triggering validate feeds workflow on GitHub) $(Q)gh workflow run validate_feeds.yml $(call print_success,Workflow triggered) .PHONY: ci_trigger_test_feed_workflow ci_trigger_test_feed_workflow: ## Trigger the test_feed.yml workflow on GitHub using gh $(call check_command,gh) $(call print_info,Triggering test feed workflow on GitHub) $(Q)gh workflow run test_feed.yml $(call print_success,Workflow triggered) .PHONY: ci_run_selenium_feeds_workflow_local ci_run_selenium_feeds_workflow_local: ## Run the run_selenium_feeds.yml workflow locally using act $(call check_command,act) $(call print_info_section,Running selenium feeds workflow locally) $(Q)act --container-architecture linux/amd64 -W .github/workflows/run_selenium_feeds.yml $(call print_success,Workflow completed) ================================================ FILE: makefiles/colors.mk ================================================ # Basic ANSI colors & print helpers GREEN := \033[0;32m YELLOW := \033[1;33m BLUE := \033[0;34m CYAN := \033[0;36m RED := \033[0;31m MAGENTA := \033[0;35m BOLD := \033[1m DIM := \033[2m RESET := \033[0m CHECK := ✓ CROSS := ✗ WARN := ⚠️ INFO := ℹ️ ARROW := → define print_success @printf "$(GREEN)$(BOLD) $(CHECK) %s$(RESET)\n" "$(1)" endef define print_error @printf "$(RED)$(BOLD) $(CROSS) %s$(RESET)\n" "$(1)" endef define print_warning @printf "$(YELLOW)$(WARN) %s$(RESET)\n" "$(1)" endef define print_info @printf "$(CYAN)$(INFO) %s$(RESET)\n" "$(1)" endef define print_info_section @printf "\n$(CYAN)$(BOLD)%s$(RESET)\n" "$(1)" endef ================================================ FILE: makefiles/common.mk ================================================ # Strict shell + sane make defaults SHELL := /bin/bash .SHELLFLAGS := -eu -o pipefail -c MAKEFLAGS += --warn-undefined-variables MAKEFLAGS += --no-builtin-rules # VERBOSE=1 to show commands ifdef VERBOSE Q := else Q := @ endif # Timestamp & common dirs TIMESTAMP := $(shell date '+%Y-%m-%d %H:%M:%S') ROOT_DIR := $(shell pwd) BUILD_DIR := $(ROOT_DIR)/build DIST_DIR := $(ROOT_DIR)/dist DOCS_DIR := $(ROOT_DIR)/docs TMP_DIR := $(ROOT_DIR)/tmp FEEDS_DIR := $(ROOT_DIR)/feeds GENERATORS_DIR := $(ROOT_DIR)/feed_generators $(BUILD_DIR) $(DIST_DIR) $(TMP_DIR): $(Q)mkdir -p $@ # Guards & checks define check_command @command -v $(1) >/dev/null 2>&1 || { \ printf "$(RED)Missing tool: $(1)$(RESET)\n"; \ exit 1; \ } endef define check_venv @if [ -z "$$VIRTUAL_ENV" ]; then \ printf "$(RED)$(BOLD) $(CROSS) Virtual environment not activated$(RESET)\n"; \ printf "$(YELLOW)$(ARROW) Run: source .venv/bin/activate$(RESET)\n"; \ exit 1; \ fi endef .PHONY: prompt_confirm prompt_confirm: ## Prompt before continuing @printf "$(YELLOW)Continue? [y/N] $(RESET)"; read ans; [ $${ans:-N} = y ] .PHONY: debug_vars debug_vars: ## Print key variables $(call print_info_section,Debug variables) $(Q)printf "ROOT_DIR=%s\nFEEDS_DIR=%s\nGENERATORS_DIR=%s\n" "$(ROOT_DIR)" "$(FEEDS_DIR)" "$(GENERATORS_DIR)" ================================================ FILE: makefiles/dev.mk ================================================ ########################## ### Development Tools ### ########################## .PHONY: dev_setup dev_setup: ## Install dev dependencies and pre-commit hooks $(call print_info_section,Setting up development environment) $(Q)uv sync --group dev $(Q)uv run pre-commit install $(call print_success,Dev environment ready) .PHONY: dev_lint dev_lint: ## Check code with ruff (lint + format check) $(call print_info_section,Checking code style) $(Q)uv run ruff check . $(Q)uv run ruff format --check . $(call print_success,Code style OK) .PHONY: dev_lint_fix dev_lint_fix: ## Auto-fix lint issues and format code $(call print_info_section,Fixing code style) $(Q)uv run ruff check --fix . $(Q)uv run ruff format . $(call print_success,Code formatted) .PHONY: dev_format dev_format: dev_lint_fix ## Alias for dev_lint_fix (backwards compatible) .PHONY: dev_test_feed dev_test_feed: ## Run a test feed generator (ollama) $(call print_info,Running ollama_blog.py as test feed) $(Q)uv run feed_generators/ollama_blog.py $(call print_success,Test feed completed) .PHONY: dev_test_all dev_test_all: ## Validate feeds, regenerate non-selenium feeds, then re-validate $(call print_info_section,Running full test suite) $(call print_info,Validating existing feeds) $(Q)uv run feed_generators/validate_feeds.py $(call print_info,Regenerating non-selenium feeds) $(Q)uv run feed_generators/run_all_feeds.py --skip-selenium $(call print_info,Re-validating feeds) $(Q)uv run feed_generators/validate_feeds.py $(call print_success,All tests passed) ================================================ FILE: makefiles/env.mk ================================================ ########################## ### Environment Setup ### ########################## .PHONY: env_setup env_setup: ## Create virtual environment and install dependencies $(call print_info_section,Setting up environment) $(Q)uv sync $(call print_success,Environment ready) .PHONY: env_source env_source: ## Source the env; must be executed like: $$(make env_source) @echo 'source .venv/bin/activate' .PHONY: clean_env clean_env: ## Clean virtual environment $(call print_warning,Removing virtual environment) $(Q)rm -rf venv .venv $(call print_success,Virtual environment removed) ================================================ FILE: makefiles/feeds.mk ================================================ ########################## ### RSS Feed Generation ## ########################## .PHONY: feeds_generate_all feeds_generate_all: ## Generate all RSS feeds $(call check_venv) $(call print_info_section,Generating all RSS feeds) $(Q)uv run feed_generators/run_all_feeds.py $(call print_success,All feeds generated) .PHONY: feeds_ai_first_podcast feeds_ai_first_podcast: ## Generate RSS feed for AI FIRST Podcast (incremental) $(call check_venv) $(call print_info,Generating AI FIRST Podcast feed) $(Q)uv run feed_generators/ai_first_podcast.py $(call print_success,AI FIRST Podcast feed generated) .PHONY: feeds_ai_first_podcast_full feeds_ai_first_podcast_full: ## Generate RSS feed for AI FIRST Podcast (full reset) $(call check_venv) $(call print_info,Generating AI FIRST Podcast feed - FULL RESET) $(Q)uv run feed_generators/ai_first_podcast.py --full $(call print_success,AI FIRST Podcast feed generated - full reset) .PHONY: feeds_anthropic_news feeds_anthropic_news: ## Generate RSS feed for Anthropic News (incremental) $(call check_venv) $(call print_info,Generating Anthropic News feed) $(Q)uv run feed_generators/anthropic_news_blog.py $(call print_success,Anthropic News feed generated) .PHONY: feeds_anthropic_news_full feeds_anthropic_news_full: ## Generate RSS feed for Anthropic News (full reset) $(call check_venv) $(call print_info,Generating Anthropic News feed - FULL RESET) $(Q)uv run feed_generators/anthropic_news_blog.py --full $(call print_success,Anthropic News feed generated - full reset) .PHONY: feeds_anthropic_engineering feeds_anthropic_engineering: ## Generate RSS feed for Anthropic Engineering $(call check_venv) $(call print_info,Generating Anthropic Engineering feed) $(Q)uv run feed_generators/anthropic_eng_blog.py $(call print_success,Anthropic Engineering feed generated) .PHONY: feeds_anthropic_research feeds_anthropic_research: ## Generate RSS feed for Anthropic Research $(call check_venv) $(call print_info,Generating Anthropic Research feed) $(Q)uv run feed_generators/anthropic_research_blog.py $(call print_success,Anthropic Research feed generated) .PHONY: feeds_anthropic_red feeds_anthropic_red: ## Generate RSS feed for Anthropic Frontier Red Team $(call check_venv) $(call print_info,Generating Anthropic Red Team feed) $(Q)uv run feed_generators/anthropic_red_blog.py $(call print_success,Anthropic Red Team feed generated) .PHONY: feeds_google_ai feeds_google_ai: ## Generate RSS feed for Google AI Blog $(call check_venv) $(call print_info,Generating Google AI feed) $(Q)uv run feed_generators/google_ai_blog.py $(call print_success,Google AI feed generated) .PHONY: feeds_ollama feeds_ollama: ## Generate RSS feed for Ollama Blog $(call check_venv) $(call print_info,Generating Ollama Blog feed) $(Q)uv run feed_generators/ollama_blog.py $(call print_success,Ollama Blog feed generated) .PHONY: feeds_paulgraham feeds_paulgraham: ## Generate RSS feed for Paul Graham's articles $(call check_venv) $(call print_info,Generating Paul Graham feed) $(Q)uv run feed_generators/paulgraham_blog.py $(call print_success,Paul Graham feed generated) .PHONY: feeds_blogsurgeai feeds_blogsurgeai: ## Generate RSS feed for Surge AI Blog $(call check_venv) $(call print_info,Generating Surge AI Blog feed) $(Q)uv run feed_generators/blogsurgeai_feed_generator.py $(call print_success,Surge AI Blog feed generated) .PHONY: feeds_xainews feeds_xainews: ## Generate RSS feed for xAI News $(call check_venv) $(call print_info,Generating xAI News feed) $(Q)uv run feed_generators/xainews_blog.py $(call print_success,xAI News feed generated) .PHONY: feeds_chanderramesh feeds_chanderramesh: ## Generate RSS feed for Chander Ramesh's writing $(call check_venv) $(call print_info,Generating Chander Ramesh feed) $(Q)uv run feed_generators/chanderramesh_blog.py $(call print_success,Chander Ramesh feed generated) .PHONY: feeds_claude feeds_claude: ## Generate RSS feed for Claude Blog (incremental) $(call check_venv) $(call print_info,Generating Claude Blog feed) $(Q)uv run feed_generators/claude_blog.py $(call print_success,Claude Blog feed generated) .PHONY: feeds_claude_full feeds_claude_full: ## Generate RSS feed for Claude Blog (full reset) $(call check_venv) $(call print_info,Generating Claude Blog feed - FULL RESET) $(Q)uv run feed_generators/claude_blog.py --full $(call print_success,Claude Blog feed generated - full reset) .PHONY: feeds_thinkingmachines feeds_thinkingmachines: ## Generate RSS feed for Thinking Machines Lab blog $(call check_venv) $(call print_info,Generating Thinking Machines Lab feed) $(Q)uv run feed_generators/thinkingmachines_blog.py $(call print_success,Thinking Machines Lab feed generated) .PHONY: feeds_cursor feeds_cursor: ## Generate RSS feed for Cursor Blog (incremental) $(call check_venv) $(call print_info,Generating Cursor Blog feed) $(Q)uv run feed_generators/cursor_blog.py $(call print_success,Cursor Blog feed generated) .PHONY: feeds_cursor_full feeds_cursor_full: ## Generate RSS feed for Cursor Blog (full reset) $(call check_venv) $(call print_info,Generating Cursor Blog feed - FULL RESET) $(Q)uv run feed_generators/cursor_blog.py --full $(call print_success,Cursor Blog feed generated - full reset) .PHONY: feeds_windsurf_blog feeds_windsurf_blog: ## Generate RSS feed for Windsurf Blog $(call check_venv) $(call print_info,Generating Windsurf Blog feed) $(Q)uv run feed_generators/windsurf_blog.py $(call print_success,Windsurf Blog feed generated) .PHONY: feeds_windsurf_changelog feeds_windsurf_changelog: ## Generate RSS feed for Windsurf Changelog $(call check_venv) $(call print_info,Generating Windsurf Changelog feed) $(Q)uv run feed_generators/windsurf_changelog.py $(call print_success,Windsurf Changelog feed generated) .PHONY: feeds_windsurf_next_changelog feeds_windsurf_next_changelog: ## Generate RSS feed for Windsurf Next Changelog $(call check_venv) $(call print_info,Generating Windsurf Next Changelog feed) $(Q)uv run feed_generators/windsurf_next_changelog.py $(call print_success,Windsurf Next Changelog feed generated) .PHONY: feeds_the_batch feeds_the_batch: ## Generate RSS feed for The Batch by DeepLearning.AI $(call check_venv) $(call print_info,Generating The Batch feed) $(Q)uv run feed_generators/deeplearningai_the_batch.py $(call print_success,The Batch feed generated) .PHONY: feeds_dagster feeds_dagster: ## Generate RSS feed for Dagster Blog $(call check_venv) $(call print_info,Generating Dagster Blog feed) $(Q)uv run feed_generators/dagster_blog.py $(call print_success,Dagster Blog feed generated) .PHONY: feeds_cohere feeds_cohere: ## Generate RSS feed for Cohere Blog $(call check_venv) $(call print_info,Generating Cohere Blog feed) $(Q)uv run feed_generators/cohere_blog.py $(call print_success,Cohere Blog feed generated) .PHONY: feeds_groq feeds_groq: ## Generate RSS feed for Groq Blog $(call check_venv) $(call print_info,Generating Groq Blog feed) $(Q)uv run feed_generators/groq_blog.py $(call print_success,Groq Blog feed generated) .PHONY: feeds_meta_ai feeds_meta_ai: ## Generate RSS feed for AI at Meta Blog (incremental) $(call check_venv) $(call print_info,Generating Meta AI Blog feed) $(Q)uv run feed_generators/meta_ai_blog.py $(call print_success,Meta AI Blog feed generated) .PHONY: feeds_meta_ai_full feeds_meta_ai_full: ## Generate RSS feed for AI at Meta Blog (full reset) $(call check_venv) $(call print_info,Generating Meta AI Blog feed - FULL RESET) $(Q)uv run feed_generators/meta_ai_blog.py --full $(call print_success,Meta AI Blog feed generated - full reset) .PHONY: feeds_mistral feeds_mistral: ## Generate RSS feed for Mistral AI News (incremental) $(call check_venv) $(call print_info,Generating Mistral AI News feed) $(Q)uv run feed_generators/mistral_blog.py $(call print_success,Mistral AI News feed generated) .PHONY: feeds_mistral_full feeds_mistral_full: ## Generate RSS feed for Mistral AI News (full reset) $(call check_venv) $(call print_info,Generating Mistral AI News feed - FULL RESET) $(Q)uv run feed_generators/mistral_blog.py --full $(call print_success,Mistral AI News feed generated - full reset) .PHONY: feeds_perplexity_hub feeds_perplexity_hub: ## Generate RSS feed for Perplexity Hub (incremental) $(call check_venv) $(call print_info,Generating Perplexity Hub feed) $(Q)uv run feed_generators/perplexity_hub.py $(call print_success,Perplexity Hub feed generated) .PHONY: feeds_perplexity_hub_full feeds_perplexity_hub_full: ## Generate RSS feed for Perplexity Hub (full reset) $(call check_venv) $(call print_info,Generating Perplexity Hub feed - FULL RESET) $(Q)uv run feed_generators/perplexity_hub.py --full $(call print_success,Perplexity Hub feed generated - full reset) .PHONY: feeds_pinecone feeds_pinecone: ## Generate RSS feed for Pinecone Blog (incremental) $(call check_venv) $(call print_info,Generating Pinecone Blog feed) $(Q)uv run feed_generators/pinecone_blog.py $(call print_success,Pinecone Blog feed generated) .PHONY: feeds_pinecone_full feeds_pinecone_full: ## Generate RSS feed for Pinecone Blog (full reset) $(call check_venv) $(call print_info,Generating Pinecone Blog feed - FULL RESET) $(Q)uv run feed_generators/pinecone_blog.py --full $(call print_success,Pinecone Blog feed generated - full reset) .PHONY: feeds_weaviate feeds_weaviate: ## Generate RSS feed for Weaviate Blog (incremental) $(call check_venv) $(call print_info,Generating Weaviate Blog feed) $(Q)uv run feed_generators/weaviate_blog.py $(call print_success,Weaviate Blog feed generated) .PHONY: feeds_weaviate_full feeds_weaviate_full: ## Generate RSS feed for Weaviate Blog (full reset) $(call check_venv) $(call print_info,Generating Weaviate Blog feed - FULL RESET) $(Q)uv run feed_generators/weaviate_blog.py --full $(call print_success,Weaviate Blog feed generated - full reset) .PHONY: clean_feeds clean_feeds: ## Clean generated RSS feed files $(call print_warning,Removing generated RSS feeds) $(Q)rm -rf feeds/*.xml $(call print_success,RSS feeds removed) ================================================ FILE: pyproject.toml ================================================ [project] name = "rss-feeds" version = "0.1.0" description = "RSS feed generator for blogs that don't have one" readme = "README.md" license = "MIT" requires-python = ">=3.11" authors = [ { name = "Daniel Olshansky", email = "olshansky.daniel@gmail.com" }, { name = "Oliver Borchers", email = "26734737+oborchers@users.noreply.github.com" }, ] dependencies = [ "beautifulsoup4>=4.12", "feedgen>=1.0", "lxml>=5.0", "python-dateutil>=2.8", "pytz>=2024.1", "requests>=2.31", "selenium>=4.25", "undetected-chromedriver>=3.5", "pydantic>=2.5", "pydantic-settings>=2.1", "pyyaml>=6.0", ] [project.urls] Repository = "https://github.com/Olshansk/rss-feeds" [dependency-groups] dev = ["ruff>=0.15", "pre-commit>=4.0"] [tool.ruff] target-version = "py311" line-length = 120 src = ["feed_generators"] [tool.ruff.lint] select = ["F", "E", "W", "I", "N", "UP", "B", "SIM", "C4", "RUF", "PERF"] ignore = ["E501", "N812", "SIM108"] [tool.ruff.lint.isort] known-first-party = ["utils", "models"] [tool.ruff.format] docstring-code-format = true