dfm — Developer Foundation Model
A coding agent that runs entirely on your Mac. DFM edits, builds, tests, repairs and verifies code using on-device models: Apple FM for routing and short text, and a local MLX model for code. Repository knowledge comes from RepoCanon, RepoKG and, optionally, Reflex.
DFM sends no code or prompts to hosted models. Other network access (GitHub, package registries) is off or requires approval, per policy.
Status: early (0.0.1). Commands and configuration may change.
Requirements
- macOS on Apple Silicon, Python 3.12+, uv, Git.
- Memory for the local model: the recommended 27B model (4-bit) needs about 18.5 GB at its
default context, so 32 GB or more is recommended.
dfm setuppicks a model that fits. - Optional: Apple Intelligence, for Apple FM.
Quick start
git clone https://github.com/NehharShah/dfm && cd dfm
uv sync --extra mlx
uv run dfm doctor # check this machine
uv run dfm setup # choose a local model
uv run dfm # interactive session in this repository
Or install it as a command: uv tool install dfm-agent (from PyPI).
dfm in a repository starts an interactive session: type what you want done, watch each step
run, and /undo the last request if you don't want it. Single commands such as
dfm implement "fix the failing test" do one task and exit.
How it works
- The model proposes one action at a time (read, search, patch, run, test). DFM executes it, reruns the tests after every edit, and reports only what a command verified.
- Every command is classified and checked against policy, then runs in a per-command macOS sandbox. Destructive, production and mainnet actions require a typed confirmation. DFM does not commit, push or rewrite history.
- Repository files, issues and CI logs reach the model as untrusted data, with secrets redacted.
- Memory checks, thermal pacing, reasoning budgets and a persistent prompt cache keep the model usable alongside other apps.
Modes: ask, plan, implement, review, security-review, ci, fix-pr,
implement-issue, benchmark. Full list: command reference.
Documentation
Guide · Architecture · Commands · Configuration · Policy · Threat model · Troubleshooting · Design decisions
Contributing and security
See CONTRIBUTING.md and AGENTS.md. Report vulnerabilities privately as described in SECURITY.md. Changes: CHANGELOG.md.
License and notices
DFM is released under the MIT License and is provided "as is", without warranty of any kind. DFM runs commands and changes files on your machine. Its safeguards reduce risk but do not eliminate it. Review its changes before you commit them.
Models are third-party software under their own licenses, and you are responsible for complying with the license of any model you download. RepoCanon, RepoKG and Reflex are separate projects under their own licenses.
Apple, Apple Intelligence, Apple Silicon and macOS are trademarks of Apple Inc. DFM is an independent project and is not affiliated with or endorsed by Apple.
Metadata
Release files for dfm-agent 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dfm_agent-0.0.4.tar.gz | 284.7 kB | With provenance | Details for dfm_agent-0.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dfm_agent-0.0.4-py3-none-any.whl | Python 3 | none | any | Details for dfm_agent-0.0.4-py3-none-any.whl |
Total release size: 645.7 kB
Release files / dfm_agent-0.0.4.tar.gz
| Download URL | dfm_agent-0.0.4.tar.gz |
|---|---|
| Size | 284.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
399398d200868004e2984c13bc9bdcc6895fdeed7bd34e6390adf284325f84e4
|
|
BLAKE2b-256 checksum How to use checksums |
692cb767b18b8195896fd398f84af4d9e396003fccfd49926a1f59f6829b8264
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.
Transparency logRelease files / dfm_agent-0.0.4-py3-none-any.whl
| Download URL | dfm_agent-0.0.4-py3-none-any.whl |
|---|---|
| Size | 360.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
196f0464254c48bc71038bc26f3e4477d0365029db0e81ba8d3c4d2e3673431c
|
|
BLAKE2b-256 checksum How to use checksums |
4ff74ce4c0e27138923a0a8f558d962fd102c94b521ad62984cc8a0001a03d95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.
Transparency logSecurity for dfm-agent 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for dfm_agent-0.0.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.