MCPcopy Index your code
hub / github.com/preactjs/signals

github.com/preactjs/signals @main

repository ↗ · DeepWiki ↗ · + Follow
917 symbols 2,182 edges 130 files 62 documented · 7% updated today@preact/signals-react@3.10.2 · 2026-06-16★ 4,46126 open issues
README

Signals

Signals is a performant state management library with two primary goals:

  1. Make it as easy as possible to write business logic for small up to complex apps. No matter how complex your logic is, your app updates should stay fast without you needing to think about it. Signals automatically optimize state updates behind the scenes to trigger the fewest updates necessary. They are lazy by default and automatically skip signals that no one listens to.
  2. Integrate into frameworks as if they were native built-in primitives. You don't need any selectors, wrapper functions, or anything else. Signals can be accessed directly and your component will automatically re-render when the signal's value changes.

Read the announcement post to learn more about which problems signals solves and how it came to be.

License

MIT, see the LICENSE file.

Extension points exported contracts — how you extend this code

InternalModelConstructor (Interface)
See comment in packages/core/src/index.ts on the same interface for an explanation
packages/react/runtime/src/index.ts
ReadonlySignal (Interface)
* An interface for read-only signals.
packages/core/src/index.ts
InputOutput (Interface)
* Interface representing the input and transformed output. A test may choose * to use the transformed output or ignore
packages/react-transform/test/node/helpers.ts
InternalModelConstructor (Interface)
See comment in packages/core/src/index.ts on the same interface for an explanation
packages/preact/src/index.ts
DirectDevToolsAPI (Interface)
(no doc)
packages/devtools-adapter/src/direct-adapter.ts
DependencyInfo (Interface)
(no doc)
packages/debug/src/index.ts
PluginArgs (Interface)
(no doc)
packages/preact-transform/src/index.ts
SignalsViteOptions (Interface)
(no doc)
packages/vite-plugin/src/index.ts

Core symbols most depended-on inside this repo

signal
called by 455
packages/core/src/index.ts
computed
called by 180
packages/core/src/index.ts
effect
called by 134
packages/core/src/index.ts
generateCode
called by 80
packages/react-transform/test/node/helpers.ts
createModel
called by 70
packages/core/src/index.ts
codeTitle
called by 53
packages/react-transform/test/node/helpers.ts
useSignals
called by 44
packages/react/runtime/src/index.ts
postMessage
called by 44
packages/debug/src/devtools.ts

Shape

Function 654
Interface 125
Method 102
Class 35
Enum 1

Languages

TypeScript100%

Modules by API surface

packages/react-transform/test/node/helpers.ts59 symbols
packages/react-transform/src/index.ts47 symbols
packages/core/src/index.ts40 symbols
packages/react/runtime/src/index.ts36 symbols
packages/devtools-ui/src/components/Graph.tsx30 symbols
packages/debug/src/devtools.ts27 symbols
packages/react/runtime/test/browser/useSignals.test.tsx26 symbols
packages/preact/test/browser/index.test.tsx25 symbols
packages/vite-plugin/src/server.ts23 symbols
packages/vite-plugin/test/node/index.test.tsx22 symbols
packages/preact/src/index.ts19 symbols
packages/vite-plugin/src/shared.ts17 symbols

Dependencies from manifests, versioned

@babel/core7.28.4 · 1×
@babel/helper-module-imports7.27.1 · 1×
@babel/helper-plugin-utils7.27.1 · 1×
@babel/plugin-syntax-jsx7.27.1 · 1×
@babel/plugin-transform-explicit-resource-management7.28.0 · 1×
@babel/plugin-transform-modules-commonjs7.27.1 · 1×
@babel/plugin-transform-react-jsx7.27.1 · 1×
@babel/plugin-transform-typescript7.28.0 · 1×
@babel/preset-env7.28.3 · 1×
@babel/preset-react7.27.1 · 1×
@babel/preset-typescript7.27.1 · 1×
@babel/register7.28.3 · 1×

For agents

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

⬇ download graph artifact