Build AI agents.
Make them work together.

Create agents with their own brain, memory, voice and tools. Chain them into teams. Connect any agent or entire team to Telegram, voice, webhooks, cron, or all at once. Everything runs on your server.

# One command. Fully local. No API keys.
$ curl -fsSL https://magec.dev/install | bash

# Admin panel → localhost:8081
# Voice interface → localhost:8080
Agents

One agent, everything it needs

Pick its brain. Plug in tools, skills and memory. Each agent is an independent unit, assembled in minutes.

all AI models
mcps
skills
semantic memory
and more
AGENT writer_1
all AI models
semantic memory
mcps
skills
and more
AGENTwriter_1
MCPs & Skills

Real tools, learned know-how

Through MCP your agents operate real systems. Skills are playbooks they load to do the job the way you want.

AGENT writer_1
MCP home_assistant
turn_on_lights
set_temperature
snapshot_camera +38
SKILL daily_report
1. gather metrics
2. compare trends
3. draft summary
AGENTwriter_1
MCPhome_assistant
turn_on_lights
set_temperature
snapshot_camera +38
SKILLdaily_report
1. gather metrics
2. compare trends
3. draft summary
Memory

It learns you

Things you mention in passing become long-term facts. Months later, your agents still remember, and it shows.

march "I'm vegetarian"
april "my partner is Ana"
may "we moved to Tenerife"
MEMORY facts
diet: vegetarian
partner: Ana
home: Tenerife
june "book us a dinner saturday"
the agent, without asking table for two, veggie tasting menu, Santa Cruz de Tenerife
march"I'm vegetarian"
april"my partner is Ana"
may"we moved to Tenerife"
MEMORYfacts
diet: vegetarian
partner: Ana
home: Tenerife
june"book us a dinner saturday"
the agent, without askingtable for two, veggie tasting menu, Santa Cruz de Tenerife
Flows

Chain agents into teams

Draw the pipeline on a canvas: parallel branches, condition routing, loops. One agent writes, another decides, code does the plumbing.

Start
AGENT researcher
ROUTER quality_gate
pass: publisher
fix: format_md
retry: researcher
AGENT publisher
CODE format_md
# deterministic step: no tokens best = sorted(drafts, key=score)[-1] out = render(best, format="md")
Start
AGENTresearcher
ROUTERquality_gate
pass: publisher
fix: format_md
retry: researcher
AGENTpublisher
CODEformat_md
# deterministic step: no tokens best = sorted(drafts, key=score)[-1] out = render(best, format="md")
Clients

Anything can wake them

Voice, Telegram, webhooks, cron, plain HTTP, even other agents over A2A. Every client has its own token and reaches only the agents and flows you allow.

"Oye Magec"
telegram, slack, discord
POST /webhook/alert
cron 0 7 * * *
other agents (a2a)
FLOW morning_brief
"Oye Magec"
telegram, slack, discord
POST /webhook/alert
other agents (a2a)
cron 0 7 * * *
FLOWmorning_brief
Voice

Talk to it like a person

Wake it with your voice and just talk, like Alexa, if Alexa were actually smart and knew you.

"Oye Magec, dim the lights"
AGENT home_butler
stt: dim the lights
mcp: lights.dim(30%)
tts: "done"
"Done. Anything else?"
"Oye Magec, dim the lights"
AGENThome_butler
stt: dim the lights
mcp: lights.dim(30%)
tts: "done"
"Done. Anything else?"
Secrets

Models never see your keys

Secrets live encrypted at rest and are swapped in only at call time. The model works with placeholders; your tools get the real value.

{{secret:API_KEY}} what the model sees
sk-live-4f8a91c2 what your tools get
gAAAAABmJx9v3q
Zk1uYzR0aXlXcU
x2b3JQZXJhbmRv
at rest: encrypted
{{secret:API_KEY}}what the model sees
sk-live-4f8a91c2what your tools get
gAAAAABmJx9v3q
Zk1uYzR0aXlXcU
x2b3JQZXJhbmRv
at rest: encrypted
Runs

Every run, recorded

Each step, each decision, each failure: timestamped and inspectable from the admin panel.

researcher2.1s
quality_gate0.1s
format_md0.2s
publisherfailed
publisher (retry)1.4s
researcher2.1s
quality_gate0.1s
format_md0.2s
publisherfailed
publisher (retry)1.4s