ββββββ βββββ βββ βββββ
ββββββββ βββββ βββ βββββ
ββββββββ ββββ ββββ βββββββββββββ ββββββββ ββββββ
βββββββββββββ βββββ βββββββββββββββ βββββββββ ββββββββ
ββββ ββββββββ ββββ ββββ ββββ ββββ ββββ ββββββββ ββββ
ββββ βββββββ ββββ ββββ ββββ ββββ ββββ ββββββββ ββββ
βββββ βββββββ βββββ βββββββββ βββββ ββββββββ ββββββββ
βββββ βββββ βββββ βββββ βββ βββββ ββββββββ ββββββ
This repository accompanies a forthcoming blog post on {{placeholder-blog-title}}, walking through how to build a lightweight, multi-tool coding agent in Swift.
- CLI Entry (
Sources/NimboCLI/main.swift) wires environment configuration and launches theAgent. - Agent Orchestrator (
Sources/NimboCLI/Agent.swift) tracks chat history, loops through model calls, and routes tool invocations (list files, read file, edit file) using SwiftOpenAI. - Tool Protocol & Implementations (
Sources/NimboCLI/Tools/) provide self-contained actions:ListFilessurfaces directory snapshots.ReadFilestreams capped file contents.EditFileperforms targeted text replacements with guardrails.
- Shared Helpers (
Sources/NimboCLI/Tools/Tool+Helpers.swift) centralize path decoding, URL utilities, and string helpers to keep tool logic terse.
Together these components form an iterative agent loop capable of planning, calling multiple tools per turn, and reflecting the results back to the userβready for deeper exploration in the upcoming blog write-up.