Skip to content

Latest commit

 

History

322 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sprocket

Goal: To make the world's best platform for developing hardware and software.

Here's what makes Sprocket special:

  • The only AI agent that can work on both hardware and software.
  • Retrieves best-in-class context from the web for everything it does, so it stays incredibly reliable.
  • Buys anything from any website when you ask, from hardware parts to SaaS subscriptions.
  • Makes beautifully detailed schematics, creates your BOM, and writes assembly instructions.

Sprocket Demo

Sprocket

Using Sprocket

Note

You can run Sprocket using any of the ways defined below with no impact on Sprocket's capabilities or performance. The desktop app may take more RAM than using Sprocket through your browser.

Run without installing

npx @spikonado/sprocket

The above runs Sprocket through your browser unless you have the desktop app installed. Browser launch URLs contain workspace navigation state only. The local server creates the browser session after checking the socket peer, Origin, and Host.

Remote browser access

Keep Sprocket on its default loopback address and put an HTTPS reverse proxy in front of it. For example, Tailscale Serve can expose the local server inside your tailnet:

tailscale serve --bg http://127.0.0.1:17731

Open the HTTPS URL printed by Tailscale. Remote browser sign-in uses WorkOS device authorization and accepts only the account already signed in by sprocket login on the host. Signing out in that browser revokes its browser session without signing the host out. Plain remote HTTP is rejected. Other reverse proxies must connect to Sprocket over loopback and preserve the browser-facing Host header.

Desktop app

Install it for your OS from the latest GitHub Release Artifacts and run it.

CLI

npm i -g @spikonado/sprocket
sprocket

The above runs Sprocket through your browser unless you have the desktop app installed.

To always open a tab in your browser when using Sprocket, use the --web flag:

sprocket --web

Run an agent from the CLI

sprocket login
sprocket run "Fix the failing tests"
sprocket run --thread <thread-id> "Add regression coverage"

Inline prompts, --prompt-file, and stdin report only the current run. --thread uses its history as context without replaying it. Progress goes to stderr, the final answer to stdout, and full transcripts remain in the data directory and app.

Workspaces

Pass a directory to open or reconnect that workspace in a new thread:

sprocket .
sprocket --web ../my-robot

Sprocket remembers attached workspaces and local server sessions between launches. Local state lives in $HOME/.sprocket (or %USERPROFILE%\.sprocket on Windows when HOME is unset). Override with SPROCKET_DATA_DIR.

Additional CLI reference

Command Behavior
sprocket update Update a global npm, bun, pnpm, or yarn install on the current channel.
sprocket update --check Report whether an update is available without installing.
sprocket upgrade Alias for update.
sprocket serve Run the local server in the foreground without launching a client.
sprocket serve --api-only Serve only /api; intended for development (see Development).

Run sprocket --help or sprocket serve --help for all options.

Common Sprocket server overrides are available as environment variables:

Variable Purpose
SPROCKET_DATA_DIR Directory for internal process identity, sessions, and workspace state.
SPROCKET_PORT Local server port; defaults to 17731 for installed use.
SPROCKET_HOST Bind host; defaults to 127.0.0.1.
SPROCKET_DESKTOP_EXECUTABLE Full path to the desktop executable to be used by the Sprocket CLI.
PUBLIC_CONVEX_URL Convex deployment used by the agent runtime.
PUBLIC_MODEL_GATEWAY_URL Public AI gateway origin for the UI catalog (GET /api/v1/models).
SPROCKET_STATIC_DIR Web build to serve instead of the bundled build.

Development

Requirements

  • Bun 1.x, version 1.4.2 or newer
  • Node.js 24.x, version 24.14 or newer
  • A current stable Rust toolchain

Install dependencies:

bun install

Running Sprocket

Start the browser development environment:

bun dev

After creating a Convex deployment and configuring AuthKit, give the deployment an API key for each model provider you want to enable.

This runs Vite at http://localhost:5173 and the Rust API at http://127.0.0.1:7731, with development state kept in .sprocket-dev inside the repository. It targets the dev Convex deployment. To run against the production Convex deployment with ~/.sprocket state instead:

bun dev:prod

To develop against Electron instead, run:

bun dev:desktop

The dev:prod / dev:prod:desktop variants use the production Convex deployment and ~/.sprocket.

Building and testing

cargo test
bun run test
bun run build
prek run -a

Create a local Electron installer package with:

bun run build:release

Artifacts are written to apps/desktop/dist/ as sprocket-desktop-* (.AppImage / .dmg / .exe depending on the host OS). Published installers come from GitHub Releases; the sprocket CLI is published separately on npm.

License

Sprocket is licensed under the Functional Source License, Version 1.1, ALv2 Future License. Third-party material remains under the licenses listed in THIRD_PARTY_NOTICES.md.

Troubleshooting

  • If 17731 is already occupied, set SPROCKET_PORT before launching.
  • If installed sign-in cannot save or restore its native session, check that your operating system credential service is available. Linux development environments need a working Secret Service provider.
  • If sprocket opens the browser instead of the desktop app, install sprocket-desktop from GitHub Releases onto PATH, or set SPROCKET_DESKTOP_EXECUTABLE.
  • Unsigned macOS and Windows desktop builds may need a Gatekeeper / SmartScreen override the first time you open them.
  • Contact aarav@spikonado.com for help.

About

The best and only AI agent for developing both hardware and software

Resources

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages