MCPcopy Index your code
hub / github.com/effect-app/libs

github.com/effect-app/libs @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
12,875 symbols 38,859 edges 1,498 files 431 documented · 3% 1 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Practical use of Effect-TS

This is an opinionated library for full-stack Effect-TS. (See repositories for more info and discord link, articles, youtube videos, etc).

WIP docs

See https://github.com/effect-ts-app/boilerplate for a sample app use.

Package boundaries

  • effect-app: service contracts and runtime-agnostic base logic.
  • @effect-app/infra: backend / Node adapters.
  • @effect-app/vue: Vue / browser adapters.

Migration targets introduced in this repo include:

  • @effect-app/infra/Emailer/service -> effect-app/Emailer
  • @effect-app/infra/QueueMaker/service -> effect-app/QueueMaker
  • @effect-app/infra/Store/service -> effect-app/Store
  • @effect-app/infra/Model/* -> effect-app/Model/*
  • @effect-app/vue/runtime -> effect-app/runtime
  • @effect-app/vue/toast -> effect-app/toast
  • @effect-app/vue/withToast -> effect-app/withToast

Update Effect Subtree

repos/effect is a git subtree of https://github.com/Effect-TS/effect-smol.git.

Recommended (uses the currently pinned effect / @effect/* version from package.json):

pnpm subtree:effect

Or directly via the CLI:

effa sync-effect

Use a different repository URL:

effa sync-effect --url https://github.com/Effect-TS/effect-smol.git

Manual update to a specific ref:

git subtree pull --prefix=repos/effect https://github.com/Effect-TS/effect-smol.git <ref> --squash

Example:

git subtree pull --prefix=repos/effect https://github.com/Effect-TS/effect-smol.git @effect/ai-anthropic@4.0.0-beta.47 --squash

Update Effect App Libs Subtree

Apps that vendor this repository as repos/libs can sync it to the pinned effect-app / @effect-app/* version in their package.json:

effa sync-effect-app

The command first tries Changesets package tags such as effect-app@4.0.0-beta.271 or @effect-app/infra@4.0.0-beta.271. If no matching tag exists, it fetches https://github.com/effect-app/libs.git into a local git cache and selects the latest commit on the default branch whose package manifest still has the pinned version.

Escape hatch for manual refs:

effa sync-effect-app --ref main
effa sync-effect-app --ref latest # latest main

Both sync-effect and sync-effect-app fetch selected commits with --no-tags, so syncing subtrees does not import upstream package tags into the app repository.

The clean release convention is to publish git tags for package versions (effect-app@<version>, @effect-app/infra@<version>, etc.) from the release workflow. The history scan exists because this repo still has older v* tags but not current package-version tags.

Deployment

Uses Changesets

  1. make changes
  2. generate and include changeset pnpm changeset
  3. wait for build which creates a PR
  4. inspect the PR, merge when alright
  5. await new build and new package deployments

Thanks

  • All contributors
  • Michael Arnaldi, Max Brown and the Effect-TS contributors for Effect
  • ZIO Contributors for the excellent ZIO
  • Anyone else we're forgetting..

How to view OmegaForm docs

On Mac:

  1. Shift + Command + P
  2. Select Run Task
  3. Select Run Storybook OmegaForm
  4. Will automatically open browser to http://localhost:6006/ Enjoy!

On Windows:

  1. Select "Run Task"
cd packages/vue-components
  1. run storybook
pnpm storybook
  1. Will automatically open browser to http://localhost:6006/ Enjoy!

Extension points exported contracts — how you extend this code

Body (Interface)
(no doc) [7 implementers]
packages/effect-app/src/builtin-json.d.ts
Reference (Interface)
(no doc) [9 implementers]
repos/effect/packages/effect/src/SchemaRepresentation.ts
Encoded (Interface)
(no doc)
packages/infra/test/query.test.ts
SyncEffectConfig (Interface)
(no doc)
packages/cli/src/sync-effect-subtree.ts
ParsedArgs (Interface)
(no doc)
packages/eslint-codegen-model/src/cli.ts
EngineHarness (Interface)
(no doc)
packages/vue/test/dependencyInvalidation.test.ts
PersistencyConfig (Interface)
(no doc)
packages/vue-components/src/components/OmegaForm/persistency.ts
StringIdSchema (Interface)
(no doc) [8 implementers]
packages/effect-app/src/Schema/moreStrings.ts

Core symbols most depended-on inside this repo

pipe
called by 6046
repos/effect/packages/effect/src/Pipeable.ts
succeed
called by 3907
repos/effect/packages/effect/src/testing/TestSchema.ts
make
called by 3534
repos/effect/packages/effect/src/Schema.ts
annotate
called by 3325
repos/effect/packages/effect/src/Schema.ts
get
called by 2350
repos/effect/packages/effect/src/LayerMap.ts
fail
called by 1965
repos/effect/packages/effect/src/testing/TestSchema.ts
push
called by 1948
repos/effect/packages/effect/src/unstable/reactivity/AtomRef.ts
deepStrictEqual
called by 1947
repos/effect/packages/effect/test/utils/assert.ts

Shape

Function 7,121
Class 2,497
Interface 1,729
Method 1,521
Enum 7

Languages

TypeScript100%

Modules by API surface

repos/effect/packages/effect/src/Schema.ts385 symbols
repos/effect/packages/effect/src/SchemaAST.ts229 symbols
repos/effect/packages/effect/src/unstable/cli/Prompt.ts223 symbols
repos/effect/packages/tools/jsdocs/src/Jsdocs.ts197 symbols
repos/effect/packages/effect/src/PubSub.ts181 symbols
repos/effect/packages/effect/src/unstable/ai/McpSchema.ts172 symbols
repos/effect/packages/effect/src/internal/effect.ts151 symbols
repos/effect/packages/effect/src/unstable/ai/AiError.ts96 symbols
repos/effect/packages/effect/src/SchemaRepresentation.ts95 symbols
repos/effect/packages/effect/src/Optic.ts93 symbols
repos/effect/packages/effect/src/Metric.ts86 symbols
repos/effect/packages/effect/src/internal/hashMap.ts85 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Datastores touched

mydbDatabase · 1 repos
(mongodb)Database · 1 repos
dbDatabase · 1 repos
testdbDatabase · 1 repos

For agents

$ claude mcp add libs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact