Agent Project eXecutable

One context layer.
Any AI coding tool.

A local daemon, CLI and web admin that runs your AI agents against a single, portable project context. Route to Claude Code, Codex, OpenCode or Aider — keep every agent’s memory and sessions in plain files. No database. No lock-in.

Built on APC — the Agent Project Context protocol →
apx — terminal

# 1 · Install

$ npm install -g apx

# 2 · Set up

$ apx setup

Interactive wizard — pick your provider, model and channels, then APX starts the local daemon.

Requires Node.js 20+ · macOS · Linux · Windows See examples →
How it works

One runtime between your tools and your channels

APX sits in the middle: it discovers your project context, orchestrates the right runtime or engine, and bridges every channel you talk to it through.

Claude Code
Codex
OpenCode
Aider

APX

Local Runtime
Discover Orchestrate Bridge
CLI
Telegram
MCP
Web admin

runtimes & engines  ·  one .apc/ context  ·  any channel

Routing / fallback

Claude Code
fallback
Codex
fallback
OpenCode
fallback
Local engine

It’s a CLI first. The daemon auto-starts on your first call — you just run things.

apx — local

      
Examples

Talk to your agents

Real commands — copy one, point it at an agent like sofia, and APX routes it to the right runtime. The session and memory land in .apc/.

Register a project

Detect AGENTS.md and write the .apc/ context.

$apx init

Spawn an agent

A full runtime session, routed and logged end to end.

$apx run sofia --runtime claude-code “Review the open PRs and summarize them”

Ask a quick question

A one-shot LLM call — no full session needed.

$apx exec sofia “What is my role in this project?”

Read an agent’s memory

Plain markdown you can read — and append to.

$apx memory sofia

Switch runtime, same context

The same agent, handed to a different coding tool.

$apx run sofia --runtime codex “Add tests for the parser”

Watch what’s happening

Tail live activity across every channel.

$apx messages tail
What APX provides

A lot of moving parts, all local

Started as a way to stop copying configs between IDEs. Became a runtime. Every piece runs on your machine against whatever endpoints you point it at.

Daemon + CLI

A local HTTP daemon auto-starts. apx run spawns a full agent session in any runtime.

Multi-runtime

Claude Code, Codex, OpenCode, Aider. Route to any runtime; fall back automatically.

Routing & fallback

Declare a preferred runtime and a chain. If one is missing, APX walks down to the next.

Filesystem-first

No database. Agent definitions and curated memory live in .apc/, committed with your repo.

Multi-engine

Direct LLM calls via Anthropic, OpenAI, Gemini, Ollama, or a mock. Per project or global.

Telegram + MCP

Built-in Telegram bot plugin with identity roles. Per-project MCP servers, exposed or consumed.

Curated memory

Per-agent memory you read and append from the CLI — apx memory <slug>. Plain markdown.

Sessions & activity log

Every invocation logged to JSONL across channels. Stream it with apx messages tail.

Agents & skills vault

Reusable agent templates and skill prompts. Import from the vault, scope per project.

Use cases

What you build with APX

Concrete workflows the runtime is designed for. Click or swipe to browse.

Review PRs across any runtime

Point an agent at your repo and let APX route to Claude Code — falling back to Codex or OpenCode if one isn’t installed. The session and its summary land in .apc/.

For teams standardizing AI review
Operate your agents from Telegram

Talk to project agents from your phone. Identity roles gate who can do what, and every message is logged per channel for a full audit trail.

For ops & on-call workflows
Memory that lives in your repo

Curated, per-agent memory is plain markdown, committed and reviewable alongside your code. No vendor database, no hidden state, no lock-in.

For privacy- & portability-first teams
Run the same prompt across engines

Send one prompt through Anthropic, OpenAI, Gemini or a local Ollama model with apx exec, configured per project or globally.

For evaluating models & cost
Same context, every channel

One conversation, however you talk to it

Start on Telegram, continue on the web, fire up Claude Code, end up in your project. APX carries the session, the memory, and the routing — the agent never forgets where you left off.

Step 1

Telegram

You ask the project agent something from your phone.

Step 2

Web admin

Open the web UI; the same thread is already there.

Step 3

Claude Code

Hand it off to a coding runtime — with the same context.

Step 4

Your project

Changes, memory and session land in .apc/.

You → RobyTelegramHow are the open PRs doing?
context carried: 1 thread · 0 file edits · Telegram
See it in action

Hover to take a closer look

Drop in a screen recording per surface — each panel expands and plays on hover.

apx
$ apx init
registered my-project
$ apx run sofia --runtime claude-code
▶ routing → claude-code …
session complete
CLI & daemon
APX · localhost
APX
Projects
Agents
Sessions
MCPs
apx · my-project
agent sofia
runtime claude-code
Web admin
R
Roby
online
How are the open PRs doing?
4 open. 1 needs changes. Want me to review them?
go ahead, summary please.
Telegram
Hablá o escribí a Roby…
⌘Gpara hablar⌥/para escribir
Desktop
coming soon
Deck soon
APC
The protocol underneath

Agent Project Context — one convention, every tool

Every AI coding tool wanted its own folder, its own memory, its own rules file. The context was the same — the project — but it lived in six places and drifted in all of them.

APC defines a single on-disk convention for project context — agents, memory, sessions, MCP servers, skills. APX is its reference runtime: read the convention, route to any compliant tool, and keep the whole trail in files you own.

01

Define once

Agents and skills live in .apc/, committed with your repo.

02

Run anywhere

Any APC-aware tool reads the same context — Claude Code, Codex, OpenCode, future runtimes.

03

Stay portable

No vendor database. Switch tools, fork the repo, move clouds — the context comes with you.

Read the APC spec →
Get started

Install it and run.
That’s it.

Open source and free. No sales team, no demo request — just install the package. Requires Node.js 20+.

$ npm install -g apx
View on GitHub
Filesystem-first Multi-runtime Local daemon MCP-ready No lock-in