Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

yadgar — the client

One binary. yadgar login obtains a credential, yadgar serve is the MCP server your agent spawns, and everything else manages the machine it runs on (D75, D76).

Decisions are recorded in yadgarhq/docs — D75 (the proxy that knows no tools), D76 (one binary, and a rules file that is referenced rather than spliced), D72 (the credential), D16 (why the gateway is the only thing that speaks MCP inward).

What it is

A proxy, and deliberately nothing more. tools/list is forwarded to the gateway and its answer returned verbatim; so is tools/call. There is no per-tool code in this repository at all — not a match arm, not a registry, not a feature flag.

That is the boundary rather than an economy. A list the client asserts is a list the client is trusted to filter honestly; forwarding makes the gateway's answer the only answer, and the gateway resolves identity before it replies. It is also what keeps releases uncoupled: this binary lives on people's laptops and the gateway does not, so a client that enumerated tools would make the tool set move at the speed of the slowest machine.

When the gateway is unreachable at spawn, the last tool list is served from cache and calls fail with a plain "gateway unreachable" — because an empty list is indistinguishable from yadgar not being installed, and the agent would silently lose memory and tasks with nothing to report.

Commands

Command What it does
yadgar login Asks for the gateway address and your credentials once, stores both together, and registers the MCP server in the agent client's user-level config — once per machine, never per repository.
yadgar serve The stdio MCP server the agent spawns. Not run by hand.
yadgar install Hooks, the rules reference, the MCP entry, and a health check.
yadgar uninstall Removes what install added, and nothing else.
yadgar verify Reports drift in the installed environment. Scheduled, not remembered — the daemon cannot see ~/.claude/settings.json, so nothing server-side can ever notice.
yadgar hook <event> What settings.json invokes. A hook is a dispatch, not a program.

login is the whole setup. project_id is derived from the working directory at call time (D53), so one registration serves every repository and a fresh checkout works immediately.

Installing

pipx install yadgar
yadgar login

Rust, shipped to PyPI as wheels via maturin. The language follows the rest of the system; the channel follows the people already using it, and pipx install yadgar is not a thing a rewrite gets to take away. A plain GitHub-release binary was rejected for exactly that reason.

The wheel carries the compiled binary and no Python at all — bindings = "bin" in pyproject.toml — so import yadgar is not a thing and is not meant to be.

A wheel is per-platform, so there are six: Linux, macOS and Windows, each on x86_64 and aarch64. Every one is built on a runner of its own architecture rather than cross-compiled, and release.yaml refuses to publish unless all six are present — shipping the four that built would leave two platforms silently installing an older version.

Development

cargo build
cargo test
pre-commit run --all-files

There is no Containerfile and no chart here: this repository is not a service, and what it ships is a wheel. CI is the shared workflow in yadgarhq/actions, which detects that and skips the image, chart and proto stages (D62).

To build a wheel locally:

maturin build --release   # → target/wheels/, for THIS machine only

The other five targets are built by .github/workflows/release.yaml, which is this repository's one piece of local CI. The reason it is not in yadgarhq/actions with everything else is written at the top of that file.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

yaadgaar-0.1.0a1-py3-none-win_arm64.whl (756.0 kB view details)

Uploaded Python 3Windows ARM64

yaadgaar-0.1.0a1-py3-none-win_amd64.whl (789.5 kB view details)

Uploaded Python 3Windows x86-64

yaadgaar-0.1.0a1-py3-none-manylinux_2_28_aarch64.whl (857.5 kB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

yaadgaar-0.1.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (910.4 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

yaadgaar-0.1.0a1-py3-none-macosx_11_0_arm64.whl (843.5 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

yaadgaar-0.1.0a1-py3-none-macosx_10_12_x86_64.whl (868.2 kB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file yaadgaar-0.1.0a1-py3-none-win_arm64.whl.

File metadata

  • Download URL: yaadgaar-0.1.0a1-py3-none-win_arm64.whl
  • Upload date:
  • Size: 756.0 kB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yaadgaar-0.1.0a1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 beaa34c4d5c00190a6b6ce7187019810f83f2ba410fc5600ac3e327295d7202f
MD5 588f0a493804d1753ae5a5ed8850b3ce
BLAKE2b-256 42224a3d88bac7e145e47b07c96201e31e1b059b9e5e79e2b7232e3bdd027da1

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaadgaar-0.1.0a1-py3-none-win_arm64.whl:

Publisher: release.yaml on yadgarhq/yadgar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yaadgaar-0.1.0a1-py3-none-win_amd64.whl.

File metadata

  • Download URL: yaadgaar-0.1.0a1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 789.5 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yaadgaar-0.1.0a1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3782ae22a28c24736af49706910ac19d249fc8165f389232381738587edc2737
MD5 73d6141a600ed78aeabbde9c924e5181
BLAKE2b-256 0d1ead366bd65c3d120637f5cac10a24b1687cbfdc58033b11796b52f6c60585

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaadgaar-0.1.0a1-py3-none-win_amd64.whl:

Publisher: release.yaml on yadgarhq/yadgar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yaadgaar-0.1.0a1-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for yaadgaar-0.1.0a1-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bc2adbc6bac640ca42834db762588bd4f7513f6464c1c52a1c00360f21d80d73
MD5 06ffad55d8e41607384af809f89684b3
BLAKE2b-256 864ea156c7fa7cfe310fe7a36ed471bbe23da99bf84f29f9fc70d8cf0412500d

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaadgaar-0.1.0a1-py3-none-manylinux_2_28_aarch64.whl:

Publisher: release.yaml on yadgarhq/yadgar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yaadgaar-0.1.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for yaadgaar-0.1.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f03bc34c4d0334ce5374f73874f03baa0cd95523113db887be905022fcd1b1ab
MD5 ad6159b5dac524b63983e338aeab8c70
BLAKE2b-256 8a4d4ebe028485cc5946ee324a6d19faedc64f0ea91cf5715fba689bf193a70c

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaadgaar-0.1.0a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yaml on yadgarhq/yadgar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yaadgaar-0.1.0a1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for yaadgaar-0.1.0a1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c7992c475d70260aa70a3902f6b91d01e516a395b8828001e80979363de6c0c
MD5 febd8b8a57f8034faddbfafe18c03db0
BLAKE2b-256 cd6968dc36a096f0910e145835a6681d0afbe4fc0689739ae05bd4224d645971

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaadgaar-0.1.0a1-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yaml on yadgarhq/yadgar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yaadgaar-0.1.0a1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for yaadgaar-0.1.0a1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8951e90121bc9571a0d914318da1ca6c83dfba69a95f8965586016a701623b01
MD5 e751bb78750a3fa4a63864cafbdc4844
BLAKE2b-256 0fbdf7b40bb50299dd337a037e2c05c3396750c876c382d74ec4561bec862688

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaadgaar-0.1.0a1-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yaml on yadgarhq/yadgar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page