Openbot Export logo

Openbot Export

Organization
nightly-labs
openbot-export

Export the user's Grok Bot agents into one .zip file that OpenBot imports, with instructions, avatars, skills, routines, memories, group chats, and optional workspace files. Use when the user asks to export, move, or migrate their agents to OpenBot.

Overview

Publishernightly-labs
Repositoryopenbot
Skill nameopenbot-export
Stars
521
Forks
81
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by nightly-labs on GitHub. Read the source before you install it.

Installation

Install the Openbot Export AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/nightly-labs/openbot/tree/main/resources/agent-import/grok-bot
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/nightly-labs/openbot.git /tmp/openbot
mkdir -p .claude/skills
cp -r /tmp/openbot/resources/agent-import/grok-bot .claude/skills/openbot-export
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Openbot Export in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Openbot Export on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Openbot Export is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Export agents for OpenBot

Make one .zip file that the user opens in OpenBot at Server settings → Import. OpenBot reads it on the user's computer. Nothing is uploaded. The format is strict: OpenBot rejects the whole file when the manifest is invalid, so follow the format below exactly.

Workflow

  1. Find the agents. List every agent the user has in Grok Bot. For each agent, collect:

    • name, one-line role (title), and full instructions or system prompt;
    • avatar image;
    • skills: each skill folder with its SKILL.md and the files it uses;
    • scheduled tasks: name, prompt, schedule, time zone, and whether it is on;
    • chats: read them only to write memories (step 3);
    • workspace files, only if the user agrees (step 2).

    Do not export the agent that runs this skill. It exists only to make the export, so leave it out of the agent list and out of openbot-import.json, even when the user asks for all agents. Also leave this skill (openbot-export) out of every agent's skills.

    Also list every group chat, where several agents talk together. OpenBot imports a group chat as a channel. For each group chat, collect:

    • name, one-line topic (title), and its shared instructions;
    • the agents in it, and the lead agent if it has one;
    • scheduled tasks of the group chat, as for agents;
    • its messages: read them only to write memories (step 3).

    If you cannot read a part, tell the user what you could not export. Do not guess its contents.

  2. Ask about files. Show the list of agents, the group chats, and the total size of the workspace files. Ask: "Include workspace files? (yes / no)". Also ask whether to export all agents and group chats or only some. Wait for the answer before you continue. Export every group chat, including one with only one other agent. Leave one out only when none of its agents are exported.

  3. Write memories. From each agent's chats, write at most 50 short facts that the agent must keep: user preferences, names, recurring tasks, decisions, and open work. One fact per memory, 500 characters or fewer, written as a statement ("The user reports in EUR."). Do not copy whole messages. Do not include secrets. For each group chat, write at most 32 facts the same way.

  4. Remove secrets. Do not export .env files, private keys, API keys, tokens, passwords, or cookies, in files or in instructions. Replace a secret in instructions with <ask the user for …>. OpenBot rejects the archive if it contains a file named .env* or *private*key*, a nested archive (.zip, .tar, .gz, .7z, .rar), or a .git or node_modules folder, so leave those out.

  5. Build the folder (see Format) and write openbot-import.json last.

  6. Check it with the checklist below. Then zip the folder contents into ~/Downloads/.openbot-export-<YYYY-MM-DD>.zip.part. When the zip is complete, rename it to ~/Downloads/openbot-export-<YYYY-MM-DD>.zip. The rename replaces an older export with the same name in one step, so OpenBot never reads a half-written file.

  7. Tell the user, only after the rename, the path, the number of agents and group chats, and anything you left out. Tell them to open OpenBot, go to Server settings → Import, and choose the file.

Format

openbot-import.json
agents/<key>/avatar.png                 optional; PNG, JPEG, or WebP, 512 KB or less
agents/<key>/skills/<skill>/SKILL.md    one folder for each skill
agents/<key>/files/…                    optional workspace files

<key> is a short unique ID for the agent: lowercase letters, digits, and hyphens, such as research or sales-outbound. It has 64 characters or fewer, and it does not start or end with a hyphen. When you make a key from a long agent name, keep only the first words. All paths for an agent must start with agents/<key>/.

openbot-import.json:

json
{
  "format": "openbot-agent-import",
  "version": 1,
  "source": { "app": "grok-bot", "exportedAt": "2026-09-23T10:00:00Z" },
  "agents": [
    {
      "key": "research",
      "name": "Research",
      "title": "Market research analyst",
      "description": "You find sources, compare competitors, and write short cited briefs…",
      "avatar": "agents/research/avatar.png",
      "skills": ["agents/research/skills/web-brief"],
      "routines": [
        {
          "name": "Morning digest",
          "instruction": "Summarize yesterday's news about our competitors.",
          "active": true,
          "timezone": "Europe/Warsaw",
          "schedule": { "kind": "weekdays", "time": "08:30" }
        }
      ],
      "memories": ["The user reports in EUR.", "Competitors to watch: Acme, Globex."],
      "files": "agents/research/files"
    }
  ],
  "channels": [
    {
      "key": "market-desk",
      "name": "Market desk",
      "title": "Weekly competitor review",
      "instructions": "Research finds the news, Sales says what it means for open deals.",
      "members": ["research", "sales-outbound"],
      "lead": "research",
      "routines": [
        {
          "name": "Friday review",
          "instruction": "Review this week's competitor news and agree on three actions.",
          "active": true,
          "timezone": "Europe/Warsaw",
          "schedule": { "kind": "weekly", "weekday": 5, "time": "15:00" }
        }
      ],
      "memories": ["The user wants actions, not summaries."]
    }
  ]
}

channels is optional. Leave it out, or use [], when there are no group chats.

Field rules:

FieldRule
nameRequired. 80 characters or fewer.
titleOptional. 120 characters or fewer.
descriptionRequired. The agent's instructions, 2,000 characters or fewer. If they are longer, write the full text to agents/<key>/files/INSTRUCTIONS.md, set files, and put a summary here that tells the agent to read imported/INSTRUCTIONS.md.
avatarPath or null.
skillsUp to 32 folder paths. Each folder has SKILL.md at its root, which starts with YAML frontmatter that has name (80 characters or fewer) and description. Each skill folder is 10 MB and 200 files or fewer.
routinesUp to 64. name is 80 characters or fewer. instruction is the prompt that runs. timezone is an IANA name, such as America/New_York.
memoriesUp to 64 strings, 500 characters or fewer each.
filesFolder path or null. OpenBot copies it to imported/ in the agent's workspace.

Channel field rules:

FieldRule
keyRequired. The same rules as an agent key, and unique among the channels.
nameRequired. 80 characters or fewer.
titleOptional. 120 characters or fewer.
instructionsOptional. The group chat's shared instructions, 2,000 characters or fewer.
membersRequired. The key of each agent in the group chat. Use only agents in this export, at least one. Count every agent in the group chat, including the agent it is named after. Never the agent that runs this skill.
leadOptional. The key of one member, or null.
routinesUp to 64, in the same shape as agent routines.
memoriesUp to 32 strings, 500 characters or fewer each.

A channel has no folder in the archive. Up to 100 channels.

The whole archive must be 500 MB and 5,000 files or fewer.

Schedules

Use one of these shapes. Times are 24-hour HH:MM in the routine's time zone. Days of the week are 0 (Sunday) to 6 (Saturday). A schedule cannot run more often than every 3 minutes.

ScheduleJSON
Every hour at minute 15{ "kind": "hourly", "minute": 15 }
Every day{ "kind": "daily", "time": "09:00" }
Monday to Friday{ "kind": "weekdays", "time": "09:00" }
Every week{ "kind": "weekly", "weekday": 1, "time": "09:00" }
Every month{ "kind": "monthly", "day": 1, "time": "09:00" }
Every N minutes, hours, or days{ "kind": "interval", "amount": 30, "unit": "minutes" }
Cron expression{ "kind": "custom", "expression": "0 9 * * 1-5" }

When a schedule does not fit a shape, use custom with a cron expression. OpenBot skips a routine with an invalid schedule and tells the user; the rest of the agent still imports.

Checklist

  • openbot-import.json is at the root of the zip, not inside a subfolder you added by mistake.
  • format is openbot-agent-import and version is 1.
  • Each key is unique and 64 characters or fewer, and each path starts with agents/<key>/.
  • Each skill folder has SKILL.md with frontmatter.
  • The agent that runs this skill is not in openbot-import.json.
  • No agent has an openbot-export skill folder.
  • Every group chat is in channels, unless none of its agents are exported.
  • Each channel has at least one members entry, each member is an agent key in this export, and lead is one of the members or null.
  • No secrets, .env files, keys, nested archives, .git, or node_modules.
  • Workspace files are included only if the user said yes.

Frequently asked questions

What does the Openbot Export AI skill do?

Export the user's Grok Bot agents into one .zip file that OpenBot imports, with instructions, avatars, skills, routines, memories, group chats, and optional workspace files. Use when the user asks to export, move, or migrate their agents to OpenBot.

Why use Openbot Export on TypingMind?

Because you install it once and use it with any model. Openbot Export is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Openbot Export in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/nightly-labs/openbot/tree/main/resources/agent-import/grok-bot. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Openbot Export?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Openbot Export?

As many as you like. As long as a model supports skills, you can use Openbot Export with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Openbot Export AI skill free?

It is published on GitHub by nightly-labs. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇