Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
ccfb471
Replace chakra-ui by tailwind and retro-ui
sembrestels Feb 7, 2026
fd7a9a0
Move landing to an astro website
sembrestels Feb 7, 2026
6988260
Divide frontend logic in hooks
sembrestels Feb 7, 2026
3cb66cc
Upgrade dependencies
sembrestels Feb 7, 2026
0252287
Remove @repo/config-typescript
sembrestels Feb 7, 2026
b5f9d98
Replace Pretier + ESLint by Biome
sembrestels Feb 7, 2026
b2e4078
Replace evmcl and cas11 by evml
sembrestels Feb 7, 2026
7e0f979
Replace `@1hive/evmcrispr` by `@evmcrispr/core`
sembrestels Feb 7, 2026
2e40b03
Fix tests
sembrestels Feb 8, 2026
4fcecb5
Fix dev command
sembrestels Feb 8, 2026
fdd8313
Simplify terminal store
sembrestels Feb 8, 2026
218b2ff
Refactor completions
sembrestels Feb 8, 2026
2899791
Add more kind of action types, introducing halt, sign, and batch comm…
sembrestels Feb 8, 2026
7deae97
Implement event capture functionality in command execution and batch …
sembrestels Feb 8, 2026
f1c368d
Add EIP-1559 Gas Options to exec and raw
sembrestels Feb 8, 2026
6b2722b
Rename tenderly module to sim, and add support to anvil
sembrestels Feb 8, 2026
764506c
Add support for anvil and hardhat in sim module
sembrestels Feb 10, 2026
8df12ee
Use defineCommand and defineHelper utils to reduce boilerplate
sembrestels Feb 10, 2026
5c47ab2
Introduce defineModule to remove module boilerplate
sembrestels Feb 10, 2026
1bc6731
Rename evmcrispr package to core and pass a context object instead of…
sembrestels Feb 10, 2026
f3b5e02
Move modules to their own packages
sembrestels Feb 10, 2026
b7a04ab
Move tests to the packages where they belong
sembrestels Feb 14, 2026
ce9f981
Make aragonos module thinner
sembrestels Feb 15, 2026
e9c86d7
Remove as keyboard from language
sembrestels Feb 15, 2026
d97bcdf
Remove ProbableIdentifier and introduce @app and others
sembrestels Feb 15, 2026
aaca4dd
Fix autocompletion and remove ALIAS bindings space
sembrestels Feb 15, 2026
f839376
Remove DATA_PROVIDER bindings space and refactor tests
sembrestels Feb 15, 2026
8962ff8
Remove OTHER binding space
sembrestels Feb 15, 2026
9590c0f
Introduce module argTypes
sembrestels Feb 16, 2026
9a9574b
Simplify aragonos connect
sembrestels Feb 16, 2026
40672a4
Refactor autocompletion engine
sembrestels Feb 16, 2026
ab65125
Remove completely DATA_PROVIDER and ADDR bindings
sembrestels Feb 16, 2026
5427d1e
Fix dao tests
sembrestels Feb 16, 2026
77d7dd2
Refactor abi fetching and helper caching
sembrestels Feb 16, 2026
17b72ea
Add support for autocompletion in helper args
sembrestels Feb 16, 2026
b42c82f
Add remaining tests for helper autocompletion
sembrestels Feb 16, 2026
10b70fc
Improve anvil and hardhat support and docs
sembrestels Feb 16, 2026
d1d4591
Add inline diagnostics (error markers)
sembrestels Feb 16, 2026
a46a501
Add Hover Provider
sembrestels Feb 17, 2026
a272d41
Add descriptions in autocompletions
sembrestels Feb 17, 2026
ff6be32
Fix raw command on batches, allow to send no data
sembrestels Feb 19, 2026
7d61b42
Fix project building
sembrestels Feb 19, 2026
5bad28c
Fix lazy module loading, preventing all modules loading at startup
sembrestels Feb 20, 2026
529587b
Change api url, move some tests to integration, change fixtures
sembrestels Feb 20, 2026
7ab5c3d
Remove more fixtures
sembrestels Feb 20, 2026
712a075
Refactor tests
sembrestels Feb 20, 2026
7bd19c9
Add test coverage
sembrestels Feb 20, 2026
4f72119
Increase test coverage to 75%
sembrestels Feb 20, 2026
46401b9
Remove outdated toDecimals, addressesEqual, and getFunctionFragment
sembrestels Feb 20, 2026
1f42037
Remove literal type and add signature type
sembrestels Feb 20, 2026
b22acc0
Do not trim the number decimals till they are encoded
sembrestels Feb 20, 2026
a6ed573
Improve native currency support
sembrestels Feb 20, 2026
92bb2b5
Add wei, gwei and eth units to parser
sembrestels Feb 20, 2026
05cd69d
Improve tests and remove dead code
sembrestels Feb 21, 2026
2db0eff
Improve proxy detection and speed
sembrestels Feb 21, 2026
1eaa93c
Convert signature into built-in type and merge both proxy and impleme…
sembrestels Feb 21, 2026
c7ae0b2
Add suport for read-abi type and autocompletions
sembrestels Feb 21, 2026
37f417e
Improve autocompletions support
sembrestels Feb 21, 2026
152f12e
Improve proxy support adding an old pattern
sembrestels Feb 21, 2026
654da6a
Add autocompletion for token symbols
sembrestels Feb 21, 2026
41d2c0f
Add if command
sembrestels Feb 24, 2026
6c54fcb
Add `@bool`, `@and`, `@or`, and `@not` helpers
sembrestels Feb 24, 2026
187b7fd
Add `@concat` helper with multi-type input and output support
sembrestels Feb 24, 2026
0ced744
Add string and array helpers
sembrestels Feb 24, 2026
0adde1b
Add preliminary def command
sembrestels Feb 24, 2026
a047240
Add http module with fetch, json and json.format helpers
sembrestels Feb 24, 2026
e0cf951
Add % and // operators
sembrestels Feb 25, 2026
0fda1be
Add typecheck to tests
sembrestels Feb 26, 2026
2ea2293
Add destructure syntax
sembrestels Mar 2, 2026
263f5ba
Simplify comment parser
sembrestels Mar 2, 2026
9631125
New Syntax: Inline ABI Calls ::{method(inputs)(outputs) args}
sembrestels Mar 5, 2026
4541178
Add bytes.* helpers
sembrestels Mar 9, 2026
7951360
Separate str and array helpers
sembrestels Mar 9, 2026
2df7f67
Add `@num`, `@num.format`, `@str`, and update `@bool` helpers
sembrestels Mar 9, 2026
124f40b
Add if/else, while command, and many array helpers
sembrestels Mar 10, 2026
e58fe1c
Remove commas from language in arrays and helpers
sembrestels Mar 10, 2026
307337b
Move arithmetic parser logic to `@num` helper, and extend `@bool` helper
sembrestels Mar 10, 2026
cb587bf
Simplify Num usage
sembrestels Mar 10, 2026
4f7001b
Do not require a connected wallet to execute scripts
sembrestels Mar 10, 2026
8dbc2c8
Infer types in def command
sembrestels Mar 10, 2026
8568a91
Improve UI unifying errors and logs
sembrestels Mar 10, 2026
7d57307
Enable autosave in Library
sembrestels Mar 10, 2026
33129b1
Add ethereumjs as default backend for simulations
sembrestels Mar 14, 2026
51c07e6
Add documentation
sembrestels Mar 15, 2026
1b89351
Add style to docs
sembrestels Mar 15, 2026
a9272b1
Improve docs
sembrestels Mar 15, 2026
8b7c8c6
Add reference panel in terminal
sembrestels Mar 15, 2026
1e0da14
Add CLI and MCP server
sembrestels Mar 15, 2026
db9ba42
Update link and add tests to mcp
sembrestels Mar 15, 2026
5d201df
Fix @token.balance for native currencies
sembrestels Mar 17, 2026
db1bdda
Fix EthereumJS simulations when not --from address used
sembrestels Mar 17, 2026
8d6f690
Improve reference documentation
sembrestels Mar 18, 2026
c108a03
Add new lang module
sembrestels Mar 18, 2026
1704933
Run generate-docs before website build via turbo
sembrestels Mar 18, 2026
bf0ae2c
Fix tests
sembrestels Mar 19, 2026
f6b25c2
Add Error captures, and generalize Event captures
sembrestels Mar 20, 2026
105d3c1
Add some helpers and improve the type system
sembrestels Mar 20, 2026
ef4a78e
Update ENS bulk renewal contract address
sembrestels Apr 5, 2026
51026a8
Refactor terminal UI to avoid multiple rerenders
sembrestels Apr 5, 2026
84c8d17
Allow newlines inside helpers, arrays, calls, and strings
sembrestels Apr 24, 2026
b3524ed
Replace @msgAddr with @sigValid signature verification helper
sembrestels Apr 24, 2026
1bbf703
Add deploy command for CREATE/CREATE2/CREATE3 deployments
sembrestels Apr 24, 2026
6295969
Replace raw command with more flexible send
sembrestels Apr 24, 2026
7dd1769
Fix string highlighting for nested quotes in editor
sembrestels Apr 24, 2026
dcf94af
Reformat to biome 2.4's stricter 80-char width
sembrestels Apr 24, 2026
55fdc2b
Apply biome lint and import-organize auto-fixes
sembrestels Apr 24, 2026
c39130e
Fix remaining biome warnings
sembrestels Apr 24, 2026
05aa236
Inherit anvil preload in package bun tests
sembrestels Apr 24, 2026
8426fb9
Add prewarmed address hovers
sembrestels Apr 24, 2026
4225eeb
Prevent stale prewarm hover state
sembrestels Apr 24, 2026
7eb0ad7
Upgrade Astro and Vite dependencies
sembrestels Apr 24, 2026
890d655
Add lightweight script viewer with hover popovers
sembrestels Apr 25, 2026
639e982
Switch contract verification to Etherscan V2
sembrestels Apr 25, 2026
166e32b
Polish hover consistency across viewer and editor
sembrestels Apr 25, 2026
e69b9ff
Drive prewarm bindings off command argDefs, not an allowlist
sembrestels Apr 25, 2026
eb2d7d1
fix(storageAt): always output a bytes32
sembrestels Apr 30, 2026
7ab5501
Add verify command
sembrestels May 1, 2026
6241ea5
Add --source-chian and --source-address opts to deploy
sembrestels May 1, 2026
39fb4de
Clarify deploy and verify opts introducing --mirror-*
sembrestels May 1, 2026
aa152bb
Introduce the chain type to deploy, switch and verify
sembrestels May 1, 2026
c4c77c8
Fix verify command
sembrestels May 1, 2026
e13ea37
Use TextMate grammar for strings, using backslash escapes
sembrestels May 1, 2026
ab4348d
Fix prewarm when switching chains
sembrestels May 1, 2026
2f48048
Fix tests and lints
sembrestels May 1, 2026
9b1a2b0
Set mainnet as the default chain at the beginning of the script
sembrestels May 2, 2026
bc24f24
Upgrade turbopack
sembrestels May 2, 2026
7a5d06d
Replace artifacts by ABIs in aragonos, and make them optional
sembrestels May 2, 2026
9cc01bf
Rename AragonDAO to dao and Connector to subgraph in aragonos
sembrestels May 2, 2026
21cd681
Remove requesting wallet text from console
sembrestels May 2, 2026
8587b78
Fix batching in safes
sembrestels May 3, 2026
f4d2a36
Start with a new script when entering in the terminal root route
sembrestels May 4, 2026
dd0fb00
Fix executions in Safe
sembrestels May 6, 2026
e083cdc
Fix typecheck and util externalization warning
sembrestels May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 20 additions & 0 deletions .cursor/rules/helpers-checklist.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
description: Checklist when adding or removing std helpers
globs: modules/std/src/helpers/*.ts
alwaysApply: false
---

# Adding / removing a std helper

When you add, remove, or rename a helper in `modules/std/src/helpers/`, you must also update the helper lists in `packages/test-utils/src/constants.ts`:

- `STD_ALL_HELPERS` — every helper.
- `STD_ADDRESS_HELPERS` — helpers whose `returnType` includes `"address"` or `"any"`.
- `STD_NUMBER_HELPERS` — helpers whose `returnType` includes `"number"` or `"any"`.
- `STD_BYTES32_HELPERS` — helpers whose `returnType` includes `"bytes32"` or `"any"`.
- `STD_BOOL_HELPERS` — helpers whose `returnType` includes `"bool"` or `"any"`.
- `STD_BYTES_HELPERS` — helpers whose `returnType` includes `"bytes"` or `"any"`.

A `returnType` of `"any"` is compatible with **all** lists.

After updating, run codegen (`bun packages/sdk/scripts/codegen.ts` from the module directory) and verify tests pass (`bun test modules/std/test/unit/completions.test.ts`).
5 changes: 0 additions & 5 deletions .eslintrc.js

This file was deleted.

40 changes: 20 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,41 +27,41 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Install Dependencies
run: bun i

- name: Get changed files from evmcrispr
id: changed-files
uses: tj-actions/changed-files@v44
with:
files: "packages/evmcrispr/{src,test}/**"
files: |
packages/core/{src,test}/**
packages/sdk/{src,test}/**
packages/test-utils/**
modules/**

- name: Build
run: bun run build

- name: Lint code
run: bun lint
run: bun run lint

- name: Check types
run: bun run type-check

- name: Check evmcrispr types
run: bun type-check
- name: Unit Tests
run: bun run test:unit

- name: Tests
- name: Integration Tests
if: steps.changed-files.outputs.any_changed == 'true'
run: |
echo "ARCHIVE_NODE_ENDPOINT=${{ secrets.ARCHIVE_NODE_ENDPOINT }}" >> packages/evmcrispr/.env
echo "VITE_PINATA_JWT=${{ secrets.VITE_PINATA_JWT }}" >> packages/evmcrispr/.env
echo "ETHERSCAN_API=${{ secrets.ETHERSCAN_API }}" >> packages/evmcrispr/.env
bun test:coverage
echo "VITE_DRPC_API_KEY=$VITE_DRPC_API_KEY" >> .env
echo "VITE_PINATA_JWT=$VITE_PINATA_JWT" >> .env
bun run test:integration
env:
ARCHIVE_NODE_ENDPOINT: ${{ secrets.ARCHIVE_NODE_ENDPOINT }}
VITE_DRPC_API_KEY: ${{ secrets.VITE_DRPC_API_KEY }}
VITE_PINATA_JWT: ${{ secrets.VITE_PINATA_JWT }}
ETHERSCAN_API: ${{ secrets.ETHERSCAN_API }}

- name: Coveralls
uses: coverallsapp/github-action@master
if: steps.changed-files.outputs.any_changed == 'true'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: ${{matrix.os}}-node-${{ matrix.node-version }}
base-path: "packages/evmcrispr"
path-to-lcov: "packages/evmcrispr/coverage/lcov.info"
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches: [master]
paths:
- "packages/evmcrispr/**"
- "packages/core/**"

jobs:
release:
Expand Down
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.DS_Store
node_modules
.astro
.turbo
*.log
dist
Expand All @@ -12,3 +13,11 @@ public/dist
.nyc_output
cache
coverage
package-lock.json
yarn.lock
pnpm-lock.yaml
_generated.ts

# Auto-generated docs
apps/evmcrispr-website/src/content/docs/reference/
apps/evmcrispr-website/public/llms-full.txt
12 changes: 12 additions & 0 deletions .mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"mcpServers": {
"evmcrispr": {
"type": "stdio",
"command": "bash",
"args": [
"-c",
"source .env && TRANSPORT=stdio bun apps/evmcrispr-mcp/src/index.ts"
]
}
}
}
2 changes: 1 addition & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
strict-peer-dependencies=false
legacy-peer-deps=true
1 change: 0 additions & 1 deletion .pretierrc.json

This file was deleted.

4 changes: 0 additions & 4 deletions .prettierignore

This file was deleted.

2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"skipFiles": ["<node_internals>/**"],
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/hardhat",
"args": ["test"],
"cwd": "${workspaceFolder}/packages/evmcrispr/"
"cwd": "${workspaceFolder}/packages/core/"
}
]
}
8 changes: 3 additions & 5 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "biomejs.biome",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always"
"source.fixAll.biome": "always",
"source.organizeImports.biome": "always"
},
"eslint.options": {
"extensions": [".js", ".ts", ".tsx"]
},
"eslint.validate": ["javascript", "typescript", "typescriptreact"],
"solidity.packageDefaultDependenciesContractsDirectory": "",
"solidity.packageDefaultDependenciesDirectory": "packages/hardhat/node_modules",
"solidity.enabledAsYouTypeCompilationErrorCheck": true,
Expand Down
88 changes: 88 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# EVMcrispr

## What This Project Is

A TypeScript monorepo for a DSL that encodes and executes batched EVM
transactions. Targets DAOs (especially Aragon), DeFi protocols, and
general smart contract interaction. Scripts run in a web terminal
(evmcrispr.com) or programmatically via `@evmcrispr/core`.

## Architecture

- `packages/core`: Parser, interpreter, AST, completions, hover docs
- `packages/sdk`: Module SDK (`defineCommand`, `defineHelper`, `defineModule`)
- `modules/std`: Default module (13 commands, 55 helpers) — always loaded
- `modules/aragonos`: Aragon DAO operations (9 commands, 3 helpers)
- `modules/sim`: Chain fork simulation — anvil, hardhat, tenderly, ethereumjs (6 commands)
- `modules/ens`: ENS domain operations (1 command, 1 helper)
- `modules/giveth`: Giveth protocol (4 commands, 1 helper)
- `modules/http`: HTTP + JSON helpers (3 helpers)
- `apps/evmcrispr-terminal`: React + Monaco + Wagmi terminal app
- `apps/evmcrispr-website`: Astro landing page + docs

## Key Patterns

- Commands: `modules/<mod>/src/commands/<name>.ts` using `defineCommand`
- Helpers: `modules/<mod>/src/helpers/<name>.ts` using `defineHelper`
- `_generated.ts` files are auto-generated by codegen — never edit directly
- Codegen script: `packages/sdk/scripts/codegen.ts`
- ArgDef types: `address`, `number`, `string`, `bytes`, `bytes32`, `bool`,
`array`, `any`, `write-abi`, `read-abi`, `token-symbol`, `block`,
`variable`, `helper`, `command`, `expression`, `dao`, `json-path`
- Commands return `Action[]` (transaction descriptors). Helpers return values.
- The DSL is modular: `std` is loaded by default, others via `load <module>`

## Common Tasks

- **Add a command**: create `modules/<mod>/src/commands/<name>.ts`, run build
- **Add a helper**: create `modules/<mod>/src/helpers/<name>.ts`, run build
- **Regenerate codegen**: `bun packages/sdk/scripts/codegen.ts` (from module dir)
- **Regenerate docs**: `bun run scripts/generate-docs.ts`
- **Run tests**: `bun test:unit` / `bun test:integration` (needs anvil)
- **Dev terminal**: `bun dev:terminal`
- **Dev website**: `bun dev:website`
- **Lint**: `biome check .`
- **Build all**: `bun run build` (uses turbo)

## DSL Quick Reference

```
# Variables
set $x 42

# Execute a contract call
exec 0xAbC... "transfer(address,uint256)" @me 100e18

# Read from a contract
@get(0xAbC... "balanceOf(address)(uint256)" @me)

# Load modules
load aragonos
load sim

# Batch into single tx
batch (
exec ...
exec ...
)

# Aragon DAO operations
aragonos:connect <dao> (
grant <entity> <app> <role>
install <app> <params...>
)

# Simulate on a fork
sim:fork 1 (
sim:set-balance @me 100e18
exec ...
sim:expect ...
)
```

## Documentation

- Reference docs: `apps/evmcrispr-website/src/content/docs/reference/<module>/commands/<name>.md`
- Guides: `apps/evmcrispr-website/src/content/docs/guides/`
- Doc generation: `scripts/generate-docs.ts` reads `_generated.ts` metadata
- `llms.txt` and `llms-full.txt` at repo root for LLM consumption
91 changes: 72 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,86 @@
# EVMcrispr

This is an official starter Turborepo.
A domain-specific language for encoding and executing batched EVM transactions targeting smart contracts, Aragon DAOs, ENS, and DeFi protocols.

## Using this example
## Quick Start

Run the following command:
```
# Install dependencies
bun install

```sh
npx create-turbo@latest -e with-vite
# Start the web terminal
bun dev:terminal

# Start the docs website
bun dev:website
```

## What's inside?
Visit [evmcrispr.com](https://evmcrispr.com) to use the hosted terminal.

This Turborepo includes the following packages and apps:
## Example Script

```
# Approve and swap tokens in a single transaction
load sim

sim:fork (
set $router 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
set $amount @token.amount(DAI 100)

batch (
exec @token(DAI) "approve(address,uint256)" $router $amount
exec $router "swapExactTokensForETH(uint256,uint256,address[],address,uint256)" $amount 0 [@token(DAI) @token(WETH)] @me @date("2025-12-31")
)

sim:expect @bool(@get(@token(WETH) "balanceOf(address)(uint256)" @me) > 0)
)
```

### Apps and Packages
## Modules

- `docs`: a vanilla [vite](https://vitejs.dev) ts app
- `web`: another vanilla [vite](https://vitejs.dev) ts app
- `@repo/ui`: a stub component & utility library shared by both `web` and `docs` applications
- `@repo/eslint-config`: shared `eslint` configurations
- `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo
| Module | Description | Commands | Helpers |
|--------|-------------|----------|---------|
| [std](modules/std/README.md) | Core language (always loaded) | 13 | 55 |
| [aragonos](modules/aragonos/README.md) | Aragon DAO operations | 9 | 3 |
| [sim](modules/sim/README.md) | Chain fork simulation | 6 | - |
| [ens](modules/ens/README.md) | ENS domain operations | 1 | 1 |
| [giveth](modules/giveth/README.md) | Giveth protocol | 4 | 1 |
| [http](modules/http/README.md) | HTTP + JSON | - | 3 |

## Project Structure

```
packages/
core/ Parser, interpreter, AST
sdk/ Module SDK (defineCommand, defineHelper)
modules/
std/ Default module — always loaded
aragonos/ Aragon DAO operations
sim/ Chain fork simulation
ens/ ENS domain operations
giveth/ Giveth protocol
http/ HTTP + JSON helpers
apps/
evmcrispr-terminal/ React + Monaco web terminal
evmcrispr-website/ Astro landing page + docs
```

## Development

```sh
bun install # Install dependencies
bun run build # Build all packages
bun test:unit # Run unit tests
bun test:integration # Run integration tests (needs anvil)
biome check . # Lint
```

Each package and app is 100% [TypeScript](https://www.typescriptlang.org/).
## Documentation

### Utilities
- [Getting Started](apps/evmcrispr-website/src/content/docs/guides/getting-started.md)
- [Language Basics](apps/evmcrispr-website/src/content/docs/guides/language-basics.md)
- [Full Reference](https://evmcrispr.com/llms-full.txt)

This Turborepo has some additional tools already setup for you:
## License

- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) for code linting
- [Prettier](https://prettier.io) for code formatting
[GPL-3.0](LICENSE)
28 changes: 28 additions & 0 deletions apps/evmcrispr-mcp/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "evmcrispr-mcp",
"version": "0.1.0",
"private": true,
"type": "module",
"dependencies": {
"evmcrispr": "*",
"@evmcrispr/core": "*",
"@evmcrispr/module-aragonos": "*",
"@evmcrispr/module-ens": "*",
"@evmcrispr/module-giveth": "*",
"@evmcrispr/module-http": "*",
"@evmcrispr/module-sim": "*",
"@modelcontextprotocol/sdk": "^1.12.1",
"zod": "^4.3.6"
},
"devDependencies": {
"@types/bun": "^1.3.10",
"@types/node": "^22.15.21"
},
"scripts": {
"dev": "bun --watch src/index.ts",
"build": "evmcrispr-build src/index.ts",
"start": "bun src/index.ts",
"type-check": "tsc --noEmit",
"lint": "biome check src"
}
}
Loading
Loading