<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atuin/crates/atuin-client/src/api_client.rs, branch main</title>
<subtitle>Turtle. A hard-fork of atuin, focusing on a more minimal feature set</subtitle>
<id>http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-client/src/api_client.rs?h=main</id>
<link rel='self' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-client/src/api_client.rs?h=main'/>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/'/>
<updated>2026-06-10T22:54:30Z</updated>
<entry>
<title>chore: Move everything into one big crate</title>
<updated>2026-06-10T22:54:30Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2026-06-10T22:54:30Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8'/>
<id>urn:sha1:5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8</id>
<content type='text'>
That helps remove duplicated code and rustc/cargo will now also show
dead code correctly.
</content>
</entry>
<entry>
<title>chore: Somewhat simplify sync code</title>
<updated>2026-06-10T21:12:17Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2026-06-10T21:12:17Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=9eb2ffb2e9b52cdec70acb268e7a12131811db10'/>
<id>urn:sha1:9eb2ffb2e9b52cdec70acb268e7a12131811db10</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: Allow authenticating with Atuin Hub (#3237)</title>
<updated>2026-03-11T15:50:17Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-03-11T15:50:17Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=c8fd7d3d8f2c93c24a4a5fc41361dfed8714e73a'/>
<id>urn:sha1:c8fd7d3d8f2c93c24a4a5fc41361dfed8714e73a</id>
<content type='text'>
## Summary

This PR enables the Atuin CLI to authenticate with Atuin Hub, unifying
authentication across CLI sync and Hub features (AI, runbooks, etc.).

### Key Changes

- **Dual auth support**: New `AuthToken` enum supports both `Bearer`
(Hub) and `Token` (legacy CLI) authentication
- **Smart protocol selection**: New `sync_protocol` setting
(`auto`/`hub`/`legacy`) determines auth method. By default,
`api.atuin.sh` uses Hub auth; custom sync addresses use legacy auth
- **Hub login flow**: `atuin login` now initiates an OAuth-like flow for
Hub users—generates a code, user authorizes in browser, CLI polls for
completion
- **Account linking**: After Hub auth, silently attempts to link
existing CLI sync account to Hub account for seamless migration
- **Graceful fallback**: `sync_auth_token()` prefers Hub token when
available, falls back to CLI session token

### Auth Flow

1. User runs `atuin login` (with default sync address)
2. CLI requests auth code from Hub, displays URL
3. User opens URL, logs in/registers on Hub
4. Hub attaches API token to code
5. CLI polls, receives token, saves as hub session
6. If user had existing CLI sync account, it's automatically linked

### Backward Compatibility

- Existing self-hosted users: unaffected (legacy auth via `Token`
header)
- Existing `api.atuin.sh` users: continue working with CLI session until
they run `atuin login`
- New users: go through Hub flow automatically

## Test Plan

- [ ] New user registration via Hub flow
- [ ] Existing CLI user can still sync without changes
- [ ] `atuin login` links CLI account to Hub account
- [ ] Self-hosted users unaffected by changes
- [ ] AI commands work after Hub auth

---------

Co-authored-by: Ellie Huxtable &lt;ellie@elliehuxtable.com&gt;</content>
</entry>
<entry>
<title>chore(deps): audit ssl deps (#3110)</title>
<updated>2026-01-28T00:20:25Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2026-01-28T00:20:25Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=f294c5bca990f684b59f217dd468a41b7ac83d0e'/>
<id>urn:sha1:f294c5bca990f684b59f217dd468a41b7ac83d0e</id>
<content type='text'>
&lt;!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord --&gt;

## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing</content>
</entry>
<entry>
<title>feat: remove user verification functionality (#3108)</title>
<updated>2026-01-27T21:56:18Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2026-01-27T21:56:18Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=e2b421c88479857831e938acb311aef5127f38b4'/>
<id>urn:sha1:e2b421c88479857831e938acb311aef5127f38b4</id>
<content type='text'>
&lt;!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord --&gt;

## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing

---------

Co-authored-by: greptile-apps[bot] &lt;165735046+greptile-apps[bot]@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>fix: clippy warnings I don't have on my version of clippy</title>
<updated>2025-09-10T19:57:43Z</updated>
<author>
<name>Ray Kohler</name>
<email>ataraxia937@ataraxia937.xyz</email>
</author>
<published>2025-08-11T22:14:21Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=e4ababed6a6b4f4f358c9e2d293e9b10a0954d52'/>
<id>urn:sha1:e4ababed6a6b4f4f358c9e2d293e9b10a0954d52</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: run `cargo fmt`</title>
<updated>2025-09-10T19:57:43Z</updated>
<author>
<name>Ray Kohler</name>
<email>ataraxia937@ataraxia937.xyz</email>
</author>
<published>2025-08-11T22:03:40Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=3b8702790b6c74786cdd0cc04c2d89962c1117cb'/>
<id>urn:sha1:3b8702790b6c74786cdd0cc04c2d89962c1117cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: `cargo update` and changes needed to accomodate it</title>
<updated>2025-09-10T19:57:43Z</updated>
<author>
<name>Ray Kohler</name>
<email>ataraxia937@ataraxia937.xyz</email>
</author>
<published>2025-08-11T21:53:31Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=23b9e8a68c41885f73418cd93ebb84b78011f10f'/>
<id>urn:sha1:23b9e8a68c41885f73418cd93ebb84b78011f10f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: update to rust 1.88 (#2815)</title>
<updated>2025-07-22T14:03:20Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-07-22T14:03:20Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=e7819d258a29eeec0e9255a961fee3b44735afab'/>
<id>urn:sha1:e7819d258a29eeec0e9255a961fee3b44735afab</id>
<content type='text'>
* chore: update to rust 1.88

* clippy + fmt

* update ci version

* update flake</content>
</entry>
<entry>
<title>fix(api): Allow trailing slashes in sync_address (#2760)</title>
<updated>2025-05-22T00:36:23Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2025-05-22T00:36:23Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=87a963600cb6bea8f594d53f3a19920af7560169'/>
<id>urn:sha1:87a963600cb6bea8f594d53f3a19920af7560169</id>
<content type='text'>
</content>
</entry>
</feed>
