Skip to content

A.R.C. Service Command Reference

Operator reference for all platform services — ports, health endpoints, make targets, and async interfaces.

Tiers: think | reason | ultra-instinctDev-only profile: observe (think + SigNoz UI, not a tier) Root command: make dev [PROFILE=<tier>]


Infrastructure Services

gateway (arc-gateway)

FieldValue
TechnologyTraefik v3
Port80 (HTTP), 8090 (dashboard)
Healthhttp://localhost:8090/ping
Tiersthink, reason, ultra-instinct
bash
make gateway-up           # start container
make gateway-down         # stop container
make gateway-health       # check health
make gateway-logs         # tail logs
make gateway-nuke         # remove container + image

messaging (arc-messaging)

FieldValue
TechnologyNATS
Ports4222 (client), 8222 (monitoring)
Healthhttp://localhost:8222/healthz
Tiersthink, reason, ultra-instinct
bash
make messaging-up
make messaging-down
make messaging-health
make messaging-logs
make messaging-nuke

streaming (arc-streaming)

FieldValue
TechnologyApache Pulsar
Ports6650 (broker), 8082 (admin)
Healthhttp://localhost:8082/admin/v2/brokers/health
Tiersthink, reason, ultra-instinct
NoteCold start ~90 s; streaming-up waits up to 120 s
bash
make streaming-up
make streaming-down
make streaming-health
make streaming-logs
make streaming-clean      # interactive confirmation required
make streaming-nuke       # interactive confirmation required

cache (arc-cache)

FieldValue
TechnologyRedis
Port6379
Healthdocker exec arc-cache redis-cli ping
Tiersthink, reason, ultra-instinct
bash
make cache-up
make cache-down
make cache-health
make cache-logs
make cache-nuke

persistence (arc-persistence)

FieldValue
TechnologyPostgreSQL 17 + pgvector
Port5432
Healthdocker exec arc-persistence pg_isready -U arc
Tiersthink, reason, ultra-instinct
bash
make persistence-up
make persistence-down
make persistence-health
make persistence-logs
make persistence-nuke

storage (arc-storage)

FieldValue
TechnologyMinIO
Ports9000 (API), 9001 (console)
Healthhttp://localhost:9000/minio/health/live
Tiersreason, ultra-instinct
bash
make storage-up
make storage-down
make storage-health
make storage-logs
make storage-nuke

secrets (arc-vault)

FieldValue
TechnologyOpenBao
Port8200
Healthhttp://localhost:8200/v1/sys/health
Tiersreason, ultra-instinct
bash
make vault-up
make vault-down
make vault-health
make vault-logs
make vault-nuke

flags (arc-flags)

FieldValue
TechnologyUnleash
Port4242
Healthhttp://localhost:4242/health
Tiersreason, ultra-instinct
bash
make flags-up
make flags-down
make flags-health
make flags-logs
make flags-nuke

otel (arc-friday)

FieldValue
TechnologySigNoz + ClickHouse
Ports3301 (UI), 8080 (API), 4317 (OTLP gRPC via friday-collector)
Healthhttp://localhost:3301/api/v1/health
Tiersreason, ultra-instinct
Dev profileobserve (think + otel only)
bash
make otel-up
make otel-down
make otel-health
make otel-logs
make otel-nuke

realtime (arc-realtime)

FieldValue
TechnologyLiveKit Server
Ports7880 (HTTP), 7881 (gRPC), 7882 (TCP), 50100–50200 (UDP)
Healthhttp://localhost:7880
Tiersreason, ultra-instinct
Sidecarsarc-realtime-ingress (:7888), arc-realtime-egress (:7889)
bash
make realtime-up
make realtime-down
make realtime-health
make realtime-logs
make realtime-nuke

Platform Services

cortex (arc-cortex)

FieldValue
TechnologyGo
Port8801
Healthhttp://localhost:8801/health
Tiersthink, reason, ultra-instinct (implicit dependency)
bash
make cortex-up
make cortex-down
make cortex-health
make cortex-logs
make cortex-build         # compile Docker image
make cortex-bin           # compile local binary
make cortex-run           # run locally against localhost infra
make cortex-run-dev       # run locally with OTEL enabled
make cortex-test          # go test ./...
make cortex-lint          # golangci-lint
make cortex-nuke

reasoner (arc-reasoner)

FieldValue
TechnologyPython — FastAPI + LangGraph
Port8802
Healthhttp://localhost:8802/health
Deep healthhttp://localhost:8802/health/deep
Tiersthink, reason, ultra-instinct
Dependenciespersistence, messaging, streaming, friday-collector
Startup timeout180 s (model download on first cold start)
bash
make reasoner-up
make reasoner-down
make reasoner-health
make reasoner-logs
make reasoner-build
make reasoner-build-fresh
make reasoner-test         # uv run pytest
make reasoner-test-cover   # pytest + coverage
make reasoner-lint         # ruff + mypy
make reasoner-check        # test + lint (mirrors CI)
make reasoner-nuke

HTTP API — OpenAI-compatible endpoints:

MethodPathDescription
POST/v1/chat/completionsChat completion (streaming: "stream": true)
GET/v1/modelsList available models
POST/v1/responsesResponses API
POST/v1/embeddingsText embeddings (RAG only)
POST/v1/filesUpload file for RAG
GET/v1/filesList files
GET/v1/files/{id}Get file metadata
GET/v1/files/{id}/contentStream file content
DELETE/v1/files/{id}Delete file
POST/v1/vector_storesCreate vector store
GET/v1/vector_stores/{id}Get vector store
POST/v1/vector_stores/{id}/filesIngest files (async; ?sync=true available)
POST/v1/vector_stores/{id}/searchSearch vector store
GET/healthShallow health (always 200)
GET/health/deepDeep health (checks postgres, nats, minio)

Async port interfaces (services/reasoner/src/reasoner/interfaces.py):

python
class LLMProviderPort(Protocol):
    def create_llm(self) -> BaseChatModel: ...
    def supports_system_role(self) -> bool: ...
    def provider_name(self) -> str: ...

class ChatCompletionPort(Protocol):
    async def complete(self, req: ChatCompletionRequest) -> ChatCompletionResponse: ...

class StreamingPort(Protocol):
    def stream(self, req: ChatCompletionRequest) -> AsyncIterator[ChatCompletionChunk]: ...

class ModelRegistryPort(Protocol):
    def list_models(self) -> ModelList: ...
    def model_exists(self, model_id: str) -> bool: ...

class ResponsesPort(Protocol):
    async def respond(self, req: ResponsesRequest) -> ResponsesResponse: ...

class OpenAINATSPort(Protocol):
    async def connect(self) -> None: ...
    async def subscribe(self) -> None: ...
    def is_connected(self) -> bool: ...
    async def close(self) -> None: ...

voice (arc-voice-agent)

FieldValue
TechnologyPython — FastAPI + LiveKit Agents
Port8803
Healthhttp://localhost:8803/health
Deep healthhttp://localhost:8803/health/deep
Tiersreason, ultra-instinct
Dependenciesmessaging, streaming, realtime, friday-collector, cache
Startup timeout60 s
bash
make voice-up
make voice-down
make voice-health
make voice-logs
make voice-build
make voice-build-fresh
make voice-test            # uv run pytest
make voice-test-cover      # pytest + coverage
make voice-lint            # ruff + mypy
make voice-check           # test + lint (mirrors CI)
make voice-nuke

HTTP API:

MethodPathDescription
POST/v1/audio/transcriptionsTranscribe audio file (STT) — multipart file field
POST/v1/audio/speechSynthesize text to WAV (TTS) — JSON body
GET/healthShallow health (always 200)
GET/health/deepDeep health (checks arc-realtime + arc-messaging)

Async port interfaces (services/voice/src/voice/interfaces.py):

python
class STTPort(Protocol):
    async def transcribe(
        self, audio_bytes: bytes, language: str | None = None
    ) -> TranscriptResult: ...
    # TranscriptResult: text, language, duration_secs

class TTSPort(Protocol):
    async def synthesize(self, text: str, voice: str) -> SynthesisResult: ...
    # SynthesisResult: wav_bytes, sample_rate, duration_secs

class LLMBridgePort(Protocol):
    async def reason(
        self, transcript: str, session_id: str, correlation_id: str
    ) -> str: ...
    # Raises: BridgeError(is_timeout, error_type)

Concrete adapters:

PortAdapterImplementation
STTPortWhisperSTTAdapterfaster-whisper, runs in thread-pool executor
TTSPortPiperTTSAdapterpiper binary subprocess, runs in thread-pool executor
LLMBridgePortNATSBridgeNATS request-reply to arc-reasoner

Global Orchestration

bash
# Start a tier (all services in profile, dependency order)
make dev                         # think profile (default)
make dev PROFILE=observe         # think + SigNoz (dev only)
make dev PROFILE=reason          # full dev stack
make dev PROFILE=ultra-instinct  # everything

# Control
make dev-down          # stop all profile services
make dev-health        # check health of all profile services
make dev-logs          # tail logs from all profile services
make dev-status        # container status table
make dev-images        # check / pull images for profile

# Destructive (confirm before running)
make dev-clean         # remove containers + volumes
make dev-nuke          # remove containers + volumes + images

# Utilities
make help              # list all targets
make scrub             # clean all build caches (Python, Go, Node, Make)
make dev-regen         # force regenerate .make/ profile + registry metadata
make otel-up           # OTEL collector + SigNoz stack (alias for otel targets)

Contributors

Changelog