HTTPie needs --ignore-stdin in non-TTY environments like Claude Code

HTTPie detects whether it’s running in a TTY. When there’s no TTY, like when Claude Code invokes it as a subprocess, HTTPie assumes stdin might have data coming and interprets the request as a POST, even if you meant a GET. The fix is --ignore-stdin: http --ignore-stdin GET localhost:3000/things The catch: once you tell Claude Code to always use --ignore-stdin, it will also use it when piping data, which breaks that use case entirely: ...

Claude Code runs natively as a GitHub Action

Anthropic ships an official claude-code-action that runs Claude Code inside a GitHub Actions workflow. It can read your repo, write files, run commands, and commit, all triggered by a PR comment or a schedule. The interesting part: it uses the same Claude Code you run locally, so your CLAUDE.md instructions carry over. The action respects the same permission model. Immediate use cases I’m thinking about: Auto-generate TIL posts from GitHub Issues with a specific label Run a nightly review pass on open PRs Summarize recent commits and update a changelog The main constraint is the Actions runner environment: you need to install any tools Claude Code will call (glow, rsync, etc.) as workflow steps before handing off to the action. ...

Kimi's agent swarm runs up to 100 parallel sub-agents to escape context window limits

The interesting part isn’t the parallelism itself, it’s the reason for it. A single agent on a long-horizon task eventually hits its context window and starts compressing earlier context, degrading output quality. Kimi’s solution: spawn up to 100 sub-agents, each with their own fresh context, coordinating as a swarm. The system is self-organizing: it determines how many agents to deploy and how to split the work based on the task. In benchmarks they cite 4.5x faster results and over 1,500 tool calls per task. ...

Zvec is an embedded vector database aiming to be the SQLite of vector search

Zvec is an open-source embedded vector database from Alibaba, built on their Proxima engine. The pitch is simple: vector search that runs in-process, no server required, with the same frictionless setup as SQLite. The gap it fills is real. Faiss gives you indexes but no CRUD or crash recovery. DuckDB-VSS has limited vector features. Milvus needs its own process and network hop. Zvec aims to be the option that just works when you’re building a local RAG pipeline, a CLI tool, or anything on-device where you need semantic search without infrastructure. ...

LLMs struggle with Asana's strict non-standard rich text format

Asana’s rich text API doesn’t use standard HTML. It accepts a strict subset with specific rules: only certain tags are allowed, nesting rules differ from what browsers tolerate, and the format is closer to XML than HTML, meaning unclosed tags, loose attributes, or anything outside the allowed set will be rejected or silently mangled. LLMs tend to produce plausible-looking but subtly wrong output here. They’ll use tags Asana doesn’t support, nest things incorrectly, or generate valid HTML that Asana’s parser rejects. ...

MCP servers support prompts as a first-class concept, separate from tools

When I shipped mcp-server-asana 1.1.0, the headline addition wasn’t the six new Asana tools (task dependencies, stories, subtasks, project sections). It was prompts. In the MCP protocol, prompts and tools are distinct concepts. Tools are individual actions an LLM can invoke: create a task, add a dependency, fetch a comment. Prompts are predefined conversation templates: parameterized, reusable starting points that an MCP host can surface directly to users. The task-summary prompt added in 1.1.0 illustrates the difference. Instead of leaving the LLM to figure out what to fetch and how to present it, the prompt defines a scaffold: current status, key updates, blockers, next steps. The LLM gets structure, not a blank page. ...