AI-powered workflows from your own codebase

Turn real backend functions into reusable, shareable workflows — created with AI, validated by code, and executed from a secure dashboard.

terminal
$ npm install @sashimo/lib
+ @sashimo/lib@1.0.0
$ node
> const sashi = require('@sashimo/lib');
> sashi.registerFunction('get_inactive_users', async () => {
> const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000);
> return await db.users.findMany({ where: { lastLogin: { lt: thirtyDaysAgo } } });
> });
Function registered successfully! Use it in the Sashi chat interface to create workflows.

What is Sashi?

Sashi is a workflow automation system built for modern developer teams. It connects real code functions to AI workflows, so teams can automate internal tasks without building admin tools from scratch.

With Sashi, you can register your backend functions, create AI-powered workflows, and execute them from a secure dashboard - all while maintaining full control over your code and infrastructure.

Installation

npm install @sashimo/lib

Quick Setup

import express from 'express';
import { createMiddleware } from '@sashimo/lib';

const app = express();

app.use('/sashi', createMiddleware({
  openAIKey: process.env.OPENAI_API_KEY || "",
  // Other configuration options
}));

// Your app is now Sashi-enabled!
// Access the admin interface at: http://yourwebsite.com/sashi/bot

Key Features

Everything you need to automate workflows without glue code

Register backend functions in seconds

Connect real code functions to AI workflows with a lightweight client library that uses Zod validation.

AI-generated workflows

Use AI to generate complete workflows from plain English, connecting your backend functions in powerful sequences.

Type-safe validation

Built-in Zod validation ensures type safety with automatic UI detection based on return types.

Secure shared dashboard

Save, view, and run workflows via a secure dashboard that your entire team can access.

How It Works

1

Register Functions

Developers register backend functions using sashilib, defining inputs, outputs, and descriptions using Zod validation. This makes your existing code accessible to the workflow system.

2

Create Workflows

Workflows are created via chat or manual flow builder, with AI helping construct valid, connected sequences of actions. Simply describe what you want to accomplish in plain English.

3

Store and Manage

Workflows are validated and stored in Sashi Hub, which manages tokens, access control, and cross-repo communication. Your workflows are securely saved for future use.

4

Execute and Visualize

Workflows are run from a central dashboard, where users can view results, rerun actions, and collaborate on internal automation. Track progress and outcomes in real-time.

5

Auto-Generated UIs

All results are displayed with auto-generated UIs, based on return types (tables, cards, graphs, etc.). No need to build custom interfaces for each workflow.

How It Looks

Sashi integrates seamlessly with your application, providing a powerful admin interface

sashi-chat

Chat Interface

Hello! I'm Sashi. How can I help you today?

Can you show me all inactive users?

U

I'll get that for you. Running get_inactive_users...

Inactive Users (23)

• john.doe@example.com (Last login: 45 days ago)

• sarah.smith@example.com (Last login: 32 days ago)

• mike.jones@example.com (Last login: 60 days ago)

+ 20 more users

Send them all a reminder email

U
sashi-dashboard

Workflow Dashboard

My Workflows

Inactive User Reminder

Created 2 days ago • Run 5 times

get_inactive_userssend_reminder_email
Weekly Usage Report

Created 1 week ago • Run 3 times

generate_usage_statscreate_report
User Onboarding

Created 3 days ago • Run 12 times

create_userassign_rolesend_welcome

See it in action

Explore how Sashi can transform your workflow

import { AIFunction, AIObject, registerFunctionIntoAI } from "@sashimo/lib";

const UserObject = new AIObject("User", "a user in the system")
  .field({
    name: "email",
    description: "the email of the user",
    type: "string",
    required: true
  });

const GetUserByIdFunction = new AIFunction("get_user_by_id", "get a user by id")
  .args({
    name: "userId",
    description: "a user's id",
    type: "number",
    required: true
  })
  .returns(UserObject)
  .implement(async (userId: number) => {
    const user = await getUserById(userId);
    return user;
  });

registerFunctionIntoAI("get_user_by_id", GetUserByIdFunction);

Use Cases

Sashi works for everyone on your team

For Support Teams

"Refund a user" — support triggers backend logic via dashboard

"Reset user password" — execute securely without developer involvement

"Check user subscription status" — get real-time data without SQL

For Product Managers

"Send weekly usage report to Slack" — PM builds it with AI

"Generate monthly metrics dashboard" — automated reporting

"Find users who abandoned signup" — create targeted campaigns

For DevOps

"Spin up a preview env" — DevOps saves it as a repeatable workflow

"Rotate API keys" — automate security tasks safely

"Check system health" — run diagnostics across services

For Developers

"Run incident response checklist" — on-call engineer triggers it from chat

"Debug user issue" — quickly access logs and state without context switching

"Migrate test data" — automate repetitive development tasks

Why It's Different

Real Code Integration

Designed for real code, not just third-party tools. Works with your existing codebase.

Your Stack, Your Infra

Works with your stack and infrastructure, no black-box magic or vendor lock-in.

No Admin Panels

No need to build or maintain internal admin panels. Sashi generates UIs automatically.

Secure By Design

Secure by design with scoped API tokens and server-side execution. No security compromises.

Ready to automate workflows without glue code?

Join the early access beta and connect your code to your team.