Native for Apple Silicon · macOS 14+

Make the AI coding loop visible.

Aidesmith turns requests into small tasks, runs the edit loop with the model you choose, checks the result, and keeps the attempts, failures, token usage, and checkpoints in one native Mac app.

40-60% fewer cloud tokens. The rest runs on your Mac.

Aidesmith dashboard screenshot

Enlarged Aidesmith dashboard screenshot.

Aidesmith workbench: Architect chat, task queue, execution log, code view, tracker, and project index

The core idea

Use the cloud model for the part that needs it.

Planning goes to a stronger model. The repetitive edit loop runs locally.

Before
100%
All tokens in the cloud
With Aidesmith
40-60%
Cloud + local split
Architect / Executor

Planning, tasks, execution.

Aidesmith uses the Architect/Executor pattern, with a task and validator layer in between. The Architect turns a request into small work packages. The task layer keeps validation, retries, and evidence visible. The Executor edits code and reacts to real failures. Each model-backed role can use the provider that fits it, cloud or local.

Architect

Cloud or local

Talks with you, reads the codebase, and shapes the work into small tasks.

  • Planning
  • Code understanding
  • Task shape

Tasks

Checks + validator model

Runs tests and local checks first, then uses a validator model only when judgment is needed.

  • Validation
  • Evidence
  • History

Executor

Cloud or local

Carries each task out. File reads, edits, retries, corrections.

  • Edit loop
  • Retries
  • Token-heavy work
Architecture strengths

Small tasks. Real checks. Bounded retries.

Aidesmith separates planning from execution, then keeps the edit loop honest with deterministic checks and limited escalation. You do not have to trust the model's final sentence. The task passes when the evidence passes.

  1. 01

    Clear model roles

    The Architect handles intent, paths, and task shape. The Tasks layer handles validation, evidence, and history. The Executor handles the noisy edit loop.

  2. 02

    Tasks are contracts

    Every task carries a brief with hard write scope, context hints, out-of-scope guardrails, and acceptance criteria. The Executor does not improvise outside the work package.

  3. 03

    Explicit validation DSL

    Acceptance criteria are written in a small DSL. That gives the app something concrete to run and something concrete to reject.

  4. 04

    Criteria are linted first

    Before a task enters the queue, Aidesmith checks the criteria for unsafe paths, unsupported commands, missing scope, placeholder invariants, and test names the runner will never discover.

  5. 05

    Mechanical checks are free

    Path-scoped grep, absence checks, syntax lint, command checks, and the project test gate run locally before any validator model is called.

  6. 06

    Ralph-style retry loop

    A task is not done because a model claims it is done. It is done when validation passes. Failures are fed into the next attempt with exact evidence.

  7. 07

    Bounded arbitration

    Cheap models can suggest the next retry. Only the Architect can change the rules or accept an override, and rule changes are checked again.

  8. 08

    Security when it fits

    Security review is risk-gated. Tasks touching auth, permissions, secrets, queries, uploads, payments, or sensitive data get concrete security criteria; ordinary edits do not pay that cost.

  9. 09

    Hard write safety

    Aidesmith keeps each task's changes contained. Failed attempts can be rolled back, fixed generated files stay fixed, and completed work gets a clean checkpoint.

  10. 10

    Project-aware planning

    Aidesmith builds a local repo map from manifests, commands, conventions, semantic search, file synopses, and tree-sitter symbols.

  11. 11

    Cost-aware by design

    Cloud calls are reserved for planning and judgment. The token-heavy edit loop runs on local or cheaper compatible models whenever the task can be validated mechanically.

Ralph-style loops

Done when checks pass, not when the model says so.

Every task is validated with local checks first: greps, absence checks, syntax lint, command checks, and the project's own tests. Semantic and security reviews run only when the task actually needs judgment. Failures feed straight back into the next attempt, bounded by the actual evidence.

Architect pane
User: "Add refresh token rotation"
Plan: API rotation first, then client session handling
Tasks pane
Task 1: Rotate refresh tokens in the API
Executor attempt 1: edits token service and tests
Validation: payload.jti is undefined
Executor attempt 2: retries with failure context
Tests: auth token suite passed
Content: refresh returns a new token pair
Security: reused refresh token is rejected
Git checkpoint: committed API rotation
Task 2: Store the rotated token on the client
Executor attempt 1: updates API client and session store
Tests: expired access-token flow passed
Content: client keeps the latest refresh token
Security: logout clears stored tokens
Git checkpoint: committed client refresh flow
Project awareness

Plans start from your actual code.

When you open a project, Aidesmith studies it on device. No source leaves your machine for indexing.

01

Semantic index

Local embeddings scan and index the codebase for meaning-based search.

02

Structural analysis

Tree-sitter extracts symbols for Swift, PHP, JavaScript, TypeScript, Python, Go, Rust, and Java.

03

File synopses

Apple Intelligence writes a summary for every file, on device.

04

Project profile

Language, framework version, test commands, and your coding conventions.

Features

What's in the app.

Three-pane workbench

Chat with the Architect, watch the task queue, inspect every execution. Flip on the code view for a live diff of every change.

Bring your own models

Anthropic, OpenAI-compatible, Google, or local providers like Ollama. Pick per role.

Quota & usage tracking

Per-task cloud/local token split, with live provider quotas and local model usage in the menu bar.

Risk-gated security review

Security-sensitive tasks get concrete checks for leaked fields, unsafe queries, auth bypasses, path traversal, and secret handling.

Auto-pause & auto-resume

When you hit a quota limit, work pauses and resumes on its own once the quota resets.

Automatic task history

Each validated task is recorded automatically, with a clean checkpoint you can inspect or roll back.

Coming Soon

Auto or supervised

Per-pane mode with force-run or pause for individual tasks.

FluidAudio voice chat

Talk to Aidesmith naturally with Parakeet ASR and SenseVoice. Streaming, low latency, entirely on device.

Specs

Under the hood.

Ralph loops
Bounded retries fed by the actual failure · done when checks pass
Criteria DSL
Explicit task criteria, linted before execution
Tests
Adds task-specific tests when needed and runs the project's own suite on every task
Security checks
Risk-gated criteria for auth, secrets, permissions, queries, uploads, payments, and sensitive data
Version control
Automatic task history with a checkpoint for each validated task
Languages
Tree-sitter symbols for Swift, PHP, JavaScript, TypeScript, Python, Go, Rust, and Java
Project awareness
Semantic index, tree-sitter symbols, on-device file synopses
Models
Cloud: Anthropic, OpenAI-compatible, Google · Local: Ollama and compatible
Voice
FluidAudio with Parakeet ASR and SenseVoice · on device
Platform
Native SwiftUI · Apple Silicon · macOS 14+

Stop paying cloud rates for every token.

Aidesmith is in private beta. Request access and we'll be in touch.

Request early access →