Skip to content

File Management

Ask naturally — BMO will pick the right tool:

Show me internal/agent/agent.go
What's in the config file?
Show lines 100–200 of the main handler.

BMO uses view for reading files. For binary or image files, the tool will indicate it can’t read them.

Find all files that call json.Unmarshal
Where is the connection pool configured?
Grep for TODO comments in the internal/ directory

BMO uses grep with regex patterns. You can also be explicit:

grep -r "ErrNotFound" in internal/
Find all *_test.go files in internal/
List all .yaml files in the project

BMO uses glob for path pattern matching.

Find all references to the Options struct
Show me all implementations of the Tool interface

When LSP is active, BMO uses lsp_references for precise cross-file symbol search.

Tell BMO what to change; it will propose the edit using the edit tool:

Add a Timeout field to the Options struct in config.go
Rename the function handleRequest to handleHTTPRequest everywhere
Fix the missing error check on line 42 of server.go
Create a new file internal/cache/cache.go with a simple LRU cache interface
Generate a Makefile with build, test, and lint targets

BMO uses write for new files. It will show you the content before creating.

Add a license header to every .go file in internal/
Rename all occurrences of "userId" to "userID" across the codebase

For bulk edits, BMO may use a combination of grep, edit, and confirmation. Use Staged Workflow to review the full plan before execution.

Show me what files I've changed since the last commit
What did I just edit?

BMO can run git diff and summarize changes for you.