ls -l ~/projects
Projects
- -rwxr-xr-x194Kaivoice-pbxmaybe the world's smallest PBX: one file, set up by chattingget it
- -rw-r--r--107Ksip-ladder-labwatch SIP messages build a call: transfer, hold, conferenceopen
- -rw-r--r--40Kvoice-journey-labfollow a voice into packets and back; break the network, hear the damageopen
- -rw-r--r--51Kpacket-rusharcade: you are the network, keep Alice's call to Bob aliveplay
- -rw-r--r--50Kbutterfly-pendulumschaos toy: hundreds of pendulums, a hair apart, near a black holeopen
The labs run entirely in your browser. No sign-up, no cookies. Opens are counted anonymously.
cat aivoice-pbx/README
A PBX you talk to
Possibly the smallest PBX in the world. Voicemail, menus, queues, conferences, recording and an outside line all fit in one 194KB file, smaller than most phone photos, with no libraries, no database and no installer. Real softphones register to it and call each other. There is no settings maze: you type what you want in a chat window, and it does it. Any wording works.
add extension 103 for Carol
Added extension 103 for Carol. To connect a phone as Carol (103): server 192.168.1.25, username 103, password jfRjRTHXSx.
if bob doesn't answer in 20 seconds send it to carol
Bob (102) now forwards when not answered within 20 s to Carol (103).
create ring group 600 called Sales with 101 102 103
Created ring group 600 "Sales": rings Alice (101), Bob (102), Carol (103) all at once.
make a menu on 500: press 1 for sales, 2 for bob
Created menu 500: 1 → ring group 600 "Sales", 2 → Bob (102). It will say: "Welcome. For Sales, press 1. For Bob, press 2."
- extensions & call waiting
- hold with music
- blind & attended transfer
- forward always / busy / no answer
- do not disturb
- voicemail + message light
- voice menus (IVR)
- ring groups & queues
- conference rooms with PIN
- call recording
- outside line (SIP trunk)
- Claude AI mode (optional)
aivoice-pbx --brain claude
Optional: add Claude, describe the whole office
You don't need this. Every feature works without Claude, and the built-in reader needs no internet and no account. The built-in English reader handles one change at a time. Plug in your own Claude API key from Anthropic and the PBX hands your messages to Claude instead, so you can describe a complete setup in one go and let it work out the steps.
use AI with key sk-ant-••••••••
Claude mode is on (API key saved). I'll ask Claude to understand your messages; the built-in parser is the backup.
we're a 4 person dental clinic. alice is reception, bob carol and dave are dentists. calls ring alice first, then all the dentists together, and if nobody picks up take a voicemail for alice
- Your key, your account. Get one at console.anthropic.com. Anthropic bills your account for what you use; aivoice.tech never sees it.
- Stays on your PC. The key is saved in
pbx-data/config.jsonand only ever sent to api.anthropic.com over HTTPS. Phone passwords and PINs are hidden from what Claude sees. - Limited to the PBX. Claude can only make the same changes you could make in the chat. It can't run programs or touch files on your computer.
- Never stuck. If Claude can't be reached, the built-in reader answers.
turn off AIswitches back any time.
./install --quick
Running in a minute
Windows 10 / 11
- Download the Windows zip and unzip it.
- Double-click
start.bat. It installs Node.js if needed. - Click Allow on the firewall prompt. The chat opens.
Linux / Raspberry Pi
sudo bash aivoice-pbx-linux.sh
Installs everything, runs as a service, prints your phone logins.