Inspiration

Voice assistants, browsers and coding agents each live in their own silo. I wanted one partner that could sit with me on the couch during a movie, play a quick game, and also help with real work like running tests or committing code, without giving up control over anything risky. That became Sidekick.

What it does

Sidekick is a voice-first AI partner with one open MCP server behind it.

As a companion

  • Movie Buddy: say "Hey Sidekick, what just happened?" while a film plays. It lowers the video volume and answers using only the real subtitle lines, so it doesn't invent plot details.
  • Voice games: chess (full rules via chess.js with an AI opponent), Tic-Tac-Toe and 2048, all playable by voice.

As a helper Sidekick exposes 11 tools through MCP: coding.execute, coding.run_tests, workspace.inspect, vcs.diff, vcs.commit, system.info, system.volume, system.media_control, system.open, system.clipboard and web.fetch.

Safety by design Every tool has a risk level. Reading and running tests happen automatically. Editing files and committing wait for the user's approval.

One server, many front ends The same tools work from an Alexa+ style voice flow (Alexa skill endpoint plus an Alexa+ simulator in the web app), from the React web app, and from external MCP clients like Claude Desktop, Cursor or MCP Inspector.

How we built it

  • Core brain: Python and FastAPI for intent routing and Alexa request handling
  • Execution service: Python tool registry with an approval flow and live job events over SSE
  • MCP server: JSON-RPC 2.0 over stdio [plus Streamable HTTP, spec 2025-11-25 - keep only if finished and tested]
  • Coding providers: Amazon Bedrock (Qwen3 Coder), an HTTP API provider (Claude/OpenAI-compatible) and a local CLI provider
  • Web client: React 18, Vite and TypeScript, with chess.js for the chess engine
  • Movie Buddy: an OpenAI-compatible endpoint (Groq), grounded on subtitle lines
  • Hosting: Render, https://sidekick-jq3l.onrender.com/
  • Quality: 395 backend tests (pytest) and 179 frontend tests (vitest)

Challenges we ran into

  • Deciding which actions run automatically and which need approval, and making that clear to the user
  • Keeping Movie Buddy honest by grounding every reply in real subtitle lines instead of model guesses
  • Sharing one tool registry across stdio, HTTP and the Alexa path without duplicating logic

Accomplishments that we're proud of

  • One tool registry that serves Alexa, the web app and external MCP clients
  • An approval flow tied to each tool's risk level
  • A companion side (Movie Buddy, voice games) and a work side (coding, git, system) in the same product
  • 395 backend and 179 frontend tests, and an MIT-licensed open-source repo

What we learned

how mcp works and alexa routing decision and making user experience smooth and good

What's next for Sidekick

  • Publish a full Alexa+ experience once the platform allows it
  • More tools (calendar, notes) under the same risk and approval model
  • Per-user permission profiles and an audit log of approved actions
  • More Movie Buddy features, such as watching with friends in sync

Built With

Share this project:

Updates

Submission history