Convex-native thread persistence and reactive UI projections for Eve agents, giving apps real-time message sync without building custom storage.
npm install convex-eveconvex-eve provides Convex-native persistence and reactive projections for agents built on the Eve agent harness. It handles threads, messages, UI parts, pagination, and approvals inside Convex while Eve retains authority over model loops, tools, skills, subagents, and durable workflows. The component exposes ingestion via exact (eveSessionId, streamIndex) coordinates for deduplication and offers a React hook for realtime message projection in application UIs.
convex-eve provides a Convex component installed under components.eve that stores threads and messages from Eve agent sessions. It ingests messages using exact (eveSessionId, streamIndex) coordinates with deduplication, so replayed or retried deliveries do not create duplicate records. The component handles pending-message capture before external delivery completes.
convex-eve exposes a convex-eve/react package with a useUIMessages hook that provides paginated, reactively updated message projections. As an Eve agent streams output, Convex subscriptions push UI part updates to connected clients without any polling. This is suited for chat interfaces where agent tool activity, delegations, and approvals need to reflect immediately.
convex-eve acts as the persistence and projection layer between a running Eve harness and a Convex deployment. Eve remains the authority for model loops, skills, tools, and durable workflows. A Convex action calls the Eve HTTP deployment using a shared service credential stored as an environment variable, and the component writes the returned thread and message data into Convex tables.
convex-eve supports authenticated application threads scoped to users, with paginated EveMessage projections returned by the component queries. The Eve agent binding does not require model or tool configuration on the Convex side, keeping agent execution concerns in the Eve deployment and persistence concerns in Convex.
No. convex-eve has no dependency on @convex-dev/agent. It is an independent community project that integrates specifically with the Eve agent harness from Vercel. It is not an official Convex or Vercel product and is licensed under Apache-2.0.
Install convex-eve@next for the alpha implementation that includes Convex-native persistence. The latest tag currently points to 0.0.1, which is a name-reservation placeholder with no functional code. The repository is in early development, and delivery idempotency, reconciliation, and retention controls still need production hardening.
convex-eve ingests messages using exact (eveSessionId, streamIndex) coordinate pairs and performs deduplication at that level. If Eve replays or retries a delivery, the component recognizes the coordinate and does not create a duplicate record in Convex. This deduplication is part of the current alpha but full bridge-level create/send idempotency is planned for a future milestone.
The convex-eve persistence layer stores UI parts that include tool activity, approvals, and delegation state from Eve. The operations panel in the included Next.js example demonstrates tool activity, queued commands, approvals, and synchronization state rendered from Convex projections. Eve itself remains the authority for executing tools, subagents, and workflows.
A Convex action calls the Eve HTTP deployment over HTTPS using an EVE_AGENT_URL environment variable and a shared EVE_AGENT_TOKEN secret. The token is stored in Convex environment variables and the Eve deployment environment but is never persisted in convex-eve component tables. For local development, you can expose the Eve harness via a tunnel or deploy it to Vercel and configure the Convex deployment with the resulting URL.