Eidolon banner

Eidolon

3 devlogs
17h 6m 58s

Eidolon, a suite that aims to provide an AI-powered Bluetooth call proxy and orchestrator for desktop and ESP32. Intercept calls natively and let AI handle the conversation. (Current release: v0.0.1-PoC)

This project uses AI

Used Gemini 3 Pro Preview for most of the boilerplate and initial implementation.

Demo Repository

Loading README...

animesh_varma

Shipped this project!

Hours: 17.12
Cookies: 🍪 401
Multiplier: 23.41 cookies/hr

Eidolon v0.0.1-poc — Native Bluetooth AI Call Proxy!

Whewww, it’s finally here! After wrangling with low-level OS kernel sockets and
ESP32 C firmware, I am officially shipping the first Proof-of-Concept for
Eidolon!

What is it?
Eidolon is an open-source Bluetooth call proxy. It makes your
computer (or an ESP32) pretend to be a standard Bluetooth headset (HFP). This
lets you seamlessly intercept live cellular phone calls at the native hardware
level, pipe the audio into a terminal, and eventually let an AI handle the
entire conversation for you.

What did I make for this PoC?

  • Direct Linux Kernel Injection: Built a custom controller that bypasses
    PulseAudio/PipeWire entirely. It binds directly to the Linux kernel via
    AF_BLUETOOTH sockets to read/write raw audio packets straight into the call!
  • ESP32 Hardware Delegate: Since macOS and Windows heavily restrict Bluetooth
    APIs, I built a custom ESP-IDF C firmware to offload the hardware
    interaction to an ESP32, streaming the audio back over a Wi-Fi TCP bridge.
  • The Audio Loop: Hooked up a Curses TUI, Faster-Whisper for offline STT, and
    Edge-TTS to prove the audio injection actually works.

What was challenging?
Low-level Bluetooth audio is a nightmare to standardize.
Apple completely locks down their kernel (forcing me to build an Objective-C
“acoustic bypass” for Mac). As for the ESP32, getting 16kHz audio over Wi-Fi
without awful packet latency was tough, it’s currently functional but it’s still pretty choppy! (and don’t get me started in the brownout detector ;()

What’s next?
This release was all about proving the core hardware routing works.
The immediate next step is ripping out the basic STT/TTS and plugging in true,
full-duplex conversational models (like Gemini Live or OpenAI Realtime),
followed by building a mobile companion app to control it!

animesh_varma

Whewwww, itsss finally donee (the PoC at least…), I will be shipping the project really soon, as for the changes I just polished up the setup script, tested it to make sure it runs on both linux and MacOS, and recored the videos for the README
[the img is from the testing video…]

Attachment
0
animesh_varma

Whewww, finally managed to make the audio in ESP32 barely work, the audio comes out fragmented but is finally legible, so that’s a win…I guess!!
Anyway now I am working on polishing the repo, making the setup work correctly, drafting a readme and setting up some demos for the same, see you soon in the ship!!

Attachment
0
animesh_varma

Well first of all, welcome! this is the first devlog I am going to write completely myself without the use of any AI, so please excuse any grammatical or spelling mistakes as I am going to make quite a few of them. anyway that’s besides the point, the thing is I have been working on a new project for quite some time [as you can see, around 12 hours logged]. Now, why were there no devlogs in that time? The thing was that 2 of my friends had committed to building this project together and I was waiting for them to join, and as it was not my own project I decided against putting it on flavortown, but guess what… they both bailed on me (hence the project then being posted here, rest assured all the commits were by me)! 
Anyway, eidolon is ment to function as a bridge to allow you deploy a live AI model [full duplex to be exact] as your personal assistant which can send and receive phone calls on your mobile device on your behalf. It functions by using the host to set up a Bluetooth HFP that a mobile considers as a headset and sends audio to, as it can send and receive audio, it can interact natively with the call.
Anyway curuntly its in very early PoC stage where I have just made the linux version working correctly [macOS version is also in its final stage of the PoC but will not work as intended because of kernel level constraints]. I am curruntly working on the esp32 version [ohh did I mention I will use the esp32 I bought from the shop to expand it to work without any desktop devices, its going to be sooo flipping cool!!]
also also, curuntly the linux and any other working version just have a basic TTS and STT implementation ment to function as a PoC, in the next (first ship) ill push all the working versions of it [esp32, linux, windows n mac] with the PoC TTS and STT. after it is done I’ll begin to work on actually implementing a live AI API [prolly openAI as I can get their credits from the shop and they are the only ones which provide a live API]
Also did I mention Eidolon will also have a mobile app operating over wifi to share live data about calls like transcription, what the agent is saying and providing the ability to guide it? again, it’ll be sooo fun, can’t wait!! [the attached screenshot is from the CursesTUI which I am using in the PoC working on linux (and me connecting to my pixel 9 and testing it with a call, also debug flag was set to true hence so many logs)!]

Attachment
Attachment
Attachment
0