Core Concepts

Tools Reference

Stud provides a set of powerful tools for interacting with your codebase. Every tool execution is transparent and requires your approval.

Read

Reads the contents of a file from your filesystem. Supports line offsets and limits for large files, and can read images, PDFs, and Jupyter notebooks.

Example
Read src/server/PlayerData.lua
1│ local PlayerData = {}
2│
3│ function PlayerData.init(player)
4│ local data = DataStore:GetAsync(player.UserId)
5│ ...

Parameters

file_path
— Absolute path to the file to read
offset
— Line number to start reading from (optional)
limit
— Number of lines to read (optional)

Write

Writes content to a file, creating it if it doesn't exist or overwriting it if it does. Stud will always ask for your permission before writing.

Example
Write src/shared/Config.lua
+ return {
+ MaxPlayers = 50,
+ Debug = false,
+ }

Edit

Performs targeted string replacements in files. More precise than Write — only changes what needs to change, leaving the rest of the file untouched.

Example
Edit src/server/PlayerData.lua
- MaxPlayers = 50,
+ MaxPlayers = 100,

Glob

Fast file pattern matching. Find files by name, extension, or directory pattern. Returns matching paths sorted by modification time.

Example
Glob "**/*.lua"23 files
src/server/init.lua
src/server/PlayerData.lua
src/client/PlayerGui.lua
src/shared/Config.lua
... 19 more

Grep

Search file contents using regular expressions. Supports context lines, file type filtering, and multiple output modes. Built on ripgrep for speed.

Example
Grep "GetAsync" --type lua3 matches
src/server/PlayerData.lua:4: local data = DataStore:GetAsync(key)
src/server/Leaderboard.lua:12: local scores = Store:GetAsync("top")
>_

Bash

Execute shell commands directly from Stud. Useful for running builds, tests, git operations, and other terminal tasks. Output is captured and parsed intelligently.

Example
>_git status
On branch main
Changes not staged for commit:
modified: src/server/PlayerData.lua

Subagents

Delegate tasks to background agents that work in parallel. Subagents have their own context and tools, making them ideal for researching code, running tests, or handling independent subtasks.

Example
Spawning subagent: "Review all server scripts for security issues"
Agent working in background...