You can run Sim locally using Docker, with no execution limits or other restrictions.
We started building Sim almost a year ago after repeatedly troubleshooting why our agents failed in production. Code-first frameworks felt hard to debug because of implicit control flow, and workflow platforms added more overhead than they removed. We wanted granular control and easy observability without piecing everything together ourselves.
We launched Sim [1][2] as a drag-and-drop canvas around 6 months ago. Since then, we've added:
- 138 blocks: Slack, GitHub, Linear, Notion, Supabase, SSH, TTS, SFTP, MongoDB, S3, Pinecone, ...
- Tool calling with granular control: forced, auto
- Agent memory: conversation memory with sliding window support (by last n messages or tokens)
- Trace spans: detailed logging and observability for nested workflows and tool calling
- Native RAG: upload documents, we chunk, embed with pgvector, and expose vector search to agents
- Workflow deployment versioning with rollbacks
- MCP support, Human-in-the-loop block
- Copilot to build workflows using natural language (just shipped a new version that also acts as a superagent and can call into any of your connected services directly, not just build workflows)
Under the hood, the workflow is a DAG with concurrent execution by default. Nodes run as soon as their dependencies (upstream blocks) are satisfied. Loops (for, forEach, while, do-while) and parallel fan-out/join are also first-class primitives.
Agent blocks are pass-through to the provider. You pick your model (OpenAI, Anthropic, Gemini, Ollama, vLLM), and and we pass through prompts, tools, and response format directly to the provider API. We normalize response shapes for block interoperability, but we're not adding layers that obscure what's happening.
We're currently working on our own MCP server and the ability to deploy workflows as MCP servers. Would love to hear your thoughts and where we should take it next :)
Did you build your own agent engine? Why not LangGraph?
Say I was building a general agentic chat app with LangGraph in the backend (as it seems to provide a lot of infrastructure for highly reliable and interactive agents, all the way up to a protocol usable by UIs, plus a decent ecosystem, making it very easily extensible). Could I integrate with this for DIY workflows in a high quality fashion (high-precision updates and control)?
Is there a case for switching out LangGraph‘s backend with Sim (can you build agents of the same quality and complexity - I’m thinking coding agent)? Could it interact with LangGraph agents in a high quality way so you can tap that ecosystem?
Can I use Sim workflows with my current agent, say, via MCP?
2. this would kind of serve as a drop-in replacement for langgraph. you could build a workflow with an agent and some tools, perhaps some form of memory. then, just deploy that as an API, call it from your frontend, and consume the streamed response on your chat client and without the need to maintain any infra at all.
3. we have a generic code block and an api block used to call APIs for integrations that we may not have, and you can use those to plug (langgraph) agents into the Sim ecosystem.
4. we are adding in the ability to deploy your workflow as an MCP server in the next week, stay tuned :) in the meantime, you can deploy the workflow as an API and have the agent call it as a tool. moreover, you can use the workflow block in sim to call other agents/worklows as well, so its easy to encapsulate a lot of complexity in a `parent` workflow that you call that dynamically routes and uses different tools based on the task at hand
I do like the way they’ve been able to leverage Langgraph workflows to build agents - it seems like the right abstraction to me - and I also feel their middleware approach is very Django-y which I also like. Are you enjoying their stack?
This is big. Thank you.
- I want to check some input - pick one of your 138 blocks
- I want to extract a list of items from that input
- I want to check which items did I encounter before <- that's the key bit
- Do something for the items that have not been encountered before; bonus point for detecting updated and deleted items
- Rinse and repeat
It could be a row added to a CSV file, a new file dropped into a Nextcloud folder, a list of issues pulled from a repo, or an RSS feed (Yahoo! Pipes, what a sweet memory).
How good is the support for such a case in Sim? And did it get better in n8n?
I can't tell you whether it got better in n8n, but I can definitively say that this sounds like a great candidate workflow to build in sim :)
They recently added native tables, albeit still just a few data types, you can store stuff in and use in workflows.
But the post bills the tool as an n8n alternative. Therefore, I am evaluating it as such. Solid basics before the AI whizbang.
now, handling an integration to something like google sheets myself for a task this small is a nightmare, not to mention the separate table I'd need to keep to store the access token & refresh token and the permissions I'd need to get from google. on top of that, hosting it somewhere and then monitoring it.
This is definitely going to be given a try tomorrow morning. I think first up will be something easy and personal like going through the collection of NPC character sheets in my recent campaign and ensuring all NPCs have the following sections with some content in them, and if not, flagging them for my review.
If we release a breaking change that requires a migration for existing local workflows, we release notice at least a few weeks ahead of time/bake it into the db migrations.
Incase there are significant changes made, everything is versioned so you opt-in to upgrading.
What is your business strategy, if someone like AWS could treat you like Elastic or Redis? Premium addons? As a consumer I have no problem with n8ns license, it’s their technology that I think could be done better by a fresh competitor.
We aimed for feature parity with n8n and improved much of the workflow building experience along the way. We also added what we think agentic workflows needed (mentioned above). Would love your feedback.
sentinel -> body -> sentinel (condition with backwards edge to first sentinel)
in the UI, this is just represented as another block, and depending on the varying types of loops you can either define a collection or the number of iterationsNeedless to say I never had to actually say "n8n".