Golem REPL
The Golem REPL provides an interactive environment for testing and working with agents during development. It allows you to create agent instances, invoke methods, see logs streamed live, and run CLI commands — all from a single session.
TypeScript REPL
The REPL uses TypeScript. Start it with:
golem replThe REPL auto-generates TypeScript classes for all agents in the application. You can create or get agents, invoke their methods, and see results directly:
>>> const c1 = await CounterAgent.get("c1")
>>> await c1.increment()
1
>>> await c1.increment()
2
>>> await c1.getCount()
2It is possible to use the TypeScript REPL with agents written in any language — including Effect TypeScript, Rust, Scala, and MoonBit agents.
Effect applications use this same generated TypeScript REPL client. The REPL does not expose an Effect runtime or return Effect programs; use the generated Promise-based TypeScript methods interactively, and use an Effect bridge library in an external application when you need Effect-native composition.
Built-in commands
The REPL provides built-in commands prefixed with : that correspond to CLI commands, so you can build, deploy, and manage agents without leaving the REPL:
:build— Build the application:deploy— Deploy the application:agent-stream <agent>— Stream agent logs:agent-get <agent>— Get agent metadata, including its status:stream-logs on|off— Show or set streaming of the invoked agents’ logs:reload— Reload the REPL
Use :help or tab-completion to discover all available commands.
Running scripts
Scripts can be run non-interactively using the --script-file flag. This is useful for automated testing or repeatable workflows:
cat test.tsconst c2 = await CounterAgent.get("c2")
await c2.increment()
await c2.increment()golem repl --script-file test.ts --yes
# Output: 2Short scripts can also be passed inline with --script.
Language support
The REPL currently supports TypeScript only.
The TypeScript REPL can work with agents written in any language — you can use TypeScript syntax to invoke Effect TypeScript, Scala, Rust, or MoonBit agents.