Project Info

Vibe Signal

Devpost

Inspiration

Vibe coding is changing how we build software, but it still keeps us tied to the desk. We were inspired by physical AI coding controllers that make agent activity feel tangible, and asked: what if those controls moved with us on devices we already carry?

What it does

Vibe Signal connects Codex to an iPhone and Apple Watch. It displays the agent’s live state—idle, working, waiting, completed, or error—and uses colors and haptics to make each state recognizable at a glance. From the Watch, users can approve or deny requests, continue or retry a turn, stop an active task, and send new prompts by voice. Pairing requires only a QR scan, and communication stays on the local Wi-Fi network.

How we built it

We built Vibe Signal as three connected layers: A TypeScript VS Code extension receives Codex lifecycle events through hooks. A local WebSocket server converts those events into a consistent state protocol and accepts remote commands. Native SwiftUI apps for iPhone and Apple Watch display status and send actions back through WatchConnectivity. The iPhone acts as the bridge between the desktop and Watch. Pairing data includes the computer’s local address, port, and authentication token. Voice recordings travel from the Watch to the iPhone for transcription, then return to Codex as prompts.

Challenges we ran into

The hardest challenge was making several systems behave like one reliable product. Codex hooks, WebSockets, iOS background execution, WatchConnectivity, speech recognition, audio playback, and Xcode signing all have different lifecycle constraints. We had to handle stale state, reconnect dropped sockets, prevent duplicate commands, keep the iPhone bridge active in the background, and make audio continue after the Watch screen dims. We also worked through delayed Watch file transfers, speech-recognition timing, and compatibility with older generated Xcode projects.

Accomplishments we're proud of

We are most proud that Vibe Signal closes the complete coding loop from the wrist. A user can describe a change by voice, send it to Codex, follow the agent’s progress, respond when it needs input, and receive the result without returning to the computer. We also built a local-first architecture with QR pairing, token authentication, live state synchronization, background connectivity, distinct haptics, and high-quality spoken responses.

What we learned

We learned that a useful AI companion does not need to reproduce the entire desktop interface. A small number of clear states and contextual actions can communicate what matters while reducing distraction. We also learned how important lifecycle design is across Apple devices. A connection that works while both apps are open is only the beginning; background suspension, audio sessions, network changes, and delayed Watch transfers must all be treated as normal operating conditions.

What's next

Next, we want to add a secure cloud relay so Vibe Signal can work beyond the local Wi-Fi network. We also plan to support more coding agents, multiple computers, richer notifications, Dynamic Island and Live Activities, and a macOS menu bar companion. The larger vision is to make agent state available wherever the developer is—not by turning every device into a remote desktop, but by delivering the right signal and controls at the right moment.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • HTMLIn code
  • JavaScriptIn code
  • SwiftIn code
  • TypeScriptIn code
  • Node.jsClaimed

4 of 5 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

  • CursorCommits

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

257 KB

Source files

41

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars