Skip to content

Gemini CLI + Wahlu

Draft and schedule social posts from Gemini CLI.

Wahlu is one place for your social media, and Gemini CLI can use it too. Run the Wahlu MCP server on your computer with an API key, then turn the work in your project into posts for each network, upload media from your files and hold the schedule for your review.

Instagram · Facebook · TikTok · YouTube · LinkedIn personal profiles · X · Bluesky · Telegram · Discord · Tumblr

Local MCP server · Wahlu API key
{
  "mcpServers": {
    "wahlu": {
      "command": "npx",
      "args": ["-y", "@wahlu/mcp-server@latest"],
      "env": {
        "WAHLU_API_KEY": "$WAHLU_API_KEY"
      }
    }
  }
}

Gemini CLI can't sign in to the hosted URL yet, so it runs Wahlu's MCP server on your computer with an API key you create and keep in your shell.

Connect Gemini CLI to Wahlu

Gemini CLI runs Wahlu's MCP server on your computer, using a Wahlu API key you create.

  1. 1

    In the Wahlu app, create an API key under Settings → API Keys in your workspace, with only the permissions and brands you need.

  2. 2

    Add export WAHLU_API_KEY=your-key to your shell profile, with your key, and open a new terminal.

  3. 3

    Add the Wahlu configuration to ~/.gemini/settings.json. If the file already has settings, add wahlu inside its mcpServers object.

  4. 4

    Start a new Gemini CLI session and run /mcp to check that wahlu is connected and its tools are listed.

Checked against the Gemini CLI docs on 27 September 2026. Menus can change; if a step doesn't match what you see, follow the vendor's current instructions.

~/.gemini/settings.json
{
  "mcpServers": {
    "wahlu": {
      "command": "npx",
      "args": ["-y", "@wahlu/mcp-server@latest"],
      "env": {
        "WAHLU_API_KEY": "$WAHLU_API_KEY"
      }
    }
  }
}

Gemini CLI replaces $WAHLU_API_KEY with the value from your shell, so the key isn't saved in the settings file. You can also add the same configuration to a project's .gemini/settings.json to use Wahlu in that project only. Available local tools depend on the installed version. Check the local MCP server notes for its Node.js requirement and tool availability.

The API key sets the limits.

The local server acts with the key you give it, so create one just for this agent.

  • Only the brands you need

    When you create the key in Settings → API Keys, choose which brands it can use.

  • Only the permissions you need

    Leave publishing off if you'd rather approve and publish from Wahlu yourself.

  • Revoke it on its own

    Revoke the key in Wahlu to cut the agent off. Your social accounts stay connected.

Give Gemini CLI a specific brief

Example prompts and the steps to expect. These are illustrations, not recorded conversations.

Example prompt

“Read the release notes in CHANGELOG.md and draft an Instagram post and a LinkedIn post about them. Don't schedule anything yet.”

Gemini CLI reads the file, finds your connected accounts with list_targets and creates a draft for each network. Drafts don't schedule or publish anything.

Example prompt

“Upload assets/launch.mp4 and schedule a YouTube Short for Friday at 10am, held for my review.”

Gemini CLI uploads the video with upload_media_from_file, runs preflight_draft and creates the schedule at pending_review, so nothing goes out until you approve it in Wahlu.

Images and video

How your media gets to Wahlu.

The local server can upload a file straight from your computer with upload_media_from_file, so screenshots and videos in your project don't need a public link.

You stay in control.

Every Wahlu plan includes agent access, through MCP and the API. You choose the workspace, brands and permissions each connection gets, and can disconnect it at any time.

Held until you approve

Agents create schedules at pending_review unless you've told them to publish. A held schedule can't publish until you approve it in Wahlu or ask an agent with Publishing permission to approve it.

Publishing is its own permission

Publishing is separate from Manage your schedule. Leave it unticked and nothing your agent schedules can go out on its own.

Checked before it's scheduled

preflight_draft reports anything that would stop a post, such as media the network won't accept or a caption that's too long, without changing anything.

Some things stay in the app

Use the app for queues, draft media and platform settings, and connecting social accounts. Agents can change the name or caption of an unused draft and approve held schedules with the right permissions.

Good to know about Gemini CLI

  • The API key decides which brands and permissions Gemini CLI has. Create one just for Gemini CLI so you can revoke it on its own.
  • The local server needs Node.js on your computer.
  • Keep the key in your shell with $WAHLU_API_KEY, not in the settings file or anything you commit.

Bring Gemini CLI into your social workflow.

Connect your social accounts in Wahlu, then give your agent a specific brief.