Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
Typed TypeScript packages. Dot composes them into one app and the compiler checks the wiring. With the journal nothing writes to a row directly: every change is an event, and a reducer turns it into t
Developer toolsTypeScript · JavaScriptGitHub @arki-labsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
TypeScript libraries for building apps that both people and agents can read. Typed failures, Standard Schema validation, and the @arki/dot app kernel.
Taken from the repository README
Loading the full README.
Read the full README ↗TypeScript libraries for building apps that both people and agents can read.
Arki is a family of small @arki/* packages. Use one on its own, like
@arki/date or @arki/money. Or compose a whole backend with
@arki/dot: typed units for infra, features and entrypoints,
wired by the compiler and booted in declaration order.
Every package follows the same rules:
@arki/failure.--json output on
every CLI, an llms.txt and an agent guide in every package.The full list, with the reason behind each rule, is in
docs/arki/principles.md.
bun add @arki/dot @arki/failure
import { defineApp, infra } from '@arki/dot';
import { isFailure } from '@arki/failure';
import { openDb } from './db'; // your own database client
const database = infra({
name: 'database',
provides: { db: () => openDb(process.env.DATABASE_URL) },
async dispose({ db }) {
await db.close();
},
});
const app = await defineApp('pizzeria').infra(database).start();
if (isFailure(app)) throw new Error(app.code);
Read the @arki/dot README for features,
entrypoints and the dot CLI.
| Package | What it does |
|---|---|
@arki/dot | Compose an app from typed units; the compiler checks the wiring |
@arki/cli | Typed CLIs from one defineCommand, with a JSON envelope when piped |
@arki/env | Type-safe environment variables |
@arki/http | Route contracts as data, schema-validated handlers |
@arki/contracts | Shared schemas and Drizzle contract helpers |
@arki/db | Drizzle repositories for Postgres and PGlite |
@arki/journal | Every entity change as an immutable event row |
@arki/live | Live queries for oRPC and TanStack Query on your own Postgres |
@arki/kv | Key-value store with pluggable adapters |
@arki/lock | Distributed locks over memory, Postgres, SQLite, Redis and files |
| Package | What it does |
|---|---|
@arki/schema | Standard Schema helpers: parse with typed failures |
@arki/date | Temporal-based dates, instants, durations and intervals |
@arki/string | Grapheme-aware string toolkit |
@arki/math | Exact Decimal and Rational arithmetic on bigint |
@arki/money | Exact, fast money for every runtime |
@arki/expr | A safe expression language with a typed AST |
@arki/cas | A bounded computer algebra system on @arki/expr |
@arki/async | Abortable sleep, debounce, throttle and concurrency helpers |
@arki/clock | A clock you can control in tests |
@arki/resilience | Retry, circuit breaker, timeout and bulkhead |
Packages marked "private": true in their package.json are still in
development and are not published yet.
Every package is below 1.0. While a package is 0.x, a breaking change
ships as a minor release and a fix as a patch. Read a package's
CHANGELOG.md before you upgrade.
You need Bun (version in package.json) and Node 26.
Docker is needed for tests that start Postgres or Redis.
bun install
bun run build # build every package
bun run typecheck
bun run test
bun run lint
Work on one package with a Turbo filter:
bun run turbo run test --filter=@arki/date
Issues and pull requests are welcome. Start with CONTRIBUTING.md. Security issues go through SECURITY.md, never a public issue.
@arki/queue | Typed background jobs on BullMQ, pg-boss or a database row |
@arki/schedule | Typed cron and interval handlers |
@arki/mail | Typed mail with schema-checked templates and transport failover |
@arki/auth | Sign-in on Postgres or SQLite: one definition, one engine |
@arki/payments | Stripe plans, subscriptions, refunds, dunning and tax |
@arki/log | Zero-dependency structured logging for every runtime |
@arki/failure | Typed failures returned as values |
@arki/testing | Testcontainers Postgres and Redis, typed factories |
@arki/ui | React components on Base UI and Tailwind v4 tokens |
@arki/tanstack-start | TanStack Start wiring for Arki apps |
@arki/ai | Local-first AI: generation, embeddings, vector index |
@arki/embeddings | One embedder shape over many providers |
@arki/chat-ui | Chat and agent UI for React |
@arki/ts| TypeScript utility types |
@arki/icons | Iconify, Phosphor and flag icon sets behind one React entry |
@arki/bench | Publishable benchmarks against competitors |