今日已更新 35 条资讯 | 累计 37284 条内容
关于我们

标签:#cli

找到 309 篇相关文章

AI 资讯

Why Devs Ditch MCP for CLI in AI Agents

Abstract In recent AI Agent engineering practice, many development teams are shifting away from the Model Context Protocol (MCP) and adopting CLI‑based tool invocation patterns. This shift does not represent technological regression. Instead, it reflects pragmatic engineering choices balancing protocol standardization, operational overhead, token consumption and debugging efficiency. This article analyzes the core design philosophy of MCP, exposes four real‑world pain points observed in production deployments, and outlines the practical strengths of CLI‑driven tool execution. Benchmark measurement data is retained for quantitative comparison. This paper also provides structured decision‑making dimensions for technology selection, introduces hybrid architecture as the optimal production‑grade solution, and summarizes actionable engineering recommendations. For multi‑model and multi‑tool request routing scenarios, developers can leverage 4sapi as an API gateway to unify backend traffic management. 1. Introduction As AI Agent systems move from prototype demos to real‑world business deployment, tool calling infrastructure has become a critical determinant of overall system stability. Released by Anthropic, the Model Context Protocol (MCP) quickly gained community attention as a standardized JSON‑RPC 2.0 protocol for AI models to discover, describe and invoke external tools. Despite its promising theoretical positioning, many engineering teams have gradually backed away from full‑scale MCP adoption and turned toward invoking native command‑line interfaces. This article avoids simplistic pros‑and‑cons comparison. It dissects ideal‑world protocol design against real‑world production constraints, helping engineers make rational tool‑chain architecture decisions for their Agent projects. 2. MCP Design Philosophy and Ideal‑World Capabilities MCP is built for standardized interoperability between AI agent clients and external tool servers. It defines complete JSON‑RPC 2.0 mess

2026-08-10 原文 →
AI 资讯

HACKATHON ON CLIMATE & WELLBEING

Are you interested in leveraging AI, remote sensing, and data-driven solutions to tackle climate change and public health challenges? The Climate & Wellbeing Hackathon—hosted by Nims University Rajasthan and the World Health Summit Academic Alliance in collaboration with Khushi Baby—is officially open for registrations! 🎯 About the Hackathon Climate change directly impacts human, animal, and environmental health. Rising temperatures, extreme weather events, air pollution, and changing disease patterns pose severe threats to global wellbeing. This virtual hackathon bridges the gap between scientific research and field execution to create actionable policy guidance and real-world technology interventions. 🏆 Prizes & Recognition The Top 2 Innovative Ideas will receive The Dr. B.S. Tomar Innovation Award at the prestigious World Health Summit Academic Alliance - Expert Meeting on Climate & Wellbeing. 🛠️ Problem Statements & Tracks ☀️ Hazard: Heat Near-real-time heat-health burden nowcast (Public-health surveillance / Data fusion) Build an excess-illness/mortality index by fusing open environmental & proxy-demand signals to nowcast heat stress days ahead. Satellite rooftop heat-vulnerability classifier & cool-roof prioritisation engine (Climate adaptation / Remote sensing) Automatically identify and rank urban rooftops that urgently need cooling to produce an operational work-order. From action plans to living, tracked decisions (Climate-health governance / Decision-support) Develop a copilot to benchmark plans, operationalise daily actions, and monitor public feeds to map heat-health intervention gaps. Early heat-strain warning for outdoor & informal workers (Occupational health / Edge AI & sensing) Build a smartphone-based system estimating personal heat strain with local-language guidance and zero extra hardware. Heat-surge readiness for the health system (Operations research) Build decision-support tools to help health systems prepare ahead of forecast heat spikes. 🌬

2026-08-10 原文 →
AI 资讯

I built RepoTrek: a terminal-first GitHub source browser in Rust

I built RepoTrek , a terminal-first GitHub source browser written in Rust. GitHub: https://github.com/yuna-r/repotrek crates.io: https://crates.io/crates/repotrek The basic idea is simple: I wanted a comfortable way to deeply explore GitHub repositories without constantly switching between the browser, terminal, and editor. RepoTrek is not intended to replace Git clients such as git , lazygit , tig , or gitui . Its focus is different: Git client ↓ operate on a repository RepoTrek ↓ explore and read a repository Why I built it When reading open-source projects on GitHub, I often move through a sequence like this: Code ↓ Blame ↓ Commit ↓ Diff ↓ File history ↓ Another file GitHub's web interface is excellent, but when I spend a long time reading source code, I prefer staying in the terminal and using the keyboard. So I started building a TUI specifically around source code exploration . No clone required You can open a repository directly from GitHub. For example: rust-lang/rust or: torvalds/linux RepoTrek retrieves the repository information through GitHub APIs, so you don't need to clone the entire repository just to inspect it. This is especially convenient for quickly looking through large projects. Features RepoTrek currently includes: Repository tree browsing Source code viewer with line numbers Syntax highlighting Dark / Light themes Commit history Commit diffs File history Git blame Branch switching File search Repository-wide code search Symbol navigation Definition search Pull Requests Issues GitHub Actions Releases Keyboard-based text selection and copy Source/diff wrapping HTML export for printing The interface is designed to make moving between these views fast without leaving the terminal. Source code browsing The main view works like a terminal-native repository browser. src/ ├── app.rs ├── auth.rs ├── export.rs ├── highlight.rs ├── provider/ └── ui/ Open a file and RepoTrek displays it with line numbers and syntax highlighting. Common languages such as

2026-08-09 原文 →
AI 资讯

Specification-first AI development with Ouroboros

Most AI coding tools fail before they write a single line of code. The prompt was vague, and the model quietly filled the gaps with assumptions you never agreed to. You ask for "a task management CLI." The model picks a data model, a priority scheme, a persistence layer — all reasonable, none of them yours. You find out three files in, during review, and you rework it. That's the loop most of us are stuck in: prompt, guess, rework, repeat. Ouroboros is an open-source Agent OS that fixes the input instead of the output. It's a local-first runtime layer that sits in front of Claude Code, Codex CLI, OpenCode, Gemini CLI, GitHub Copilot CLI, Kiro, Hermes, Pi, and Zcode, and replaces ad-hoc prompting with a five-stage, replayable workflow: interview, seed, execute, evaluate, evolve. The real problem is unclear intent Ouroboros' own framing of this is a simple table: Problem What happens Ouroboros fix Vague prompts AI guesses, you rework Socratic interview exposes hidden assumptions No spec Architecture drifts mid-build Immutable seed spec locks intent before code Manual QA "Looks good" isn't verification 3-stage automated evaluation gate The fix targets clarity, not capability. The loop Interview -> Seed -> Execute -> Evaluate ^ | +---- Evolutionary Loop ----+ Interview : Socratic questioning surfaces the assumptions you didn't know you were making. Seed : your answers crystallize into an immutable specification: acceptance criteria, ontology, constraints. Execute : the seed runs through a Double Diamond decomposition (Discover → Define → Design → Deliver). Evaluate : a 3-stage gate: Mechanical (free, deterministic checks) → Semantic → Multi-Model Consensus. Evolve : the evaluation output feeds back into the next generation's seed, and the cycle repeats until the system stops learning anything new. Each cycle is meant to converge, not just repeat. The stopping condition isn't a timer or a step count. It's math. The interview ends when the math says so This is the part I

2026-08-09 原文 →
AI 资讯

I built a friendlier FFmpeg with 36 verbs and a TUI (and it's one line to install)

Mediax: FFmpeg's Cooler Cousin 🚀 FFmpeg is powerful, but the syntax? A nightmare. So I built Mediax. 36 intuitive verbs. Interactive TUI. One-line install. Convert, compress, trim, crop, rotate, add watermarks... all with simple commands. bash mediax convert input.mov output.mp4 mediax compress large.mp4 small.mp4 --quality medium mediax trim video.mp4 clip.mp4 --start 00:01:30 --duration 10 Just run mediax for the interactive terminal interface. One-line install curl -sSL https://raw.githubusercontent.com/robert-sarah/mediax/main/install.sh | sh Built with Go Single binary — no dependencies Cross-platform: Windows, macOS, Linux Open source (MIT) 36 verbs for everything Conversion: convert, compress, gif Audio: extract-audio, mute, volume, replace-audio Video: trim, crop, resize, rotate, flip, concat, split Effects: speed, reverse, blur, sharpen, fade-in, fade-out Advanced: watermark, subtitle, thumbnail, template, batch Examples Resize for Instagram mediax template video.mp4 insta_video.mp4 --platform instagram Extract audio from 1:30 to 1:40 mediax extract-audio video.mp4 clip.mp3 --start 00:01:30 --duration 10 Detect video issues mediax wtf video.mp4 Why I built it I was tired of copying FFmpeg commands from Stack Overflow and breaking files because I forgot a flag. Mediax makes FFmpeg accessible for beginners and faster for pros. Try it today Repo: github.com/robert-sarah/mediax Contributions welcome! 🙏

2026-08-09 原文 →
AI 资讯

ratatop: the process table, and the parentheses that ruin everything

Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is free and source-available on Github. Star git-lrc to help devs discover the project. Do give it a try and share your feedback. CPU, memory, disks and network were all "read a file, do some arithmetic, draw it". This one is different. It reads about 400 directories every tick, and it is the first box you can actually interact with. There is one bug in here that I would bet real money most /proc parsers have shipped at some point. Let me start there. The parentheses that ruin everything Here is a line from /proc/[pid]/stat : 125045 (cat) R 125025 125045 125025 0 -1 4194304 92 0 0 0 11 22 0 0 20 0 7 0 ... Space separated. Field 1 is the pid, field 2 is the process name in parentheses, field 14 is user time, field 15 is system time, field 20 is thread count, field 24 is resident memory. So you split on whitespace and index into the result. Obvious. Works perfectly. Until someone runs a process called my (weird) app . 42 (my (weird) app) S 1 42 1 0 -1 0 0 0 0 0 5 5 0 0 20 0 3 0 ... That name is three whitespace-separated tokens, so every field after it shifts by two. Your thread count is now reading someone's page fault counter. Your memory is reading a scheduling priority. Nothing crashes. The numbers are just quietly, confidently wrong. And the process name is fully user-controlled. Anyone can rename a thread to whatever they like. The fix is to not split the whole line at all. Find the last closing parenthesis, take the name from between the first ( and that, and only then split what remains: fn parse_stat ( raw : & str ) -> Option < Stat > { let open = raw .find ( '(' ) ? ; let close = raw .rfind ( ')' ) ? ; let name = raw .get ( open + 1 .. close ) ? .to_string (); // Fields resume at `state`, which is field 3 in the man page's numbering. let fields : Vec <& str > = raw .get ( close + 1 .. ) ? .split_whitespace () .collect (); let field = | number : usize | -> u64 {

2026-08-08 原文 →