The new wizard

Answer a few questions and bxAgents new builds the agent: tools, MCP servers, channels, access and deploy target.

On this page

The new wizard

Run bxAgents new in a terminal with no --model and it asks what the agent should do, then writes the project to match. Nothing in it is magic: every answer ends up in a file you can read, and the last screen prints the one-line command that would build the same project without any questions.

bxAgents new my-agent

It is a full-screen UI in the teal of the BxAgents logo. Arrow keys (or j/k) move, Space ticks, Enter confirms, Esc goes back one question, Ctrl+C cancels and creates nothing. Answers you have given collapse to one line each above the current question.

What it asks

StageWhat you chooseWhat it writes
Name, purposeThe agent's name and a one-line descriptionname, description in Agent.yaml
ShapeA single agent, a team, a scheduled agent, an MCP serverThe matching template
ModelA provider, then optionally a model name (Enter takes the provider's default)model, and a stub for the provider's <PROVIDER>_API_KEY in .env
ToolsDate and time, fetch pages, search the web, browse websites, files, images and speechA tools: list; browsing also adds bx-playwright to your box.json
Search providerThe built-in one, Brave, Tavily, Exa or GoogleA key stub in .env, and a line in instructions.md telling the agent which provider to use
File toolsRead only, all 19, or tool by tool, then the folders they may usetoolOptions.bxai.allowedPaths
MemoryIn memory, or saved to diskmemory and checkpointer
MCP serversGitHub, Stripe, Notion, Atlassian, Cloudflare, SupabasemcpServers entries and token stubs
ChannelsWeb chat, HTTP API, Telegram, Slack, Discord, WhatsApp, Teams, SMS, GitHub, Email, SignalA gateways/*.bx file and the stubs it needs
Web accessOpen, a shared key, or named users with passwordsapiKeyEnvVar or users on the web chat entry
GuardFlag, block or ignore suspicious inputA security block
DeployDocker, DigitalOcean, SSH, SFTP, FTP, a local folder, or laterdeploy/<target>.json

A stage whose answer you already gave as a flag is skipped and shown as answered. A stage that does not apply (the search provider when search is off) is skipped without a word.

File tools never get the whole disk

bx-ai ships 19 file tools but registers none of them. The wizard offers them, and always asks which folders they may use: the temp folder (tmp), the folder you run the agent from (cwd), or a path you type. It will not continue with none. There is no way to ask for unrestricted access from the wizard or from the flags; an empty list is refused because bx-ai reads an empty list as "everywhere".

tools:
  - readFile@bxai
  - listDirectory@bxai
toolOptions:
  bxai:
    allowedPaths:
      - tmp
      - cwd

Secrets

The wizard never asks you to type a secret that it stores.

  • API keys and tokens go in .env as empty stubs, each under a comment saying where to get it. The files that use them hold only the variable's name.
  • A web access key is generated for you (a random 64-character value) and written to .env, because it protects something you are about to run.
  • A web chat password is hashed with the same PBKDF2 hasher as bxAgents hash-password; only the hash reaches gateways/webui.bx, and it is safe to commit.

.env is in the .gitignore the project is created with.

MCP servers

All servers in the picker are remote (HTTP) servers that the bundled bx-ai can connect to, listed with how risky they are. Each starts with its credential read from the environment when the app starts:

mcpServers:
  - name: github
    url: "https://api.githubcopilot.com/mcp/"
    token: "${env.GITHUB_PERSONAL_ACCESS_TOKEN}"
ServerCredentialRisk
GitHubGITHUB_PERSONAL_ACCESS_TOKENHigh: can open and merge pull requests, push files, trigger Actions
StripeSTRIPE_AGENT_API_KEYHigh: moves money. Use a sandbox account first
NotionNOTION_MCP_TOKENMedium: edits and deletes pages. Tokens need a Business or Enterprise plan
AtlassianATLASSIAN_API_TOKENMedium. Unverified: the header an API token goes in is not documented
CloudflareCLOUDFLARE_API_TOKENHigh: DNS, Workers, billable resources, depending on the token
SupabaseSUPABASE_ACCESS_TOKENHigh: runs SQL. The address starts read-only

Picking a high-risk server shows what it can do before you continue. Git is in the catalog but not offered yet: it runs as a local program, and the bx-ai bundled with this release talks to web MCP servers only.

After it is created

new runs box install (skip it with --skipInstall), then prints what is left: the keys to fill in, how to chat, test, serve and deploy, and, for each channel you chose, the setup that happens outside the project. For WhatsApp that means the Meta app, the verify token and a public address; for Slack, Socket Mode and two tokens; for Signal, a running signal-cli. The same steps live on each gateway page.

Without the wizard

The wizard writes nothing a flag cannot. The last screen prints the command; this one came from a real run:

bxAgents new support-bot --name=support-bot --model=claude --with=time,fetch,search --search=brave \
  --mcp=github --channels=web,telegram --web-auth=key --guard=flag --deploy=docker --registry=ghcr:me/support-bot
FlagTakes
--withtime, fetch, search, browse, files, media (a list)
--searchhttp, brave, tavily, exa, google
--files, --files-dirread, all or a list of tool names; folders as tmp, cwd or absolute paths. Both are needed together
--memorycache or file
--mcpMCP server ids (a list)
--channelsweb, api, or channel ids (a list)
--web-authopen or key. Users need passwords, so they come from the wizard or from gateways/webui.bx
--guardoff, flag or block
--deploydocker, digitalocean, ssh, sftp, ftp, local, with --registry=ghcr:owner/name (or dockerhub:, docr:), --app, --region, --host, --user, --remote-path, --destination as the target needs

A flag with a bad value stops the command and says what the flag accepts. The wizard turns on when:

You runResult
bxAgents new at a terminalThe full-screen wizard
bxAgents new in a pipe, or with --no-tuiThe same questions as numbered lines. Type back to go back
bxAgents new --model=...No questions: a model means a script is calling. Add --wizard to be asked the rest
bxAgents new --no-wizard or --yesNo questions, flags and defaults only

Set NO_COLOR for plain output. The Agent.yaml options the wizard writes need the default Agent.yaml, so they cannot be combined with --class.

Edit this page Download Markdown Last updated Oct 19, 2026, 12:53:58 PM Report an issue