Twist Ai — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Twist Ai (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Library for connecting AI agents to Twist. Includes tools that can be integrated into LLMs, enabling them to access and interact with a Twist workspace on the user's behalf.
These tools can be used both through an MCP server, or imported directly in other projects to integrate them to your own AI conversational interfaces.
npm install @doist/twist-aiHere's an example using Vercel's AI SDK.
import { fetchInbox, reply, markDone } from '@doist/twist-ai'
import { streamText } from 'ai'
const result = streamText({
model: yourModel,
system: 'You are a helpful Twist assistant',
tools: {
fetchInbox,
reply,
markDone,
},
})You can run the MCP server directly with npx:
npx @doist/twist-ai#### Claude Desktop
Add to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"twist": {
"command": "npx",
"args": ["-y", "@doist/twist-ai"],
"env": {
"TWIST_API_KEY": "your-twist-api-key-here"
}
}
}
}#### Cursor
Create a configuration file:
~/.cursor/mcp.json.cursor/mcp.json{
"mcpServers": {
"twist": {
"command": "npx",
"args": ["-y", "@doist/twist-ai"],
"env": {
"TWIST_API_KEY": "your-twist-api-key-here"
}
}
}
}Then enable the server in Cursor settings if prompted.
#### Claude Code (CLI)
claude mcp add twist npx @doist/twist-aiThen set your API key:
export TWIST_API_KEY=your-twist-api-key-here#### Visual Studio Code
{
"servers": {
"twist": {
"command": "npx",
"args": ["-y", "@doist/twist-ai"],
"env": {
"TWIST_API_KEY": "your-twist-api-key-here"
}
}
}
}A key feature of this project is that tools can be reused, and are not written specifically for use in an MCP server. They can be hooked up as tools to other conversational AI interfaces (e.g. Vercel's AI SDK).
This project is in its early stages. Expect more and/or better tools soon.
Nevertheless, our goal is to provide a small set of tools that enable complete workflows, rather than just atomic actions, striking a balance between flexibility and efficiency for LLMs.
displayInInbox boolean (default false). When true, the thread is unarchived after creation so it appears in the author's Inbox. See also TWIST_CREATE_THREAD_DISPLAY_IN_INBOX.For more details on each tool, see the src/tools directory.
| Variable | Default | Description |
|---|---|---|
TWIST_API_KEY | _(required)_ | Your Twist API key. |
TWIST_CREATE_THREAD_DISPLAY_IN_INBOX | false | Set to true to unarchive every newly-created thread so it appears in the author's Inbox, without needing to pass displayInInbox: true on each call. Only takes effect when running the MCP locally. The remote/hosted MCP does not have this variable set and will use the per-call displayInInbox parameter only. |
git clone https://github.com/doist/twist-ai.git
cd twist-ainpm install.env file with your Twist API key:TWIST_API_KEY=your-twist-api-key-herenpm run buildnpm start - Build and run the MCP inspector for testingnpm run dev - Development mode with auto-rebuild and restartnpm test - Run all testsnpm run type-check - Run TypeScript type checkingnpm run format:check - Run linting and formatting checksnpm run format:fix - Auto-fix linting and formatting issuesContributions are welcome! Please ensure:
npm test)npm run type-check)npm run format:check)Use Conventional Commits for commit messages:
feat: for new featuresfix: for bug fixesdocs: for documentation changestest: for test changeschore: for maintenance tasksMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.