Smith
Constants
Class methods
The git root at or above start_dir, or nil outside a checkout.
The boundary two upward walks share — the one that looks for
.smith/config.toml and the one that collects SMITH.md / AGENTS.md — so
they cannot disagree about where the project ends.
Whether this directory is the root of a git checkout.
File.exists? rather than Dir.exists?, and that is the whole point: in a
normal clone .git is a directory, but in a worktree and in a
submodule it is a regular file holding a gitdir: line. Asking for a
directory says "no" there, and a walk that stops at the git root would run
past the project and up to the filesystem root — collecting another
project's instructions and config on the way.
Root directory for all of smith's user-level state: global instructions, the skills catalog, saved sessions and the global config file.
Overridable via SMITH_HOME, which is what the specs use to stay clear of a developer's real ~/.smith.
Nested types
- Smith::Agent
- Smith::Agents
- Smith::AtomicFile
- Smith::AutoPlanGate
- Smith::CLI
- Smith::ChatCommand
- Smith::ChatCommands
- Smith::Checkpoints
- Smith::Config
- Smith::Context
- Smith::Events
- Smith::FileKind
- Smith::Frontmatter
- Smith::HaltingPlanGate
- Smith::Hooks
- Smith::LLM
- Smith::MCP
- Smith::Media
- Smith::Mentions
- Smith::Mode
- Smith::Output
- Smith::PlainPresentation
- Smith::PlanDecision
- Smith::PlanGate
- Smith::PlanSession
- Smith::PlanVerdict
- Smith::Presentation
- Smith::Pricing
- Smith::ProjectContext
- Smith::PromptPlanGate
- Smith::Sandbox
- Smith::Session
- Smith::Skills
- Smith::Stats
- Smith::Subagents
- Smith::TodoList
- Smith::Tools
- Smith::TranscriptLog
- Smith::TrustPrompt
- Smith::TrustStore
- Smith::UI
- Smith::Web