Local AI workbench

A local AI assistant that runs tasks, remembers, and automates — with one gateway for every model.

GoWork is a local-first AI workbench built around a resident assistant: an LLM-driven agent that understands a task and works through it step by step with real tools — reading and writing files, running commands, searching the web, generating images — or delegates the coding to Codex and Claude Code. It keeps long-term memory, runs scheduled jobs, and reaches you over IM. Underneath sits a unified model gateway that fronts your coding CLIs and API clients.

Positioning

For developers and small teams who want a private, always-on AI assistant that actually does the work — not just chats — with a single, controllable gateway in front of every model and coding CLI they already use.

Capabilities

GoWork

01

Runs a resident ReAct assistant: it reasons, calls tools, reads the results, and keeps going until the task is done — or until it needs your confirmation.

02

Acts directly on your machine: read and write files, run shell commands, search and fetch the web, generate images, and read PDF/Office documents — all inside a guarded workspace.

03

Delegates the coding to runtimes: hand a task to Codex or Claude Code, then stream, continue, or cancel the run.

04

Remembers across sessions: four-scope long-term memory — you, project, conversation, and run — that you can promote into reusable Skills.

05

Schedules and automates: declarative once / daily / weekly / monthly tasks that either remind you or wake the assistant to act.

06

Reaches you anywhere: DingTalk, Feishu, and Telegram (WeChat is experimental), pushing back text and images.

07

Stays safe and local: a default-deny tool policy with approval governance, plus one model gateway with account pooling and usage tracking — credentials and records stay in ~/.gowork.

Built for specific operators

AI-first developersCoding-agent power usersSmall teams and studiosAutomation and ops builders

Product

Supported surfaces and platforms

Connected clients

Claude CodeCodex CLIGemini CLIOpenClaw

Model providers

OpenAIAnthropicGeminiAzure OpenAIVertex AI

Channels

DingTalkFeishuTelegramWeChat

Assistant capabilities

Task executionLong-term memoryScheduled tasksSkillsMCP toolsDesktop automationWeb searchImage generationSpeech-to-textDocument reading

Related reading

Docs

Core concepts

How GoWork works — a resident assistant on top of a local model gateway, everything running on your own machine.

Docs

Assistant capabilities

What GoWork's resident assistant can do — run tasks, use tools, remember, automate, delegate, and reach you over IM.

Docs

Model gateway

One local endpoint that fronts your models and coding CLIs — with account pooling, key management, model mapping, and usage tracking.

Docs

Channels

Reach the GoWork assistant over IM — DingTalk, Feishu, Telegram (WeChat experimental) — and keep tasks running from your phone.

Docs

Reference

Where GoWork stores data, the local port, account commands, and environment variables.

8 min

AI assistants vs chatbots: the execution gap

The real difference between an AI assistant and a chatbot is not tone or fluency. It is whether the system can keep task state, use tools, survive interruptions, and actually finish work. This article explains that execution gap through the lens of GoWork.

Read
9 min

Why timeout propagation must reach the lowest executor

A timeout that stops only the assistant layer is not enough. Commands, child processes, and desktop actions may keep running underneath. Here's why execution-oriented AI assistants need deadline propagation and graceful shutdown instead of blind kill-first behavior.

Read
11 min

Why runtime status is not the same as a chat summary

Task status cannot be inferred from a conversation summary alone. Reliable progress reporting needs runtime state, recent events, waiting reasons, and real execution evidence. This article explains the difference.

Read
11 min

Why long tasks need continuation rounds

Learn why GoWork pairs assistant continuation rounds with handoff summaries: when to declare continuation, what a usable handoff must contain, and why this is more reliable than merely saying “I will continue next round.”

Read
10 min

Why assistant systems need a global concurrency gate

Parallel tasks do not mean every action should run at once. This article explains why execution-oriented AI assistants need a global concurrency gate to separate safe parallel work, exclusive resources, course corrections, and read-only status requests.

Read
10 min

When to parallelize read-only tools and serialize long tasks

Read-only tools are often safest in parallel, while desktop actions, state-changing edits, and dependency-heavy execution chains should stay serial. This article explains the real boundary between tool parallelism and long-task serialization in GoWork.

Read
9 min

What to do when the desktop is busy: resource holders and queues

When another task already owns the desktop, GoWork should not cancel parallel work by default. This article explains how resource holders, desktop queues, and concurrent orchestration fit together, and why waiting in line is safer than grabbing the mouse.

Read
10 min

Status questions and stop commands are not the same

When a user asks where a task stands, an AI assistant should answer from read-only run state. When the user says stop, it should actually cancel the running task. Treating both as the same kind of message creates duplicate work and false control.

Read
8 min

Why assistants should explain intent before tool actions

A one-line intent note before a tool call makes an AI assistant more auditable, easier to correct, and far more trustworthy. This article explains why pre-action intent matters and how to write it without turning chat into noise.

Read
5 min

Why long-running AI tasks need progress heartbeats

When an AI assistant runs a long multi-step task in silence, users stop trusting it. This post explains why periodic progress heartbeats matter, what they should contain, and how to send them without spamming.

Read
9 min

Why “I’ll do it next” is not task completion

AI assistants often present the next planned action as if the task were already done. This article explains the boundary between assistant_done and continuation, and why GoWork treats future intent very differently from finished work.

Read
5 min

Why historical screenshots should use view_image first

When a user asks about an earlier screenshot, you should inspect that historical evidence with view_image before taking a fresh screenshot; this matters for GoWork task continuity, desktop forensics, and reliable troubleshooting.

Read
10 min

Why multi-step tasks need plans that persist across runs

The hardest part of long AI tasks is not making a plan once. It is keeping that plan alive across continuation, retries, and verification. This article explains why GoWork treats update_plan as persistent task state, not temporary narration.

Read
9 min

Why assistants should check run archives before probing live systems

When a user asks what happened last time, the safest move is usually to inspect the run archive first, not to probe the live system again. This article explains why execution archives answer historical questions better, and how GoWork turns that into a practical workflow.

Read
10 min

Runtime approvals vs assistant confirmation vs auto-approve

A practical explanation of how GoWork separates runtime approvals, assistant confirmations, and auto-approve: one governs execution-layer permission, one guards high-impact semantic boundaries, and one removes low-value prompts for routine steps.

Read
9 min

Desktop task queues are not the opposite of parallelism

Seeing desktop tasks queue up in GoWork does not mean the whole system is serial. Only the exclusive desktop resource must be serialized; status reads, file work, web research, and many background commands can still run in parallel.

Read
9 min

Delegate or Execute Locally? GoWork's Boundary

Task delegation and local execution are not the same thing. This article explains when GoWork should hand work to a runtime, when the local assistant should finish it directly, and why that boundary affects speed and reliability.

Read
10 min

When to use structured clarification forms in Web chat

Learn when GoWork should switch from natural-language follow-up questions to structured clarification forms in Web chat, and why form-based prompting only works when the missing information is truly field-like.

Read
7 min

Why reminder lists are global by default in GoWork

Learn why GoWork usually answers reminder-list questions with a global scope, when current conversation is the right filter, and why query scope should not be confused with notification delivery.

Read
9 min

Interval monitors vs daily reminders in GoWork

Learn when GoWork interval tasks should watch for changing conditions and when daily schedules should land on fixed clock times, so “every N hours” does not turn into drifting reminders or fake monitoring.

Read
9 min

What to do when your AI assistant remembers wrong

The hard problem with AI memory is not storing more facts. It is handling stale or incorrect memory safely. This article explains why execution assistants need recall checks, evidence, user correction paths, and real memory updates.

Read
11 min

How scheduled tasks should report results back

Learn how GoWork scheduled tasks should report results after a run: when a one-line reminder is enough, when to send a conclusion with key observations, when to use a structured run report, and when silence is the better default.

Read
9 min

Auto-approve does not mean unlimited authority

GoWork's auto-approve mode removes low-value confirmation prompts for routine execution, but it does not erase boundaries. Deleting data, formal publishing, external messaging, and form submission still require explicit authorization or a clear in-run preauthorization.

Read
9 min

Where do GoWork scheduled-task notifications go?

In GoWork, a scheduled task is not the same thing as a notification target. Whether a result returns to the current conversation, appears in a global reminder list, or stays silent in the background depends on notify targets, query scope, and task type.

Read
9 min

Why ops teams need assistants with memory, not just bots

In ops work, an AI that only replies in the moment quickly breaks down during handoffs, follow-ups, retries, and scheduled checks. What teams actually need is an assistant with memory, task history, and replayable execution context.

Read
9 min

Schedule a full content pipeline with GoWork

If your content work still depends on people remembering to write, publish, submit for indexing, and cross-post, the weak point is not writing quality but execution continuity. This article explains how GoWork can run a timed content pipeline from topic pickup to website publishing and distribution.

Read
10 min

Chat context vs runtime context for AI assistants

Chat context tells an AI assistant who is speaking, in which conversation, and through which channel. Runtime context tells it which task, run state, verified facts, and execution constraints apply right now. This article explains why execution systems need both layers and why treating them as the same thing causes errors.

Read
8 min

Resume AI tasks after failure instead of restarting

When an AI task fails, the efficient move is not to restart everything. It is to continue from the last verified checkpoint using task state, run history, and concrete evidence. This article explains why post-failure continuation is a core capability for execution-oriented AI assistants, and how GoWork is designed around it.

Read
9 min

Why AI assistants should answer task status in chat

When users ask “where is that task now?”, they do not want vague reassurance. They need a factual progress answer grounded in real task state, recent execution history, and the next blocking point. This article explains why in-chat task status is a core capability for collaborative AI assistants.

Read
9 min

Why AI assistants need memory and task history

An AI that only answers the current prompt quickly breaks down in real operations. To support follow-ups, continuation, retries, and retrospection, an assistant needs memory, task history, and replayable execution records — which is exactly why systems like GoWork are built that way.

Read
9 min

Approval bots vs execution assistants

Approval bots are useful when work is mostly about routing a yes-or-no decision, but once a task needs context, real execution, retries, and results returned to the same chat, teams usually need an execution assistant such as GoWork instead.

Read
9 min

Scheduled follow-ups in DingTalk with GoWork

If you want AI in DingTalk to do more than send reminders, you need scheduled tasks that can check status, follow up automatically, and return results to the same chat. This article explains that workflow with GoWork.

Read
8 min

How to connect GoWork's assistant to Feishu

Connecting AI to Feishu is not only about replying in chat. The real value is keeping conversation context, running tasks, scheduling follow-ups, and returning results to the same thread. This article explains that workflow with GoWork.

Read
8 min

How to connect GoWork's assistant to Telegram

Connecting AI to Telegram is not only about replying in chat. The real value is keeping conversation context, running tasks, scheduling follow-ups, and returning results to the same thread. This article explains that workflow with GoWork.

Read
8 min

Telegram bots vs resident AI assistants

Many teams start with a Telegram bot when they want AI in chat. But once the job needs context, tool use, scheduled follow-ups, and proactive delivery, what they really need is a resident AI assistant like GoWork.

Read
7 min

DingTalk bots vs resident AI assistants

Many teams start with a DingTalk bot when they want AI in chat. But once the job requires context, tools, scheduling, and proactive delivery, what they really need is a resident AI assistant.

Read
8 min

Scheduled ops workflows with GoWork

Reminders are the easy part. Real operational scheduling means checking status, summarizing results, and following up automatically. This article explains how GoWork turns scheduled tasks into an execution layer for ops teams.

Read
7 min

A resident AI assistant on DingTalk, Feishu, and Telegram

Connecting AI to DingTalk, Feishu, or Telegram is not just about replying in chat. The real value is keeping context, running tasks, scheduling follow-ups, and sending results back. This is where GoWork's assistant fits.

Read
8 min

Why teams need one model proxy instead of per-CLI API keys

Once Claude Code, Codex, and compatible clients multiply across a team, the real problem is not model quality. It is scattered keys, model names, routes, and quota handling. This article explains why teams need one model proxy first.

Read