SShortSingh.
Back to feed

CitroLabs Launches Ego-Lite, an Open-Source Browser Built for Human-AI Co-Browsing

0
·1 views

CitroLabs has released Ego-Lite, an open-source desktop browser designed to let humans and AI agents browse the web simultaneously without interfering with each other. Traditional automation tools like Playwright and Selenium typically hijack a user's screen and mouse, but Ego-Lite isolates agent tasks to background tabs while the developer continues working normally. The browser allows AI agents to inherit an existing logged-in session, eliminating the need to handle passwords, MFA, or API keys separately. Ego-Lite includes a built-in skill compatible with terminal-based AI coding agents such as Claude Code, Cursor, and Codex, enabling them to click, type, and read page content via simple commands. The project is available as an open-source repository on GitHub and is positioned as a lightweight, low-resource alternative to conventional browser automation setups.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

BlocSignal lets Flutter Hooks consume BLoC state natively via signals_hooks

A new approach called BlocSignal integrates Flutter's BLoC state management with flutter_hooks by replacing asynchronous stream pipelines with synchronous signal primitives from Rody Davis's signals.dart library. Unlike classic BLoC, where state updates travel through microtask event queues, BlocSignal exposes bloc.state as a native ReadonlySignal, enabling direct consumption inside HookWidgets. Developers can use standard signals_hooks utilities such as useSignalValue, useSignalEffect, and useComputed to read state, trigger side effects, and derive computed values without any custom glue-code packages. This eliminates the need for nested widget wrappers like BlocBuilder and BlocListener, or third-party adapters like flutter_hooks_bloc, reducing boilerplate significantly. The integration is available out-of-the-box through the official signals_hooks package, requiring no additional dependencies beyond BlocSignal itself.

0
ProgrammingDEV Community ·

Engineer Catches Hidden RTL Bug in AXI Spec Two Weeks Before Chip Tapeout

A hardware verification engineer discovered a critical latent bug in an AXI interconnect project just two weeks before tapeout, despite the design having passed over 500,000 simulation cycles and achieving more than 98% code coverage. The issue surfaced when a senior architect questioned what would happen if the AWLEN parameter wrapped around 256 during an INCR burst — a scenario the protocol spec left as undefined behavior. Because the testbench had been configured to skip undefined sequences, a state machine hang in the RTL had gone undetected throughout the verification process. The incident highlighted that verification must go beyond confirming the RTL matches the spec, and should also validate that the spec itself is complete and correct. The engineer concluded that the most critical skill in chip verification is not tool expertise, but knowing which edge-case questions the specification authors may have overlooked.

0
ProgrammingDEV Community ·

Most UVM testbenches fail coverage closure for one reason nobody talks about — and it's not your constraints.

After reviewing 20+ verification projects, I see the same pattern: 5 well-written sequences The fix is boring but it works: Before you write a single line of driver code, define your sequence taxonomy: baseline_seq — protocol-compliant, valid stimulus This one habit saves 3–4 weeks of closure pain at tape-out. Hashtags: #SystemVerilog #UVM #HardwareVerification #ASIC #ChipDesign #EDA

0
ProgrammingDEV Community ·

Silent Go bug blocked dead push subscription cleanup, causing endless wasted requests

A developer working on agentrq, a Go backend for an AI agent task manager, discovered a logic bug in the web push notification path that had never triggered any error or alert. The flaw stemmed from a misunderstanding of Go's net/http contract: a 410 Gone response is treated as a successful request, so the error-handling branch meant to delete expired subscriptions was never reached. Because the cleanup code was unreachable from the start, stale push subscription records accumulated in the database without any upper bound. Every subsequent notification event continued attempting delivery to already-dead endpoints, adding a small but permanent overhead per dead subscription per event. The bug caused no crash or visible failure, making it invisible to standard monitoring while silently degrading system efficiency over time.

CitroLabs Launches Ego-Lite, an Open-Source Browser Built for Human-AI Co-Browsing · ShortSingh