AI 资讯
Playwright CLI for agent-driven workflows: sessions, debugging, and CI Sharding
Playwright has excellent tooling around browser automation, but most of the ecosystem still treats it as a test framework. For teams running AI coding agents and automated browser workflows, there is a different set of requirements: browser automation ↓ session persistence across runs ↓ debuggable traces when things go wrong ↓ parallel execution across CI shards The Playwright CLI directly addresses these gaps. It ships as a standalone npm package and exposes every browser operation as a CLI command; open, click, type, snapshot - without requiring a Node.js script or test runner. npm package: @playwright/cli GitHub: https://github.com/microsoft/playwright-cli The current implementation focuses on: session persistence with named instances and portable state video and trace recording built into every session CI sharding for parallel execution at scale session persistence The default behaviour keeps browser state in memory. Cookies and localStorage are preserved between CLI calls within the session, but cleared when the browser closes. For repeatable workflows, that breaks down fast — logging into an application before every run wastes time and introduces flakiness. Named sessions let you run multiple browser instances simultaneously and address them by name: playwright-cli -s=admin open https://app.example.com/admin playwright-cli -s=checkout open https://app.example.com/checkout Each session is an isolated browser instance. An agent can orchestrate workflows across multiple authenticated contexts without state leaking between them. The goal is straightforward: the same CLI binary should be able to maintain independent browser contexts for parallel workflows without requiring environment-specific configuration. The critical piece for CI and agent reuse is state persistence: log in once playwright-cli -s=admin open https://app.example.com/login playwright-cli -s=admin fill "#username" "admin" playwright-cli -s=admin fill "#password" "$ADMIN_PASS" playwright-cli -s=admi
AI 资讯
Everyone wants a piece of Tesla’s battery business
Electricity demand from AI data centers is pushing everyone — including automakers like GM and Ford — into the energy storage business.
开源项目
Give GitHub Copilot CLI real code intelligence with language servers
Install and configure LSP servers for GitHub Copilot CLI, replacing brute-force grep/decompile with real code intelligence. The post Give GitHub Copilot CLI real code intelligence with language servers appeared first on The GitHub Blog .
AI 资讯
Why everyone’s an energy company now
Electricity demand from AI data centers is pushing everyone — including automakers like GM and Ford — into the energy storage business.
AI 资讯
Avalanche’s desktop fusion reactor delivers blistering-hot plasma
Fusion power startup Avalanche Energy said its reactor prototype heated a plasma to over 10 million degrees C.
AI 资讯
Why two SpaceX alumni are betting on solar and batteries to power the AI craze
Ambrosia Energy wants to build power plants in less than 12 months while undercutting natural gas. It hopes to build gigawatts worth by 2030.
AI 资讯
Shipped my first open-source repo
I independently shipped my first open-source repo this week. The tool I built was a cli which accesses quickbooks online data. While Claude Code did speed up the build, it still took considerable effort shaping the entire user experience for the cli around the pre-existing public APIs! Major learnings during the entire process. Would also love additional feedback from open-source developers here.I'm currently looking for feedback from experienced open-source developers: Are there any improvements you'd suggest around project structure, documentation, testing, or contributor onboarding or the tool functionality? https://github.com/intuit/intuit-cli-for-quickbooks #
AI 资讯
GM joins race to build batteries for AI data centers and the grid
GM is developing an entirely new sodium-ion battery chemistry for use in everything from data centers to its own factories.
科技前沿
Locked in heated rivalry with researcher, Microsoft fixes 0-day they disclosed
A separate zero-day also disclosed by Nightmare Eclipse appears to be patched as well.
开源项目
From one-off prompts to workflows: How to use custom agents in GitHub Copilot CLI
Custom agents let GitHub Copilot CLI understand your stack and team workflows, turning one-off terminal prompts into repeatable, reviewable processes. The post From one-off prompts to workflows: How to use custom agents in GitHub Copilot CLI appeared first on The GitHub Blog .
AI 资讯
I Built an Open-Source Tool to Track AI Coding Costs Across Claude Code, Codex & Cursor
The Problem I was using Claude Code, Codex, and Cursor daily but had no idea how much I was spending on tokens. Bills kept surprising me. The Solution I built AIUsage — a local-first, open-source CLI that tracks everything. Key Features Token usage tracking with daily breakdowns Cost estimation with configurable pricing Model usage ranking Multi-device sync via GitHub or S3 Desktop widget How It Works bash npm install -g @juliantanx/aiusage aiusage parse aiusage serve Why Local-First? Your data never leaves your machine. No accounts, no API keys, no cloud servers. Try It [aiusage.jtanx.com](https://aiusage.jtanx.com)
AI 资讯
Terminal themes optimize for syntax. This one optimizes for prose.
Spend a few hours in Claude Code and the screen is mostly English — tool output, reasoning traces, permission prompts asking you to read and decide. Syntax highlighting is almost irrelevant. What matters is whether body-size prose stays comfortable after six hours of sessions. Most terminal themes weren't built for that. They're tuned for token-colored code, where the eye jumps between short fragments. Prose reading is different: you need higher contrast on body text, tolerably soft contrast on secondary text that doesn't compete, and accent colors that don't burn. I built klein-blue around Yves Klein's IKB pigment as the anchor color — a specific blue I wanted to look at all day. There are four variations, each making a different tradeoff. Klein Void Prot is the strict one: every color role passes APCA Lc gates (body >= 90, subtle >= 75, muted >= 45, accent >= 60). The others trade some strictness for aesthetics. One thing APCA exposed immediately: pure IKB (hex 002FA7) is effectively invisible as text on a dark ground — Lc -12. So IKB lives only in the decorative slot (ansi:blue, borders and highlights). The readable blue — permission-prompt text and similar — is a lifted Klein-family color (hex A8BEF0) in ansi:blueBright, which actually passes. The other differentiating choice is what to do with Claude Code's claude-sand brand color, which lands in ansi:redBright. Two of the four variations neutralize it so nothing competes with IKB. Two accept it as a second hero. That's the meaningful split between variations in daily use. Ships as macOS Terminal.app .terminal profile files with CommitMono or IBM Plex Mono depending on variation. One prerequisite worth knowing: Claude Code's /theme picker has to be set to dark-ansi, otherwise Claude Code uses its hardcoded RGB palette and ignores your ANSI theme entirely. https://github.com/robertnowell/klein-void
AI 资讯
Gemini 3.5 Flash as your Cursor and Cline backend in 2026: $1.50/M tokens, 76.2% on Terminal-Bench, and how it stacks up against Claude Sonnet
This article was originally published on aicoderscope.com TL;DR : Gemini 3.5 Flash went GA on May 19, 2026 and costs 50% less than Claude Sonnet 4.6 on input tokens ($1.50 vs $3.00/M). It generates code at ~284 tokens per second — roughly 4.7× faster than Sonnet 4.6. Cursor already lists it natively; Cline needs one extra config step. The trap: Flash's default thinking level is "medium," which is slower and pricier than "low," the setting Google specifically tuned for coding and tool-use loops. Gemini 3.5 Flash Claude Sonnet 4.6 DeepSeek V4-Flash Best for Fast agent loops, context-heavy analysis Complex refactors, instruction fidelity Cost-capped high-volume tasks Input / Output per 1M tokens $1.50 / $9.00 $3.00 / $15.00 $0.14 / $0.28 Context window 1M tokens 200K tokens 1M tokens Terminal-Bench 2.1 76.2% — — Output speed ~284 t/s ~60 t/s — Max output per request 65,536 tokens 64K tokens 64K tokens The catch Output at $9/M erodes savings on code-gen 15× pricier output than Flash No vision, MIT-licensed Honest take : Use Gemini 3.5 Flash with Cline for multi-step agent tasks where round-trip latency compounds and context windows run large. Stay on Claude Sonnet 4.6 when you need a hard refactor to land perfectly on the first try — Sonnet's 79.6% SWE-bench Verified score still leads Flash's on correctness benchmarks. The cost math that does and doesn't work Gemini 3.5 Flash charges $1.50 per million input tokens and $9.00 per million output tokens. Against Claude Sonnet 4.6 at $3.00/$15.00, the input side is a genuine 2× saving. The output side is almost the same story: $9 vs $15 is 40% cheaper per generated token. Run the numbers on a typical Cline coding session: 8 tool calls, reading 12 files (roughly 20,000 context tokens), generating 500 lines of code output (~7,000 output tokens). Sonnet 4.6: (20K × $3 + 7K × $15) / 1,000,000 = $0.165/session Gemini 3.5 Flash: (20K × $1.50 + 7K × $9) / 1,000,000 = $0.093/session That's 44% cheaper per session. At 50 sessions a m
科技前沿
Your empty cuppa could capture carbon
Polystyrene can be upcycled into carbon sponge material.
AI 资讯
one last peek 👀🍵 docs, a demo, and a goodbye for now
Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is...
AI 资讯
The weather and climate science AI revolution isn’t revolutionary
Machine learning has its limits—how is it being used?
AI 资讯
100 Days of ClickHouse® – Day 6: Importing CSV Files into ClickHouse®
CSV files are one of the most common formats for storing and exchanging data. Whether you’re working with logs, analytics data, application exports, or reports, there will likely come a time when you need to load CSV data into ClickHouse®. The good news is that ClickHouse® makes CSV ingestion straightforward and efficient. In this guide, you’ll learn how to create a table, prepare a CSV file, load CSV data into ClickHouse®, and verify that the data has been imported successfully. Why Use CSV Files with ClickHouse®? CSV (Comma-Separated Values) files are simple, portable, and supported by virtually every data platform. Common use cases include: Importing exported application data Loading historical datasets Migrating data from other databases Testing analytics workloads Sharing data between systems Because ClickHouse® is designed for high-performance analytics, it can efficiently process and query large CSV datasets once they are loaded into a table. Sample CSV File Let’s assume we have a file named employees.csv with the following contents: id,name,department,salary 1,Alice,Engineering,75000 2,Bob,Marketing,60000 3,Charlie,Finance,70000 This simple dataset will help demonstrate how to load CSV data into ClickHouse®. Step 1: Create a Table in ClickHouse® Before importing data, create a table that matches the structure of the CSV file. CREATE TABLE employees ( id UInt32, name String, department String, salary UInt32 ) ENGINE = MergeTree() ORDER BY id; This table contains four columns that correspond directly to the columns in our CSV file. Step 2: Load CSV Data into ClickHouse® There are several ways to import CSV data, but one of the most common methods is using the ClickHouse® client. Run the following command: clickhouse-client --query=" INSERT INTO employees FORMAT CSVWithNames" < employees.csv The CSVWithNames format tells ClickHouse® that the first row contains column headers. After executing the command, ClickHouse® will read the CSV file and insert the records
AI 资讯
peektea brews on WSL 👀🍵 (and installs in one line)
Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is...
开发者
Cloudflare Identifies Query Planning Bottleneck in ClickHouse
Cloudflare recently described how a slowdown in its billing pipeline was traced to contention inside the query planning stage of ClickHouse. The team profiled the bottleneck and patched ClickHouse to replace an exclusive lock with a shared lock, drop the per-query copy of the parts list, and improve part filtering. By Renato Losio
AI 资讯
Google Colab, but in your favourite terminal
While some of my recent posts have involved using the Colab extension for VS Code and the Antigravity IDE, I actually prefer working in the terminal and Vim. The new Colab CLI finally lets me work in my natural habitat, and it opens the door for autonomous workflows! Setup Currently, installation is handled via pip or uv. It's straightforward, though, I'm holding out hope for a brew formula in the future: uv tool install google-colab-cli I'm testing Version: 0.6.dev7+g510115b0c inside Ghostty. The Colab CLI is pretty solid, but I do have some feedback and nitpicks I'd like to share (but more on that later). Creating a new session Creating a session is simple: colab new [-s SESSION_NAME] [--gpu T4|L4|A100|H100] [--tpu v5e1|v6e1] : SESSION_NAME : This is optional. If you leave it blank, the CLI generates a random unique ID for you. --gpu and --tpu : The hardware accelerator flags are optional, but omitting them defaults to a standard CPU-only instance. The specific accelerator chips you can request depend on your Colab tier, which you can check via colab pay. NOTE : If you only have one active session, the CLI targets it by default. This makes the -s flag unnecessary for subsequent commands. Testing Colab CLI's capabilities CLI certainly sounds cool, but how does it handle artifacts and images? More importantly, how debuggable is it? I decided to find out by running a Fashion MNIST PyTorch example. Handling artifacts To get started, I installed my requirements using colab install torch torchvision matplotlib . If you prefer a more standard approach, you can also use colab install -r requirements.txt . Once the environment was ready, I executed the training script using colab exec -f ./fashion_mnist_TRAIN.py and here's the output: [ colab] Using unique session '8c860c' . Using CUDA device. Shape of X [ N, C, H, W]: torch.Size ([ 64, 1, 28, 28] ) Shape of y: torch.Size ([ 64] ) torch.int64 NeuralNetwork ( ( flatten ) : Flatten ( start_dim = 1, end_dim = -1 ) ( linear_re