Local first
The useful version runs on your hardware. Local models, local files, local control, with the cloud as an option rather than the foundation.
Stargaze is the software house of Pranav Dwivedi. Autonomous agents, local-first tools and vision systems, built close to the metal and released when they hold.
The useful version runs on your hardware. Local models, local files, local control, with the cloud as an option rather than the foundation.
No dashboards that perform. No notifications that beg. Software should do the work and stay out of the way until it has something worth saying.
Agents that touch devices, vision that reads a moving batter, interfaces that survive actual use. The test is outside the demo.
The first four systems being folded into Stargaze. The full index, including the public lab projects, lives on the work page.
Files, processes and local sockets before new infrastructure. The least surprising layer is usually the one that survives the longest.
Each service should be small enough to explain, replace and debug on its own. Integration is a contract, not a pile of shared state.
The first release does not need every feature. It needs one useful path through the system that works on a real device, on a bad connection.
Stargaze is in private build. The first public release will collect the core systems under one roof, with the agents first and the lab projects alongside them.
Ask about early accessWhy the branch is called Stargaze.
Stargaze is the part of the work that looks past the current release. It is a software house, not a personal brand: a place to hold the agents, tools and vision systems under one standard.
The name is a direction, not a promise. The useful version is built close to the metal, released when it holds, and allowed to stay small enough to understand.
The first public shape of the branch.
JARVIS and AXIOM as the first systems, with the memory and tool layers made legible.
Cricket Motion and the sports-vision work, starting with a reliable batting session.
The Android and Linux utilities that make the rest of the work possible.
A public home for the release notes, the systems and the status of each build.
A short explanation of what runs locally, what leaves the device and why.
A small group of people who will use the systems on real devices before the wider release.
The systems that define the branch.
Persistent personal AI across rooted Android and Linux. Memory, tools, device control and model routing.
PrivateLocal agent interface with a voice pipeline, embedded console and cross-device sync.
PrivateA console pattern for showing what an agent is doing, what it tried and what failed.
LabA real shell and coding loop on Android, built for the device in the pocket.
LabPublic experiments with a clear question.
Batting analysis with pose estimation, bat velocity and swing trajectory scoring.
PublicA zero-dependency fintech interface study built around fluid micro-interactions.
PublicA tournament engine with brackets, live leaderboards and hardened Firestore rules.
PublicServerless watch parties that keep the room in the browser.
PublicA market simulation with spreads, slippage and fills that do not flatter the user.
PublicSmall software that repairs or extends a machine.
Bluetooth recovery on rooted Android, without ADB or a desktop.
PublicA lightweight remote-control bridge for a desktop from a phone or browser.
PublicAn obfuscated TLS proxy written in Zig as a protocol exercise.
PublicPeer-to-peer chat over a LAN, hosted as a static page.
PublicA tiny peer-to-peer chat with no backend or sign-up.
PublicThe shape the systems share.
The phone or laptop is the first target. Local files, local sensors and a real permission model.
Python and Kotlin for the working layer, with TypeScript for interfaces and tooling.
Local first, hosted when necessary. The router must make the trade-off visible.
A file-backed store with an inspectable index, not an invisible personality.
Small, named actions with explicit inputs and a recovery path.
State, intent and failure visible in the same place.
What the principle means in the build.
The choice between local and hosted is part of the product.
A router should not be a magic switch. It should know the task, the device, the latency budget and the privacy cost. If a request needs a hosted model, the interface should say so before the data leaves.
The first version is deliberately simple: a small policy table, a visible decision and a manual override. The interesting work is not the model list. It is making the trade-off understandable when the user is in a hurry.
What the system keeps and how you can inspect it.
Stable preferences and context, stored with a source and a date.
InspectA compact record of what happened in a session, not a transcript of everything.
InspectA log of calls, arguments and results, with a clear failure state.
InspectA direct way to remove a memory and see what changed.
ControlThe rules that keep an agent useful without making it reckless.
Speech is a channel, not a personality.
The voice layer is useful when the hands are busy or the screen is far away. It is not a reason to make every interaction a performance. The system should support a short command, a longer dictation and a silent fallback.
The hard parts are interruption, confirmation and the moment a spoken request turns into a tool call. Those are interface problems before they are model problems.
A camera is only useful if it produces a decision.
Cricket Motion started with a simple question: can a phone camera tell a batter something useful about the swing? The answer has to be more specific than a skeleton on a screen. It has to connect a measurement to a change in the next repetition.
The first release is a session tool, not a coaching oracle. It should capture cleanly, show the useful angle and keep the data honest about what it can and cannot see.
The phone is a computer, not a preview.
Most of the work assumes a rooted Android device can be a real workstation. That means Termux, local files, background services and a permission model that is treated as part of the product.
The constraint is useful. A tool that survives a phone has fewer hidden assumptions than one that only runs on a desk with a reliable power supply.
The baseline for a system with device access.
A rough sequence, not a promise of dates.
The boundaries are part of the design.
The problems still on the bench.
How much useful intelligence can run on a phone before the hosted model becomes an honest requirement?
CoreHow much agent state should the interface show before it becomes another dashboard?
UXWhich permissions can be delegated without making the user responsible for every tool call?
SecurityWhat does a cricket session need to change in the next repetition, not only in the report?
VisionWhich parts of the core can be public without turning the release into a support burden?
BranchThe tools under the current build.
Agents, vision, local services and the glue that holds the lab together.
Android interfaces, rooted-device tools and the Compose layer.
Agent interfaces, web surfaces and the visibility console.
Small systems work where explicit control is worth the friction.
Pose estimation for the cricket experiments.
Local service boundaries that stay readable.
The phone as a real shell, not a remote preview.
Release 01 is still in private build. If you want to test it on a real device and can live with rough edges, say what you would use it for.
Send a noteShort observations from the build.
A feature that only works on the desk is still a prototype, whatever the release notes say.
NoteAn agent that can say what went wrong is more useful than one that only succeeds on the happy path.
NoteEvery hidden step saves a click and spends a little trust. Use it carefully.
NoteA narrow release that holds is better than a broad one that needs a rescue plan.
Note