aboutsummaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/client/Cargo.toml103
-rw-r--r--crates/client/build.rs (renamed from crates/turtle/build.rs)0
-rw-r--r--crates/client/src/atuin_client/api_client.rs (renamed from crates/turtle/src/atuin_client/api_client.rs)0
-rw-r--r--crates/client/src/atuin_client/database.rs (renamed from crates/turtle/src/atuin_client/database.rs)0
-rw-r--r--crates/client/src/atuin_client/encryption.rs (renamed from crates/turtle/src/atuin_client/encryption.rs)0
-rw-r--r--crates/client/src/atuin_client/history.rs (renamed from crates/turtle/src/atuin_client/history.rs)0
-rw-r--r--crates/client/src/atuin_client/history/builder.rs (renamed from crates/turtle/src/atuin_client/history/builder.rs)0
-rw-r--r--crates/client/src/atuin_client/history/store.rs (renamed from crates/turtle/src/atuin_client/history/store.rs)0
-rw-r--r--crates/client/src/atuin_client/meta.rs (renamed from crates/turtle/src/atuin_client/meta.rs)0
-rw-r--r--crates/client/src/atuin_client/mod.rs (renamed from crates/turtle/src/atuin_client/mod.rs)0
-rw-r--r--crates/client/src/atuin_client/ordering.rs (renamed from crates/turtle/src/atuin_client/ordering.rs)0
-rw-r--r--crates/client/src/atuin_client/record/encryption.rs (renamed from crates/turtle/src/atuin_client/record/encryption.rs)0
-rw-r--r--crates/client/src/atuin_client/record/mod.rs (renamed from crates/turtle/src/atuin_client/record/mod.rs)0
-rw-r--r--crates/client/src/atuin_client/record/sqlite_store.rs (renamed from crates/turtle/src/atuin_client/record/sqlite_store.rs)0
-rw-r--r--crates/client/src/atuin_client/record/sync.rs (renamed from crates/turtle/src/atuin_client/record/sync.rs)0
-rw-r--r--crates/client/src/atuin_client/secrets.rs (renamed from crates/turtle/src/atuin_client/secrets.rs)0
-rw-r--r--crates/client/src/atuin_client/settings.rs (renamed from crates/turtle/src/atuin_client/settings.rs)0
-rw-r--r--crates/client/src/atuin_client/settings/meta.rs (renamed from crates/turtle/src/atuin_client/settings/meta.rs)0
-rw-r--r--crates/client/src/atuin_client/settings/watcher.rs (renamed from crates/turtle/src/atuin_client/settings/watcher.rs)0
-rw-r--r--crates/client/src/atuin_client/theme.rs (renamed from crates/turtle/src/atuin_client/theme.rs)0
-rw-r--r--crates/client/src/atuin_client/utils.rs (renamed from crates/turtle/src/atuin_client/utils.rs)0
-rw-r--r--crates/client/src/atuin_common/api.rs (renamed from crates/turtle/src/atuin_common/api.rs)0
-rw-r--r--crates/client/src/atuin_common/mod.rs (renamed from crates/turtle/src/atuin_common/mod.rs)0
-rw-r--r--crates/client/src/atuin_common/record.rs (renamed from crates/turtle/src/atuin_common/record.rs)0
-rw-r--r--crates/client/src/atuin_common/shell.rs (renamed from crates/turtle/src/atuin_common/shell.rs)0
-rw-r--r--crates/client/src/atuin_common/tls.rs (renamed from crates/turtle/src/atuin_common/tls.rs)0
-rw-r--r--crates/client/src/atuin_common/utils.rs (renamed from crates/turtle/src/atuin_common/utils.rs)0
-rw-r--r--crates/client/src/atuin_history/mod.rs (renamed from crates/turtle/src/atuin_history/mod.rs)0
-rw-r--r--crates/client/src/atuin_history/sort.rs (renamed from crates/turtle/src/atuin_history/sort.rs)0
-rw-r--r--crates/client/src/atuin_history/stats.rs (renamed from crates/turtle/src/atuin_history/stats.rs)0
-rw-r--r--crates/client/src/atuin_pty_proxy/capture.rs (renamed from crates/turtle/src/atuin_pty_proxy/capture.rs)0
-rw-r--r--crates/client/src/atuin_pty_proxy/debug.rs (renamed from crates/turtle/src/atuin_pty_proxy/debug.rs)0
-rw-r--r--crates/client/src/atuin_pty_proxy/mod.rs (renamed from crates/turtle/src/atuin_pty_proxy/mod.rs)0
-rw-r--r--crates/client/src/atuin_pty_proxy/osc133.rs (renamed from crates/turtle/src/atuin_pty_proxy/osc133.rs)0
-rw-r--r--crates/client/src/atuin_pty_proxy/pty_proxy.rs (renamed from crates/turtle/src/atuin_pty_proxy/pty_proxy.rs)0
-rw-r--r--crates/client/src/atuin_pty_proxy/runtime.rs (renamed from crates/turtle/src/atuin_pty_proxy/runtime.rs)0
-rw-r--r--crates/client/src/atuin_pty_proxy/screen.rs (renamed from crates/turtle/src/atuin_pty_proxy/screen.rs)0
l---------crates/client/src/command/CONTRIBUTORS (renamed from crates/turtle/src/command/CONTRIBUTORS)0
-rw-r--r--crates/client/src/command/client.rs (renamed from crates/turtle/src/command/client.rs)0
-rw-r--r--crates/client/src/command/client/config.rs (renamed from crates/turtle/src/command/client/config.rs)0
-rw-r--r--crates/client/src/command/client/daemon.rs (renamed from crates/turtle/src/command/client/daemon.rs)0
-rw-r--r--crates/client/src/command/client/default_config.rs (renamed from crates/turtle/src/command/client/default_config.rs)0
-rw-r--r--crates/client/src/command/client/history.rs (renamed from crates/turtle/src/command/client/history.rs)0
-rw-r--r--crates/client/src/command/client/info.rs (renamed from crates/turtle/src/command/client/info.rs)0
-rw-r--r--crates/client/src/command/client/init.rs (renamed from crates/turtle/src/command/client/init.rs)0
-rw-r--r--crates/client/src/command/client/init/bash.rs (renamed from crates/turtle/src/command/client/init/bash.rs)0
-rw-r--r--crates/client/src/command/client/init/fish.rs (renamed from crates/turtle/src/command/client/init/fish.rs)0
-rw-r--r--crates/client/src/command/client/init/powershell.rs (renamed from crates/turtle/src/command/client/init/powershell.rs)0
-rw-r--r--crates/client/src/command/client/init/xonsh.rs (renamed from crates/turtle/src/command/client/init/xonsh.rs)0
-rw-r--r--crates/client/src/command/client/init/zsh.rs (renamed from crates/turtle/src/command/client/init/zsh.rs)0
-rw-r--r--crates/client/src/command/client/search.rs (renamed from crates/turtle/src/command/client/search.rs)0
-rw-r--r--crates/client/src/command/client/search/cursor.rs (renamed from crates/turtle/src/command/client/search/cursor.rs)0
-rw-r--r--crates/client/src/command/client/search/duration.rs (renamed from crates/turtle/src/command/client/search/duration.rs)0
-rw-r--r--crates/client/src/command/client/search/engines.rs (renamed from crates/turtle/src/command/client/search/engines.rs)0
-rw-r--r--crates/client/src/command/client/search/engines/daemon.rs (renamed from crates/turtle/src/command/client/search/engines/daemon.rs)0
-rw-r--r--crates/client/src/command/client/search/engines/db.rs (renamed from crates/turtle/src/command/client/search/engines/db.rs)0
-rw-r--r--crates/client/src/command/client/search/engines/skim.rs (renamed from crates/turtle/src/command/client/search/engines/skim.rs)0
-rw-r--r--crates/client/src/command/client/search/history_list.rs (renamed from crates/turtle/src/command/client/search/history_list.rs)0
-rw-r--r--crates/client/src/command/client/search/inspector.rs (renamed from crates/turtle/src/command/client/search/inspector.rs)0
-rw-r--r--crates/client/src/command/client/search/interactive.rs (renamed from crates/turtle/src/command/client/search/interactive.rs)0
-rw-r--r--crates/client/src/command/client/search/keybindings/actions.rs (renamed from crates/turtle/src/command/client/search/keybindings/actions.rs)0
-rw-r--r--crates/client/src/command/client/search/keybindings/conditions.rs (renamed from crates/turtle/src/command/client/search/keybindings/conditions.rs)0
-rw-r--r--crates/client/src/command/client/search/keybindings/defaults.rs (renamed from crates/turtle/src/command/client/search/keybindings/defaults.rs)0
-rw-r--r--crates/client/src/command/client/search/keybindings/key.rs (renamed from crates/turtle/src/command/client/search/keybindings/key.rs)0
-rw-r--r--crates/client/src/command/client/search/keybindings/keymap.rs (renamed from crates/turtle/src/command/client/search/keybindings/keymap.rs)0
-rw-r--r--crates/client/src/command/client/search/keybindings/mod.rs (renamed from crates/turtle/src/command/client/search/keybindings/mod.rs)0
-rw-r--r--crates/client/src/command/client/server.rs (renamed from crates/turtle/src/command/client/server.rs)0
-rw-r--r--crates/client/src/command/client/stats.rs (renamed from crates/turtle/src/command/client/stats.rs)0
-rw-r--r--crates/client/src/command/client/store.rs (renamed from crates/turtle/src/command/client/store.rs)0
-rw-r--r--crates/client/src/command/client/store/pull.rs (renamed from crates/turtle/src/command/client/store/pull.rs)0
-rw-r--r--crates/client/src/command/client/store/purge.rs (renamed from crates/turtle/src/command/client/store/purge.rs)0
-rw-r--r--crates/client/src/command/client/store/push.rs (renamed from crates/turtle/src/command/client/store/push.rs)0
-rw-r--r--crates/client/src/command/client/store/rebuild.rs (renamed from crates/turtle/src/command/client/store/rebuild.rs)0
-rw-r--r--crates/client/src/command/client/store/rekey.rs (renamed from crates/turtle/src/command/client/store/rekey.rs)0
-rw-r--r--crates/client/src/command/client/store/verify.rs (renamed from crates/turtle/src/command/client/store/verify.rs)0
-rw-r--r--crates/client/src/command/client/sync.rs (renamed from crates/turtle/src/command/client/sync.rs)0
-rw-r--r--crates/client/src/command/client/sync/status.rs (renamed from crates/turtle/src/command/client/sync/status.rs)0
-rw-r--r--crates/client/src/command/client/wrapped.rs (renamed from crates/turtle/src/command/client/wrapped.rs)0
-rw-r--r--crates/client/src/command/contributors.rs (renamed from crates/turtle/src/command/contributors.rs)0
-rw-r--r--crates/client/src/command/gen_completions.rs (renamed from crates/turtle/src/command/gen_completions.rs)0
-rw-r--r--crates/client/src/command/mod.rs (renamed from crates/turtle/src/command/mod.rs)0
-rw-r--r--crates/client/src/lib.rs4
-rw-r--r--crates/client/src/main.rs (renamed from crates/turtle/src/main.rs)0
-rw-r--r--crates/client/src/print_error.rs (renamed from crates/turtle/src/print_error.rs)0
-rw-r--r--crates/client/src/shell/.gitattributes (renamed from crates/turtle/src/shell/.gitattributes)0
-rw-r--r--crates/client/src/shell/atuin.bash (renamed from crates/turtle/src/shell/atuin.bash)0
-rw-r--r--crates/client/src/shell/atuin.fish (renamed from crates/turtle/src/shell/atuin.fish)0
-rw-r--r--crates/client/src/shell/atuin.nu (renamed from crates/turtle/src/shell/atuin.nu)0
-rw-r--r--crates/client/src/shell/atuin.ps1 (renamed from crates/turtle/src/shell/atuin.ps1)0
-rw-r--r--crates/client/src/shell/atuin.xsh (renamed from crates/turtle/src/shell/atuin.xsh)0
-rw-r--r--crates/client/src/shell/atuin.zsh (renamed from crates/turtle/src/shell/atuin.zsh)0
-rw-r--r--crates/client/src/sync.rs (renamed from crates/turtle/src/sync.rs)0
-rw-r--r--crates/daemon/Cargo.toml103
-rw-r--r--crates/daemon/build.rs48
-rw-r--r--crates/daemon/db/client-meta-migrations/20260203030924_create_meta.sql (renamed from crates/turtle/db/client-meta-migrations/20260203030924_create_meta.sql)0
-rw-r--r--crates/daemon/db/client-migrations/20210422143411_create_history.sql (renamed from crates/turtle/db/client-migrations/20210422143411_create_history.sql)0
-rw-r--r--crates/daemon/db/client-migrations/20220505083406_create-events.sql (renamed from crates/turtle/db/client-migrations/20220505083406_create-events.sql)0
-rw-r--r--crates/daemon/db/client-migrations/20220806155627_interactive_search_index.sql (renamed from crates/turtle/db/client-migrations/20220806155627_interactive_search_index.sql)0
-rw-r--r--crates/daemon/db/client-migrations/20230315220114_drop-events.sql (renamed from crates/turtle/db/client-migrations/20230315220114_drop-events.sql)0
-rw-r--r--crates/daemon/db/client-migrations/20230319185725_deleted_at.sql (renamed from crates/turtle/db/client-migrations/20230319185725_deleted_at.sql)0
-rw-r--r--crates/daemon/db/client-migrations/20260224000100_history_author_intent.sql (renamed from crates/turtle/db/client-migrations/20260224000100_history_author_intent.sql)0
-rw-r--r--crates/daemon/db/client-record-migrations/20230531212437_create-records.sql (renamed from crates/turtle/db/client-record-migrations/20230531212437_create-records.sql)0
-rw-r--r--crates/daemon/db/client-record-migrations/20231127090831_create-store.sql (renamed from crates/turtle/db/client-record-migrations/20231127090831_create-store.sql)0
-rw-r--r--crates/daemon/proto/control.proto (renamed from crates/turtle/proto/control.proto)0
-rw-r--r--crates/daemon/proto/history.proto (renamed from crates/turtle/proto/history.proto)0
-rw-r--r--crates/daemon/proto/search.proto (renamed from crates/turtle/proto/search.proto)0
-rw-r--r--crates/daemon/proto/semantic.proto (renamed from crates/turtle/proto/semantic.proto)0
-rw-r--r--crates/daemon/src/client.rs (renamed from crates/turtle/src/atuin_daemon/client.rs)0
-rw-r--r--crates/daemon/src/components/history.rs (renamed from crates/turtle/src/atuin_daemon/components/history.rs)0
-rw-r--r--crates/daemon/src/components/mod.rs (renamed from crates/turtle/src/atuin_daemon/components/mod.rs)0
-rw-r--r--crates/daemon/src/components/search.rs (renamed from crates/turtle/src/atuin_daemon/components/search.rs)0
-rw-r--r--crates/daemon/src/components/semantic.rs (renamed from crates/turtle/src/atuin_daemon/components/semantic.rs)0
-rw-r--r--crates/daemon/src/components/sync.rs (renamed from crates/turtle/src/atuin_daemon/components/sync.rs)0
-rw-r--r--crates/daemon/src/control/mod.rs (renamed from crates/turtle/src/atuin_daemon/control/mod.rs)0
-rw-r--r--crates/daemon/src/daemon.rs (renamed from crates/turtle/src/atuin_daemon/daemon.rs)0
-rw-r--r--crates/daemon/src/events.rs (renamed from crates/turtle/src/atuin_daemon/events.rs)0
-rw-r--r--crates/daemon/src/generated.rs (renamed from crates/turtle/src/atuin_daemon/generated.rs)0
-rw-r--r--crates/daemon/src/lib.rs (renamed from crates/turtle/src/atuin_daemon/mod.rs)0
-rw-r--r--crates/daemon/src/search/mod.rs (renamed from crates/turtle/src/atuin_daemon/search/mod.rs)0
-rw-r--r--crates/daemon/src/server.rs (renamed from crates/turtle/src/atuin_daemon/server.rs)0
-rw-r--r--crates/server/Cargo.toml103
-rw-r--r--crates/server/db/server-pg-migrations/20210425153745_create_history.sql (renamed from crates/turtle/db/server-pg-migrations/20210425153745_create_history.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20210425153757_create_users.sql (renamed from crates/turtle/db/server-pg-migrations/20210425153757_create_users.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20210425153800_create_sessions.sql (renamed from crates/turtle/db/server-pg-migrations/20210425153800_create_sessions.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20220419082412_add_count_trigger.sql (renamed from crates/turtle/db/server-pg-migrations/20220419082412_add_count_trigger.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20220421073605_fix_count_trigger_delete.sql (renamed from crates/turtle/db/server-pg-migrations/20220421073605_fix_count_trigger_delete.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20220421174016_larger-commands.sql (renamed from crates/turtle/db/server-pg-migrations/20220421174016_larger-commands.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20220426172813_user-created-at.sql (renamed from crates/turtle/db/server-pg-migrations/20220426172813_user-created-at.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20220505082442_create-events.sql (renamed from crates/turtle/db/server-pg-migrations/20220505082442_create-events.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20220610074049_history-length.sql (renamed from crates/turtle/db/server-pg-migrations/20220610074049_history-length.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20230315220537_drop-events.sql (renamed from crates/turtle/db/server-pg-migrations/20230315220537_drop-events.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20230315224203_create-deleted.sql (renamed from crates/turtle/db/server-pg-migrations/20230315224203_create-deleted.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20230515221038_trigger-delete-only.sql (renamed from crates/turtle/db/server-pg-migrations/20230515221038_trigger-delete-only.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20230623070418_records.sql (renamed from crates/turtle/db/server-pg-migrations/20230623070418_records.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20231202170508_create-store.sql (renamed from crates/turtle/db/server-pg-migrations/20231202170508_create-store.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20231203124112_create-store-idx.sql (renamed from crates/turtle/db/server-pg-migrations/20231203124112_create-store-idx.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20240108124837_drop-some-defaults.sql (renamed from crates/turtle/db/server-pg-migrations/20240108124837_drop-some-defaults.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20240614104159_idx-cache.sql (renamed from crates/turtle/db/server-pg-migrations/20240614104159_idx-cache.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20240621110731_user-verified.sql (renamed from crates/turtle/db/server-pg-migrations/20240621110731_user-verified.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20240702094825_idx_cache_index.sql (renamed from crates/turtle/db/server-pg-migrations/20240702094825_idx_cache_index.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20260127000000_remove-email-verification.sql (renamed from crates/turtle/db/server-pg-migrations/20260127000000_remove-email-verification.sql)0
-rw-r--r--crates/server/db/server-pg-migrations/20260611222503_make_user-id_an_uuid.sql (renamed from crates/turtle/db/server-pg-migrations/20260611222503_make_user-id_an_uuid.sql)0
-rw-r--r--crates/server/src/database/db/mod.rs (renamed from crates/turtle/src/atuin_server/database/db/mod.rs)0
-rw-r--r--crates/server/src/database/db/wrappers.rs (renamed from crates/turtle/src/atuin_server/database/db/wrappers.rs)0
-rw-r--r--crates/server/src/database/mod.rs (renamed from crates/turtle/src/atuin_server/database/mod.rs)0
-rw-r--r--crates/server/src/database/models.rs (renamed from crates/turtle/src/atuin_server/database/models.rs)0
-rw-r--r--crates/server/src/handlers/mod.rs (renamed from crates/turtle/src/atuin_server/handlers/mod.rs)2
-rw-r--r--crates/server/src/handlers/v0/mod.rs (renamed from crates/turtle/src/atuin_server/handlers/v0/mod.rs)0
-rw-r--r--crates/server/src/handlers/v0/record.rs (renamed from crates/turtle/src/atuin_server/handlers/v0/record.rs)2
-rw-r--r--crates/server/src/lib.rs (renamed from crates/turtle/src/atuin_server/mod.rs)0
-rw-r--r--crates/server/src/metrics.rs (renamed from crates/turtle/src/atuin_server/metrics.rs)0
-rw-r--r--crates/server/src/router.rs (renamed from crates/turtle/src/atuin_server/router.rs)2
-rw-r--r--crates/server/src/settings.rs (renamed from crates/turtle/src/atuin_server/settings.rs)46
-rw-r--r--crates/turtle/Cargo.toml6
-rw-r--r--crates/turtle/src/lib.rs0
155 files changed, 384 insertions, 35 deletions
diff --git a/crates/client/Cargo.toml b/crates/client/Cargo.toml
new file mode 100644
index 00000000..26ee6771
--- /dev/null
+++ b/crates/client/Cargo.toml
@@ -0,0 +1,103 @@
+[package]
+name = "atuin"
+edition = "2024"
+description = "atuin - magical shell history"
+readme = "./README.md"
+
+rust-version = { workspace = true }
+version = { workspace = true }
+authors = { workspace = true }
+license = { workspace = true }
+homepage = { workspace = true }
+repository = { workspace = true }
+
+[dependencies]
+async-trait = "0.1.58"
+atuin-nucleo-matcher = { workspace = true }
+atuin-nucleo = { workspace = true }
+axum = "0.8"
+base64 = "0.22"
+clap = { version = "4.5.7", features = ["derive"] }
+clap_complete = "4.5.8"
+clap_complete_nushell = "4.5.4"
+colored = "2.0.4"
+config = { version = "0.15.8", default-features = false, features = ["toml"] }
+crossterm = {version = "0.29.0", features = ["use-dev-tty", "serde"] }
+crypto_secretbox = "0.1.1"
+dashmap = "6.1.0"
+directories = "6.0.0"
+eyre = "0.6"
+fs-err = "3.1"
+fs4 = "0.13.1"
+fuzzy-matcher = "0.3.7"
+hyper-util = "0.1"
+indicatif = "0.18.0"
+interim = { version = "0.2.0", features = ["time_0_3"] }
+itertools = "0.14.0"
+lasso = { version = "0.7", features = ["multi-threaded"] }
+log = "0.4"
+metrics = "0.24"
+metrics-exporter-prometheus = { version = "0.18", default-features = false }
+minspan = "0.1.5"
+norm = { version = "0.1.1", features = ["fzf-v2"] }
+notify = "7"
+prost = "0.14"
+rand = { version = "0.8.5", features = ["std"] }
+ratatui = "0.30.0"
+regex = "1.10.5"
+reqwest = { version = "0.13", features = ["json", "rustls-no-provider", "stream"], default-features = false }
+rmp = { version = "0.8.14" }
+runtime-format = "0.1.3"
+rustix = { version = "1.1.4", features = ["process", "fs"] }
+rustls = { version = "0.23", default-features = false, features = [ "ring", "std", "tls12", ] }
+rusty_paserk = { version = "0.5.0", default-features = false, features = [ "v4", "serde", ] }
+rusty_paseto = { version = "0.8.0", default-features = false }
+semver = "1.0.20"
+serde = { version = "1.0.202", features = ["derive"] }
+serde_json = "1.0.119"
+serde_regex = "1.1.0"
+serde_with = "3.8.1"
+shellexpand = "3"
+sql-builder = "3"
+sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "time", "postgres", "uuid", "sqlite", "regexp"] }
+thiserror = "2"
+time = { version = "0.3.47", features = [ "serde-human-readable", "macros", "local-offset", "macros", "formatting", "parsing"] }
+tokio = { version = "1", features = ["full"] }
+tokio-stream = { version = "0.1.14", features = ["net"] }
+toml_edit = "0.25.4"
+tonic = "0.14"
+tonic-prost = "0.14"
+tower = "0.5"
+tower-http = { version = "0.6", features = ["trace"] }
+tracing = "0.1"
+tracing-appender = "0.2"
+tracing-subscriber = { version = "0.3", features = ["ansi", "fmt", "registry", "env-filter", "json"] }
+typed-builder = "0.18.2"
+unicode-segmentation = "1.11.0"
+unicode-width = "0.2"
+url = "2.5.2"
+uuid = { version = "1.9", features = ["v4", "v7", "serde"] }
+vt100 = "0.16"
+whoami = "2.1.0"
+
+[target.'cfg(target_os = "linux")'.dependencies]
+arboard = { version = "3.4", default-features = false, features = [ "wayland-data-control", ] }
+listenfd = "1.0.1"
+
+[target.'cfg(unix)'.dependencies]
+daemonize = "0.5.0"
+portable-pty = "0.9"
+signal-hook = "0.3"
+
+[dev-dependencies]
+tokio = { version = "1", features = ["full"] }
+
+[build-dependencies]
+protox = "0.9"
+tonic-prost-build = "0.14"
+
+[package.metadata.docs.rs]
+all-features = true
+
+[lints]
+workspace = true
diff --git a/crates/turtle/build.rs b/crates/client/build.rs
index ad4bc3c8..ad4bc3c8 100644
--- a/crates/turtle/build.rs
+++ b/crates/client/build.rs
diff --git a/crates/turtle/src/atuin_client/api_client.rs b/crates/client/src/atuin_client/api_client.rs
index bd5bf59e..bd5bf59e 100644
--- a/crates/turtle/src/atuin_client/api_client.rs
+++ b/crates/client/src/atuin_client/api_client.rs
diff --git a/crates/turtle/src/atuin_client/database.rs b/crates/client/src/atuin_client/database.rs
index a9eb2058..a9eb2058 100644
--- a/crates/turtle/src/atuin_client/database.rs
+++ b/crates/client/src/atuin_client/database.rs
diff --git a/crates/turtle/src/atuin_client/encryption.rs b/crates/client/src/atuin_client/encryption.rs
index f1c921cb..f1c921cb 100644
--- a/crates/turtle/src/atuin_client/encryption.rs
+++ b/crates/client/src/atuin_client/encryption.rs
diff --git a/crates/turtle/src/atuin_client/history.rs b/crates/client/src/atuin_client/history.rs
index c38d8ccc..c38d8ccc 100644
--- a/crates/turtle/src/atuin_client/history.rs
+++ b/crates/client/src/atuin_client/history.rs
diff --git a/crates/turtle/src/atuin_client/history/builder.rs b/crates/client/src/atuin_client/history/builder.rs
index daa4ef49..daa4ef49 100644
--- a/crates/turtle/src/atuin_client/history/builder.rs
+++ b/crates/client/src/atuin_client/history/builder.rs
diff --git a/crates/turtle/src/atuin_client/history/store.rs b/crates/client/src/atuin_client/history/store.rs
index 9c7771cc..9c7771cc 100644
--- a/crates/turtle/src/atuin_client/history/store.rs
+++ b/crates/client/src/atuin_client/history/store.rs
diff --git a/crates/turtle/src/atuin_client/meta.rs b/crates/client/src/atuin_client/meta.rs
index 079c9926..079c9926 100644
--- a/crates/turtle/src/atuin_client/meta.rs
+++ b/crates/client/src/atuin_client/meta.rs
diff --git a/crates/turtle/src/atuin_client/mod.rs b/crates/client/src/atuin_client/mod.rs
index 851dfbdb..851dfbdb 100644
--- a/crates/turtle/src/atuin_client/mod.rs
+++ b/crates/client/src/atuin_client/mod.rs
diff --git a/crates/turtle/src/atuin_client/ordering.rs b/crates/client/src/atuin_client/ordering.rs
index 84001f52..84001f52 100644
--- a/crates/turtle/src/atuin_client/ordering.rs
+++ b/crates/client/src/atuin_client/ordering.rs
diff --git a/crates/turtle/src/atuin_client/record/encryption.rs b/crates/client/src/atuin_client/record/encryption.rs
index d8587cf6..d8587cf6 100644
--- a/crates/turtle/src/atuin_client/record/encryption.rs
+++ b/crates/client/src/atuin_client/record/encryption.rs
diff --git a/crates/turtle/src/atuin_client/record/mod.rs b/crates/client/src/atuin_client/record/mod.rs
index 4e5774ea..4e5774ea 100644
--- a/crates/turtle/src/atuin_client/record/mod.rs
+++ b/crates/client/src/atuin_client/record/mod.rs
diff --git a/crates/turtle/src/atuin_client/record/sqlite_store.rs b/crates/client/src/atuin_client/record/sqlite_store.rs
index 18f5c869..18f5c869 100644
--- a/crates/turtle/src/atuin_client/record/sqlite_store.rs
+++ b/crates/client/src/atuin_client/record/sqlite_store.rs
diff --git a/crates/turtle/src/atuin_client/record/sync.rs b/crates/client/src/atuin_client/record/sync.rs
index da05533c..da05533c 100644
--- a/crates/turtle/src/atuin_client/record/sync.rs
+++ b/crates/client/src/atuin_client/record/sync.rs
diff --git a/crates/turtle/src/atuin_client/secrets.rs b/crates/client/src/atuin_client/secrets.rs
index 74d47ea6..74d47ea6 100644
--- a/crates/turtle/src/atuin_client/secrets.rs
+++ b/crates/client/src/atuin_client/secrets.rs
diff --git a/crates/turtle/src/atuin_client/settings.rs b/crates/client/src/atuin_client/settings.rs
index 9e14c4c8..9e14c4c8 100644
--- a/crates/turtle/src/atuin_client/settings.rs
+++ b/crates/client/src/atuin_client/settings.rs
diff --git a/crates/turtle/src/atuin_client/settings/meta.rs b/crates/client/src/atuin_client/settings/meta.rs
index cc5afcf7..cc5afcf7 100644
--- a/crates/turtle/src/atuin_client/settings/meta.rs
+++ b/crates/client/src/atuin_client/settings/meta.rs
diff --git a/crates/turtle/src/atuin_client/settings/watcher.rs b/crates/client/src/atuin_client/settings/watcher.rs
index 5eec3692..5eec3692 100644
--- a/crates/turtle/src/atuin_client/settings/watcher.rs
+++ b/crates/client/src/atuin_client/settings/watcher.rs
diff --git a/crates/turtle/src/atuin_client/theme.rs b/crates/client/src/atuin_client/theme.rs
index ec0538e9..ec0538e9 100644
--- a/crates/turtle/src/atuin_client/theme.rs
+++ b/crates/client/src/atuin_client/theme.rs
diff --git a/crates/turtle/src/atuin_client/utils.rs b/crates/client/src/atuin_client/utils.rs
index 989f9fc1..989f9fc1 100644
--- a/crates/turtle/src/atuin_client/utils.rs
+++ b/crates/client/src/atuin_client/utils.rs
diff --git a/crates/turtle/src/atuin_common/api.rs b/crates/client/src/atuin_common/api.rs
index 0868943d..0868943d 100644
--- a/crates/turtle/src/atuin_common/api.rs
+++ b/crates/client/src/atuin_common/api.rs
diff --git a/crates/turtle/src/atuin_common/mod.rs b/crates/client/src/atuin_common/mod.rs
index 635c9fc3..635c9fc3 100644
--- a/crates/turtle/src/atuin_common/mod.rs
+++ b/crates/client/src/atuin_common/mod.rs
diff --git a/crates/turtle/src/atuin_common/record.rs b/crates/client/src/atuin_common/record.rs
index f8f9f8a7..f8f9f8a7 100644
--- a/crates/turtle/src/atuin_common/record.rs
+++ b/crates/client/src/atuin_common/record.rs
diff --git a/crates/turtle/src/atuin_common/shell.rs b/crates/client/src/atuin_common/shell.rs
index 880ff00f..880ff00f 100644
--- a/crates/turtle/src/atuin_common/shell.rs
+++ b/crates/client/src/atuin_common/shell.rs
diff --git a/crates/turtle/src/atuin_common/tls.rs b/crates/client/src/atuin_common/tls.rs
index 3736f878..3736f878 100644
--- a/crates/turtle/src/atuin_common/tls.rs
+++ b/crates/client/src/atuin_common/tls.rs
diff --git a/crates/turtle/src/atuin_common/utils.rs b/crates/client/src/atuin_common/utils.rs
index dbe9dfbc..dbe9dfbc 100644
--- a/crates/turtle/src/atuin_common/utils.rs
+++ b/crates/client/src/atuin_common/utils.rs
diff --git a/crates/turtle/src/atuin_history/mod.rs b/crates/client/src/atuin_history/mod.rs
index 41336a14..41336a14 100644
--- a/crates/turtle/src/atuin_history/mod.rs
+++ b/crates/client/src/atuin_history/mod.rs
diff --git a/crates/turtle/src/atuin_history/sort.rs b/crates/client/src/atuin_history/sort.rs
index 3143fa68..3143fa68 100644
--- a/crates/turtle/src/atuin_history/sort.rs
+++ b/crates/client/src/atuin_history/sort.rs
diff --git a/crates/turtle/src/atuin_history/stats.rs b/crates/client/src/atuin_history/stats.rs
index c53dafb2..c53dafb2 100644
--- a/crates/turtle/src/atuin_history/stats.rs
+++ b/crates/client/src/atuin_history/stats.rs
diff --git a/crates/turtle/src/atuin_pty_proxy/capture.rs b/crates/client/src/atuin_pty_proxy/capture.rs
index 55bc1788..55bc1788 100644
--- a/crates/turtle/src/atuin_pty_proxy/capture.rs
+++ b/crates/client/src/atuin_pty_proxy/capture.rs
diff --git a/crates/turtle/src/atuin_pty_proxy/debug.rs b/crates/client/src/atuin_pty_proxy/debug.rs
index c2a1691c..c2a1691c 100644
--- a/crates/turtle/src/atuin_pty_proxy/debug.rs
+++ b/crates/client/src/atuin_pty_proxy/debug.rs
diff --git a/crates/turtle/src/atuin_pty_proxy/mod.rs b/crates/client/src/atuin_pty_proxy/mod.rs
index e1d01c83..e1d01c83 100644
--- a/crates/turtle/src/atuin_pty_proxy/mod.rs
+++ b/crates/client/src/atuin_pty_proxy/mod.rs
diff --git a/crates/turtle/src/atuin_pty_proxy/osc133.rs b/crates/client/src/atuin_pty_proxy/osc133.rs
index f2a796f1..f2a796f1 100644
--- a/crates/turtle/src/atuin_pty_proxy/osc133.rs
+++ b/crates/client/src/atuin_pty_proxy/osc133.rs
diff --git a/crates/turtle/src/atuin_pty_proxy/pty_proxy.rs b/crates/client/src/atuin_pty_proxy/pty_proxy.rs
index ef4b0c37..ef4b0c37 100644
--- a/crates/turtle/src/atuin_pty_proxy/pty_proxy.rs
+++ b/crates/client/src/atuin_pty_proxy/pty_proxy.rs
diff --git a/crates/turtle/src/atuin_pty_proxy/runtime.rs b/crates/client/src/atuin_pty_proxy/runtime.rs
index 69b3a075..69b3a075 100644
--- a/crates/turtle/src/atuin_pty_proxy/runtime.rs
+++ b/crates/client/src/atuin_pty_proxy/runtime.rs
diff --git a/crates/turtle/src/atuin_pty_proxy/screen.rs b/crates/client/src/atuin_pty_proxy/screen.rs
index 58ebd2eb..58ebd2eb 100644
--- a/crates/turtle/src/atuin_pty_proxy/screen.rs
+++ b/crates/client/src/atuin_pty_proxy/screen.rs
diff --git a/crates/turtle/src/command/CONTRIBUTORS b/crates/client/src/command/CONTRIBUTORS
index 1ca4115a..1ca4115a 120000
--- a/crates/turtle/src/command/CONTRIBUTORS
+++ b/crates/client/src/command/CONTRIBUTORS
diff --git a/crates/turtle/src/command/client.rs b/crates/client/src/command/client.rs
index 6c0e70e8..6c0e70e8 100644
--- a/crates/turtle/src/command/client.rs
+++ b/crates/client/src/command/client.rs
diff --git a/crates/turtle/src/command/client/config.rs b/crates/client/src/command/client/config.rs
index 73d1c35e..73d1c35e 100644
--- a/crates/turtle/src/command/client/config.rs
+++ b/crates/client/src/command/client/config.rs
diff --git a/crates/turtle/src/command/client/daemon.rs b/crates/client/src/command/client/daemon.rs
index 39aa1b1e..39aa1b1e 100644
--- a/crates/turtle/src/command/client/daemon.rs
+++ b/crates/client/src/command/client/daemon.rs
diff --git a/crates/turtle/src/command/client/default_config.rs b/crates/client/src/command/client/default_config.rs
index 4b03c909..4b03c909 100644
--- a/crates/turtle/src/command/client/default_config.rs
+++ b/crates/client/src/command/client/default_config.rs
diff --git a/crates/turtle/src/command/client/history.rs b/crates/client/src/command/client/history.rs
index 9f383a08..9f383a08 100644
--- a/crates/turtle/src/command/client/history.rs
+++ b/crates/client/src/command/client/history.rs
diff --git a/crates/turtle/src/command/client/info.rs b/crates/client/src/command/client/info.rs
index 49c92193..49c92193 100644
--- a/crates/turtle/src/command/client/info.rs
+++ b/crates/client/src/command/client/info.rs
diff --git a/crates/turtle/src/command/client/init.rs b/crates/client/src/command/client/init.rs
index 0db9b143..0db9b143 100644
--- a/crates/turtle/src/command/client/init.rs
+++ b/crates/client/src/command/client/init.rs
diff --git a/crates/turtle/src/command/client/init/bash.rs b/crates/client/src/command/client/init/bash.rs
index c16663e2..c16663e2 100644
--- a/crates/turtle/src/command/client/init/bash.rs
+++ b/crates/client/src/command/client/init/bash.rs
diff --git a/crates/turtle/src/command/client/init/fish.rs b/crates/client/src/command/client/init/fish.rs
index 0a992b9c..0a992b9c 100644
--- a/crates/turtle/src/command/client/init/fish.rs
+++ b/crates/client/src/command/client/init/fish.rs
diff --git a/crates/turtle/src/command/client/init/powershell.rs b/crates/client/src/command/client/init/powershell.rs
index 94d89c67..94d89c67 100644
--- a/crates/turtle/src/command/client/init/powershell.rs
+++ b/crates/client/src/command/client/init/powershell.rs
diff --git a/crates/turtle/src/command/client/init/xonsh.rs b/crates/client/src/command/client/init/xonsh.rs
index 25f867f7..25f867f7 100644
--- a/crates/turtle/src/command/client/init/xonsh.rs
+++ b/crates/client/src/command/client/init/xonsh.rs
diff --git a/crates/turtle/src/command/client/init/zsh.rs b/crates/client/src/command/client/init/zsh.rs
index 96a817d0..96a817d0 100644
--- a/crates/turtle/src/command/client/init/zsh.rs
+++ b/crates/client/src/command/client/init/zsh.rs
diff --git a/crates/turtle/src/command/client/search.rs b/crates/client/src/command/client/search.rs
index 359864cb..359864cb 100644
--- a/crates/turtle/src/command/client/search.rs
+++ b/crates/client/src/command/client/search.rs
diff --git a/crates/turtle/src/command/client/search/cursor.rs b/crates/client/src/command/client/search/cursor.rs
index e13e52b3..e13e52b3 100644
--- a/crates/turtle/src/command/client/search/cursor.rs
+++ b/crates/client/src/command/client/search/cursor.rs
diff --git a/crates/turtle/src/command/client/search/duration.rs b/crates/client/src/command/client/search/duration.rs
index 0d70353a..0d70353a 100644
--- a/crates/turtle/src/command/client/search/duration.rs
+++ b/crates/client/src/command/client/search/duration.rs
diff --git a/crates/turtle/src/command/client/search/engines.rs b/crates/client/src/command/client/search/engines.rs
index 9fbff278..9fbff278 100644
--- a/crates/turtle/src/command/client/search/engines.rs
+++ b/crates/client/src/command/client/search/engines.rs
diff --git a/crates/turtle/src/command/client/search/engines/daemon.rs b/crates/client/src/command/client/search/engines/daemon.rs
index ee92ebaf..ee92ebaf 100644
--- a/crates/turtle/src/command/client/search/engines/daemon.rs
+++ b/crates/client/src/command/client/search/engines/daemon.rs
diff --git a/crates/turtle/src/command/client/search/engines/db.rs b/crates/client/src/command/client/search/engines/db.rs
index 0eb86878..0eb86878 100644
--- a/crates/turtle/src/command/client/search/engines/db.rs
+++ b/crates/client/src/command/client/search/engines/db.rs
diff --git a/crates/turtle/src/command/client/search/engines/skim.rs b/crates/client/src/command/client/search/engines/skim.rs
index e090e40d..e090e40d 100644
--- a/crates/turtle/src/command/client/search/engines/skim.rs
+++ b/crates/client/src/command/client/search/engines/skim.rs
diff --git a/crates/turtle/src/command/client/search/history_list.rs b/crates/client/src/command/client/search/history_list.rs
index e46f37b7..e46f37b7 100644
--- a/crates/turtle/src/command/client/search/history_list.rs
+++ b/crates/client/src/command/client/search/history_list.rs
diff --git a/crates/turtle/src/command/client/search/inspector.rs b/crates/client/src/command/client/search/inspector.rs
index 186dcd3a..186dcd3a 100644
--- a/crates/turtle/src/command/client/search/inspector.rs
+++ b/crates/client/src/command/client/search/inspector.rs
diff --git a/crates/turtle/src/command/client/search/interactive.rs b/crates/client/src/command/client/search/interactive.rs
index b8cf53db..b8cf53db 100644
--- a/crates/turtle/src/command/client/search/interactive.rs
+++ b/crates/client/src/command/client/search/interactive.rs
diff --git a/crates/turtle/src/command/client/search/keybindings/actions.rs b/crates/client/src/command/client/search/keybindings/actions.rs
index 2842d618..2842d618 100644
--- a/crates/turtle/src/command/client/search/keybindings/actions.rs
+++ b/crates/client/src/command/client/search/keybindings/actions.rs
diff --git a/crates/turtle/src/command/client/search/keybindings/conditions.rs b/crates/client/src/command/client/search/keybindings/conditions.rs
index fd993f2b..fd993f2b 100644
--- a/crates/turtle/src/command/client/search/keybindings/conditions.rs
+++ b/crates/client/src/command/client/search/keybindings/conditions.rs
diff --git a/crates/turtle/src/command/client/search/keybindings/defaults.rs b/crates/client/src/command/client/search/keybindings/defaults.rs
index 4d00b475..4d00b475 100644
--- a/crates/turtle/src/command/client/search/keybindings/defaults.rs
+++ b/crates/client/src/command/client/search/keybindings/defaults.rs
diff --git a/crates/turtle/src/command/client/search/keybindings/key.rs b/crates/client/src/command/client/search/keybindings/key.rs
index 5e772238..5e772238 100644
--- a/crates/turtle/src/command/client/search/keybindings/key.rs
+++ b/crates/client/src/command/client/search/keybindings/key.rs
diff --git a/crates/turtle/src/command/client/search/keybindings/keymap.rs b/crates/client/src/command/client/search/keybindings/keymap.rs
index 067d9403..067d9403 100644
--- a/crates/turtle/src/command/client/search/keybindings/keymap.rs
+++ b/crates/client/src/command/client/search/keybindings/keymap.rs
diff --git a/crates/turtle/src/command/client/search/keybindings/mod.rs b/crates/client/src/command/client/search/keybindings/mod.rs
index cdca0406..cdca0406 100644
--- a/crates/turtle/src/command/client/search/keybindings/mod.rs
+++ b/crates/client/src/command/client/search/keybindings/mod.rs
diff --git a/crates/turtle/src/command/client/server.rs b/crates/client/src/command/client/server.rs
index 88b12a7a..88b12a7a 100644
--- a/crates/turtle/src/command/client/server.rs
+++ b/crates/client/src/command/client/server.rs
diff --git a/crates/turtle/src/command/client/stats.rs b/crates/client/src/command/client/stats.rs
index 9ea5e283..9ea5e283 100644
--- a/crates/turtle/src/command/client/stats.rs
+++ b/crates/client/src/command/client/stats.rs
diff --git a/crates/turtle/src/command/client/store.rs b/crates/client/src/command/client/store.rs
index bc57488d..bc57488d 100644
--- a/crates/turtle/src/command/client/store.rs
+++ b/crates/client/src/command/client/store.rs
diff --git a/crates/turtle/src/command/client/store/pull.rs b/crates/client/src/command/client/store/pull.rs
index 3a0865be..3a0865be 100644
--- a/crates/turtle/src/command/client/store/pull.rs
+++ b/crates/client/src/command/client/store/pull.rs
diff --git a/crates/turtle/src/command/client/store/purge.rs b/crates/client/src/command/client/store/purge.rs
index a23f1886..a23f1886 100644
--- a/crates/turtle/src/command/client/store/purge.rs
+++ b/crates/client/src/command/client/store/purge.rs
diff --git a/crates/turtle/src/command/client/store/push.rs b/crates/client/src/command/client/store/push.rs
index 9d66b5b2..9d66b5b2 100644
--- a/crates/turtle/src/command/client/store/push.rs
+++ b/crates/client/src/command/client/store/push.rs
diff --git a/crates/turtle/src/command/client/store/rebuild.rs b/crates/client/src/command/client/store/rebuild.rs
index 6be67cd0..6be67cd0 100644
--- a/crates/turtle/src/command/client/store/rebuild.rs
+++ b/crates/client/src/command/client/store/rebuild.rs
diff --git a/crates/turtle/src/command/client/store/rekey.rs b/crates/client/src/command/client/store/rekey.rs
index 2b379327..2b379327 100644
--- a/crates/turtle/src/command/client/store/rekey.rs
+++ b/crates/client/src/command/client/store/rekey.rs
diff --git a/crates/turtle/src/command/client/store/verify.rs b/crates/client/src/command/client/store/verify.rs
index a39227f9..a39227f9 100644
--- a/crates/turtle/src/command/client/store/verify.rs
+++ b/crates/client/src/command/client/store/verify.rs
diff --git a/crates/turtle/src/command/client/sync.rs b/crates/client/src/command/client/sync.rs
index c29a82fc..c29a82fc 100644
--- a/crates/turtle/src/command/client/sync.rs
+++ b/crates/client/src/command/client/sync.rs
diff --git a/crates/turtle/src/command/client/sync/status.rs b/crates/client/src/command/client/sync/status.rs
index caf3b90f..caf3b90f 100644
--- a/crates/turtle/src/command/client/sync/status.rs
+++ b/crates/client/src/command/client/sync/status.rs
diff --git a/crates/turtle/src/command/client/wrapped.rs b/crates/client/src/command/client/wrapped.rs
index 2ce19bf7..2ce19bf7 100644
--- a/crates/turtle/src/command/client/wrapped.rs
+++ b/crates/client/src/command/client/wrapped.rs
diff --git a/crates/turtle/src/command/contributors.rs b/crates/client/src/command/contributors.rs
index b2a41522..b2a41522 100644
--- a/crates/turtle/src/command/contributors.rs
+++ b/crates/client/src/command/contributors.rs
diff --git a/crates/turtle/src/command/gen_completions.rs b/crates/client/src/command/gen_completions.rs
index 9f13bffc..9f13bffc 100644
--- a/crates/turtle/src/command/gen_completions.rs
+++ b/crates/client/src/command/gen_completions.rs
diff --git a/crates/turtle/src/command/mod.rs b/crates/client/src/command/mod.rs
index 9a648254..9a648254 100644
--- a/crates/turtle/src/command/mod.rs
+++ b/crates/client/src/command/mod.rs
diff --git a/crates/client/src/lib.rs b/crates/client/src/lib.rs
new file mode 100644
index 00000000..82bbc78f
--- /dev/null
+++ b/crates/client/src/lib.rs
@@ -0,0 +1,4 @@
+pub fn test() -> String {
+ dbg!("Hi!");
+ String::new()
+}
diff --git a/crates/turtle/src/main.rs b/crates/client/src/main.rs
index 12858140..12858140 100644
--- a/crates/turtle/src/main.rs
+++ b/crates/client/src/main.rs
diff --git a/crates/turtle/src/print_error.rs b/crates/client/src/print_error.rs
index 0a6303dd..0a6303dd 100644
--- a/crates/turtle/src/print_error.rs
+++ b/crates/client/src/print_error.rs
diff --git a/crates/turtle/src/shell/.gitattributes b/crates/client/src/shell/.gitattributes
index fae8897c..fae8897c 100644
--- a/crates/turtle/src/shell/.gitattributes
+++ b/crates/client/src/shell/.gitattributes
diff --git a/crates/turtle/src/shell/atuin.bash b/crates/client/src/shell/atuin.bash
index 703e8fe2..703e8fe2 100644
--- a/crates/turtle/src/shell/atuin.bash
+++ b/crates/client/src/shell/atuin.bash
diff --git a/crates/turtle/src/shell/atuin.fish b/crates/client/src/shell/atuin.fish
index 2b469383..2b469383 100644
--- a/crates/turtle/src/shell/atuin.fish
+++ b/crates/client/src/shell/atuin.fish
diff --git a/crates/turtle/src/shell/atuin.nu b/crates/client/src/shell/atuin.nu
index d37457e4..d37457e4 100644
--- a/crates/turtle/src/shell/atuin.nu
+++ b/crates/client/src/shell/atuin.nu
diff --git a/crates/turtle/src/shell/atuin.ps1 b/crates/client/src/shell/atuin.ps1
index 431ee2c3..431ee2c3 100644
--- a/crates/turtle/src/shell/atuin.ps1
+++ b/crates/client/src/shell/atuin.ps1
diff --git a/crates/turtle/src/shell/atuin.xsh b/crates/client/src/shell/atuin.xsh
index a0283402..a0283402 100644
--- a/crates/turtle/src/shell/atuin.xsh
+++ b/crates/client/src/shell/atuin.xsh
diff --git a/crates/turtle/src/shell/atuin.zsh b/crates/client/src/shell/atuin.zsh
index 7e7fef27..7e7fef27 100644
--- a/crates/turtle/src/shell/atuin.zsh
+++ b/crates/client/src/shell/atuin.zsh
diff --git a/crates/turtle/src/sync.rs b/crates/client/src/sync.rs
index abe1a201..abe1a201 100644
--- a/crates/turtle/src/sync.rs
+++ b/crates/client/src/sync.rs
diff --git a/crates/daemon/Cargo.toml b/crates/daemon/Cargo.toml
new file mode 100644
index 00000000..509595b0
--- /dev/null
+++ b/crates/daemon/Cargo.toml
@@ -0,0 +1,103 @@
+[package]
+name = "turtle-daemon"
+edition = "2024"
+description = "daemon, that controls the history db"
+readme = "./README.md"
+
+rust-version = { workspace = true }
+version = { workspace = true }
+authors = { workspace = true }
+license = { workspace = true }
+homepage = { workspace = true }
+repository = { workspace = true }
+
+[dependencies]
+async-trait = "0.1.58"
+atuin-nucleo-matcher = { workspace = true }
+atuin-nucleo = { workspace = true }
+axum = "0.8"
+base64 = "0.22"
+clap = { version = "4.5.7", features = ["derive"] }
+clap_complete = "4.5.8"
+clap_complete_nushell = "4.5.4"
+colored = "2.0.4"
+config = { version = "0.15.8", default-features = false, features = ["toml"] }
+crossterm = {version = "0.29.0", features = ["use-dev-tty", "serde"] }
+crypto_secretbox = "0.1.1"
+dashmap = "6.1.0"
+directories = "6.0.0"
+eyre = "0.6"
+fs-err = "3.1"
+fs4 = "0.13.1"
+fuzzy-matcher = "0.3.7"
+hyper-util = "0.1"
+indicatif = "0.18.0"
+interim = { version = "0.2.0", features = ["time_0_3"] }
+itertools = "0.14.0"
+lasso = { version = "0.7", features = ["multi-threaded"] }
+log = "0.4"
+metrics = "0.24"
+metrics-exporter-prometheus = { version = "0.18", default-features = false }
+minspan = "0.1.5"
+norm = { version = "0.1.1", features = ["fzf-v2"] }
+notify = "7"
+prost = "0.14"
+rand = { version = "0.8.5", features = ["std"] }
+ratatui = "0.30.0"
+regex = "1.10.5"
+reqwest = { version = "0.13", features = ["json", "rustls-no-provider", "stream"], default-features = false }
+rmp = { version = "0.8.14" }
+runtime-format = "0.1.3"
+rustix = { version = "1.1.4", features = ["process", "fs"] }
+rustls = { version = "0.23", default-features = false, features = [ "ring", "std", "tls12", ] }
+rusty_paserk = { version = "0.5.0", default-features = false, features = [ "v4", "serde", ] }
+rusty_paseto = { version = "0.8.0", default-features = false }
+semver = "1.0.20"
+serde = { version = "1.0.202", features = ["derive"] }
+serde_json = "1.0.119"
+serde_regex = "1.1.0"
+serde_with = "3.8.1"
+shellexpand = "3"
+sql-builder = "3"
+sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "time", "postgres", "uuid", "sqlite", "regexp"] }
+thiserror = "2"
+time = { version = "0.3.47", features = [ "serde-human-readable", "macros", "local-offset", "macros", "formatting", "parsing"] }
+tokio = { version = "1", features = ["full"] }
+tokio-stream = { version = "0.1.14", features = ["net"] }
+toml_edit = "0.25.4"
+tonic = "0.14"
+tonic-prost = "0.14"
+tower = "0.5"
+tower-http = { version = "0.6", features = ["trace"] }
+tracing = "0.1"
+tracing-appender = "0.2"
+tracing-subscriber = { version = "0.3", features = ["ansi", "fmt", "registry", "env-filter", "json"] }
+typed-builder = "0.18.2"
+unicode-segmentation = "1.11.0"
+unicode-width = "0.2"
+url = "2.5.2"
+uuid = { version = "1.9", features = ["v4", "v7", "serde"] }
+vt100 = "0.16"
+whoami = "2.1.0"
+
+[target.'cfg(target_os = "linux")'.dependencies]
+arboard = { version = "3.4", default-features = false, features = [ "wayland-data-control", ] }
+listenfd = "1.0.1"
+
+[target.'cfg(unix)'.dependencies]
+daemonize = "0.5.0"
+portable-pty = "0.9"
+signal-hook = "0.3"
+
+[dev-dependencies]
+tokio = { version = "1", features = ["full"] }
+
+[build-dependencies]
+protox = "0.9"
+tonic-prost-build = "0.14"
+
+[package.metadata.docs.rs]
+all-features = true
+
+[lints]
+workspace = true
diff --git a/crates/daemon/build.rs b/crates/daemon/build.rs
new file mode 100644
index 00000000..ad4bc3c8
--- /dev/null
+++ b/crates/daemon/build.rs
@@ -0,0 +1,48 @@
+use std::process::Command;
+use std::{env, fs, path::PathBuf};
+
+use protox::Compiler;
+use protox::prost::Message;
+
+fn main() -> Result<(), std::io::Error> {
+ {
+ let output = Command::new("git").args(["rev-parse", "HEAD"]).output();
+
+ let sha = match output {
+ Ok(sha) => String::from_utf8(sha.stdout).unwrap(),
+ Err(_) => String::from("NO_GIT"),
+ };
+
+ println!("cargo:rustc-env=GIT_HASH={sha}");
+ }
+
+ {
+ let proto_paths = [
+ "proto/history.proto",
+ "proto/search.proto",
+ "proto/control.proto",
+ "proto/semantic.proto",
+ ];
+ let proto_include_dirs = ["proto"];
+
+ let file_descriptor_set = Compiler::new(proto_include_dirs)
+ .map_err(std::io::Error::other)?
+ .include_source_info(true)
+ .include_imports(true)
+ .open_files(proto_paths)
+ .map_err(std::io::Error::other)?
+ .file_descriptor_set();
+
+ let file_descriptor_path = PathBuf::from(env::var_os("OUT_DIR").expect("OUT_DIR not set"))
+ .join("file_descriptor_set.bin");
+ fs::write(&file_descriptor_path, file_descriptor_set.encode_to_vec()).unwrap();
+
+ tonic_prost_build::configure()
+ .build_server(true)
+ .file_descriptor_set_path(&file_descriptor_path)
+ .skip_protoc_run()
+ .compile_protos(&proto_paths, &proto_include_dirs)?;
+ }
+
+ Ok(())
+}
diff --git a/crates/turtle/db/client-meta-migrations/20260203030924_create_meta.sql b/crates/daemon/db/client-meta-migrations/20260203030924_create_meta.sql
index 26c3c142..26c3c142 100644
--- a/crates/turtle/db/client-meta-migrations/20260203030924_create_meta.sql
+++ b/crates/daemon/db/client-meta-migrations/20260203030924_create_meta.sql
diff --git a/crates/turtle/db/client-migrations/20210422143411_create_history.sql b/crates/daemon/db/client-migrations/20210422143411_create_history.sql
index 1f3f8686..1f3f8686 100644
--- a/crates/turtle/db/client-migrations/20210422143411_create_history.sql
+++ b/crates/daemon/db/client-migrations/20210422143411_create_history.sql
diff --git a/crates/turtle/db/client-migrations/20220505083406_create-events.sql b/crates/daemon/db/client-migrations/20220505083406_create-events.sql
index f6cafeba..f6cafeba 100644
--- a/crates/turtle/db/client-migrations/20220505083406_create-events.sql
+++ b/crates/daemon/db/client-migrations/20220505083406_create-events.sql
diff --git a/crates/turtle/db/client-migrations/20220806155627_interactive_search_index.sql b/crates/daemon/db/client-migrations/20220806155627_interactive_search_index.sql
index b5770e62..b5770e62 100644
--- a/crates/turtle/db/client-migrations/20220806155627_interactive_search_index.sql
+++ b/crates/daemon/db/client-migrations/20220806155627_interactive_search_index.sql
diff --git a/crates/turtle/db/client-migrations/20230315220114_drop-events.sql b/crates/daemon/db/client-migrations/20230315220114_drop-events.sql
index fe3cae17..fe3cae17 100644
--- a/crates/turtle/db/client-migrations/20230315220114_drop-events.sql
+++ b/crates/daemon/db/client-migrations/20230315220114_drop-events.sql
diff --git a/crates/turtle/db/client-migrations/20230319185725_deleted_at.sql b/crates/daemon/db/client-migrations/20230319185725_deleted_at.sql
index 6c422abc..6c422abc 100644
--- a/crates/turtle/db/client-migrations/20230319185725_deleted_at.sql
+++ b/crates/daemon/db/client-migrations/20230319185725_deleted_at.sql
diff --git a/crates/turtle/db/client-migrations/20260224000100_history_author_intent.sql b/crates/daemon/db/client-migrations/20260224000100_history_author_intent.sql
index 2bed17e9..2bed17e9 100644
--- a/crates/turtle/db/client-migrations/20260224000100_history_author_intent.sql
+++ b/crates/daemon/db/client-migrations/20260224000100_history_author_intent.sql
diff --git a/crates/turtle/db/client-record-migrations/20230531212437_create-records.sql b/crates/daemon/db/client-record-migrations/20230531212437_create-records.sql
index 4f4b304a..4f4b304a 100644
--- a/crates/turtle/db/client-record-migrations/20230531212437_create-records.sql
+++ b/crates/daemon/db/client-record-migrations/20230531212437_create-records.sql
diff --git a/crates/turtle/db/client-record-migrations/20231127090831_create-store.sql b/crates/daemon/db/client-record-migrations/20231127090831_create-store.sql
index 53d78860..53d78860 100644
--- a/crates/turtle/db/client-record-migrations/20231127090831_create-store.sql
+++ b/crates/daemon/db/client-record-migrations/20231127090831_create-store.sql
diff --git a/crates/turtle/proto/control.proto b/crates/daemon/proto/control.proto
index 06347902..06347902 100644
--- a/crates/turtle/proto/control.proto
+++ b/crates/daemon/proto/control.proto
diff --git a/crates/turtle/proto/history.proto b/crates/daemon/proto/history.proto
index 59c12471..59c12471 100644
--- a/crates/turtle/proto/history.proto
+++ b/crates/daemon/proto/history.proto
diff --git a/crates/turtle/proto/search.proto b/crates/daemon/proto/search.proto
index 6b84acbd..6b84acbd 100644
--- a/crates/turtle/proto/search.proto
+++ b/crates/daemon/proto/search.proto
diff --git a/crates/turtle/proto/semantic.proto b/crates/daemon/proto/semantic.proto
index 07e550c8..07e550c8 100644
--- a/crates/turtle/proto/semantic.proto
+++ b/crates/daemon/proto/semantic.proto
diff --git a/crates/turtle/src/atuin_daemon/client.rs b/crates/daemon/src/client.rs
index 2ea7ffc5..2ea7ffc5 100644
--- a/crates/turtle/src/atuin_daemon/client.rs
+++ b/crates/daemon/src/client.rs
diff --git a/crates/turtle/src/atuin_daemon/components/history.rs b/crates/daemon/src/components/history.rs
index b4f91b06..b4f91b06 100644
--- a/crates/turtle/src/atuin_daemon/components/history.rs
+++ b/crates/daemon/src/components/history.rs
diff --git a/crates/turtle/src/atuin_daemon/components/mod.rs b/crates/daemon/src/components/mod.rs
index 5a93fbc1..5a93fbc1 100644
--- a/crates/turtle/src/atuin_daemon/components/mod.rs
+++ b/crates/daemon/src/components/mod.rs
diff --git a/crates/turtle/src/atuin_daemon/components/search.rs b/crates/daemon/src/components/search.rs
index bcd60cc4..bcd60cc4 100644
--- a/crates/turtle/src/atuin_daemon/components/search.rs
+++ b/crates/daemon/src/components/search.rs
diff --git a/crates/turtle/src/atuin_daemon/components/semantic.rs b/crates/daemon/src/components/semantic.rs
index e1d376de..e1d376de 100644
--- a/crates/turtle/src/atuin_daemon/components/semantic.rs
+++ b/crates/daemon/src/components/semantic.rs
diff --git a/crates/turtle/src/atuin_daemon/components/sync.rs b/crates/daemon/src/components/sync.rs
index 20d49839..20d49839 100644
--- a/crates/turtle/src/atuin_daemon/components/sync.rs
+++ b/crates/daemon/src/components/sync.rs
diff --git a/crates/turtle/src/atuin_daemon/control/mod.rs b/crates/daemon/src/control/mod.rs
index 79398d61..79398d61 100644
--- a/crates/turtle/src/atuin_daemon/control/mod.rs
+++ b/crates/daemon/src/control/mod.rs
diff --git a/crates/turtle/src/atuin_daemon/daemon.rs b/crates/daemon/src/daemon.rs
index 80aaeef8..80aaeef8 100644
--- a/crates/turtle/src/atuin_daemon/daemon.rs
+++ b/crates/daemon/src/daemon.rs
diff --git a/crates/turtle/src/atuin_daemon/events.rs b/crates/daemon/src/events.rs
index d379277d..d379277d 100644
--- a/crates/turtle/src/atuin_daemon/events.rs
+++ b/crates/daemon/src/events.rs
diff --git a/crates/turtle/src/atuin_daemon/generated.rs b/crates/daemon/src/generated.rs
index a3ea4d9d..a3ea4d9d 100644
--- a/crates/turtle/src/atuin_daemon/generated.rs
+++ b/crates/daemon/src/generated.rs
diff --git a/crates/turtle/src/atuin_daemon/mod.rs b/crates/daemon/src/lib.rs
index 5f0f489e..5f0f489e 100644
--- a/crates/turtle/src/atuin_daemon/mod.rs
+++ b/crates/daemon/src/lib.rs
diff --git a/crates/turtle/src/atuin_daemon/search/mod.rs b/crates/daemon/src/search/mod.rs
index 02c79c9c..02c79c9c 100644
--- a/crates/turtle/src/atuin_daemon/search/mod.rs
+++ b/crates/daemon/src/search/mod.rs
diff --git a/crates/turtle/src/atuin_daemon/server.rs b/crates/daemon/src/server.rs
index 36954cca..36954cca 100644
--- a/crates/turtle/src/atuin_daemon/server.rs
+++ b/crates/daemon/src/server.rs
diff --git a/crates/server/Cargo.toml b/crates/server/Cargo.toml
new file mode 100644
index 00000000..982f32b1
--- /dev/null
+++ b/crates/server/Cargo.toml
@@ -0,0 +1,103 @@
+[package]
+name = "turtle-server"
+edition = "2024"
+description = "sync server for turtle history db"
+readme = "./README.md"
+
+rust-version = { workspace = true }
+version = { workspace = true }
+authors = { workspace = true }
+license = { workspace = true }
+homepage = { workspace = true }
+repository = { workspace = true }
+
+[dependencies]
+async-trait = "0.1.58"
+atuin-nucleo-matcher = { workspace = true }
+atuin-nucleo = { workspace = true }
+axum = "0.8"
+base64 = "0.22"
+clap = { version = "4.5.7", features = ["derive"] }
+clap_complete = "4.5.8"
+clap_complete_nushell = "4.5.4"
+colored = "2.0.4"
+config = { version = "0.15.8", default-features = false, features = ["toml"] }
+crossterm = {version = "0.29.0", features = ["use-dev-tty", "serde"] }
+crypto_secretbox = "0.1.1"
+dashmap = "6.1.0"
+directories = "6.0.0"
+eyre = "0.6"
+fs-err = "3.1"
+fs4 = "0.13.1"
+fuzzy-matcher = "0.3.7"
+hyper-util = "0.1"
+indicatif = "0.18.0"
+interim = { version = "0.2.0", features = ["time_0_3"] }
+itertools = "0.14.0"
+lasso = { version = "0.7", features = ["multi-threaded"] }
+log = "0.4"
+metrics = "0.24"
+metrics-exporter-prometheus = { version = "0.18", default-features = false }
+minspan = "0.1.5"
+norm = { version = "0.1.1", features = ["fzf-v2"] }
+notify = "7"
+prost = "0.14"
+rand = { version = "0.8.5", features = ["std"] }
+ratatui = "0.30.0"
+regex = "1.10.5"
+reqwest = { version = "0.13", features = ["json", "rustls-no-provider", "stream"], default-features = false }
+rmp = { version = "0.8.14" }
+runtime-format = "0.1.3"
+rustix = { version = "1.1.4", features = ["process", "fs"] }
+rustls = { version = "0.23", default-features = false, features = [ "ring", "std", "tls12", ] }
+rusty_paserk = { version = "0.5.0", default-features = false, features = [ "v4", "serde", ] }
+rusty_paseto = { version = "0.8.0", default-features = false }
+semver = "1.0.20"
+serde = { version = "1.0.202", features = ["derive"] }
+serde_json = "1.0.119"
+serde_regex = "1.1.0"
+serde_with = "3.8.1"
+shellexpand = "3"
+sql-builder = "3"
+sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "time", "postgres", "uuid", "sqlite", "regexp"] }
+thiserror = "2"
+time = { version = "0.3.47", features = [ "serde-human-readable", "macros", "local-offset", "macros", "formatting", "parsing"] }
+tokio = { version = "1", features = ["full"] }
+tokio-stream = { version = "0.1.14", features = ["net"] }
+toml_edit = "0.25.4"
+tonic = "0.14"
+tonic-prost = "0.14"
+tower = "0.5"
+tower-http = { version = "0.6", features = ["trace"] }
+tracing = "0.1"
+tracing-appender = "0.2"
+tracing-subscriber = { version = "0.3", features = ["ansi", "fmt", "registry", "env-filter", "json"] }
+typed-builder = "0.18.2"
+unicode-segmentation = "1.11.0"
+unicode-width = "0.2"
+url = "2.5.2"
+uuid = { version = "1.9", features = ["v4", "v7", "serde"] }
+vt100 = "0.16"
+whoami = "2.1.0"
+
+[target.'cfg(target_os = "linux")'.dependencies]
+arboard = { version = "3.4", default-features = false, features = [ "wayland-data-control", ] }
+listenfd = "1.0.1"
+
+[target.'cfg(unix)'.dependencies]
+daemonize = "0.5.0"
+portable-pty = "0.9"
+signal-hook = "0.3"
+
+[dev-dependencies]
+tokio = { version = "1", features = ["full"] }
+
+[build-dependencies]
+protox = "0.9"
+tonic-prost-build = "0.14"
+
+[package.metadata.docs.rs]
+all-features = true
+
+[lints]
+workspace = true
diff --git a/crates/turtle/db/server-pg-migrations/20210425153745_create_history.sql b/crates/server/db/server-pg-migrations/20210425153745_create_history.sql
index 2c2d17b0..2c2d17b0 100644
--- a/crates/turtle/db/server-pg-migrations/20210425153745_create_history.sql
+++ b/crates/server/db/server-pg-migrations/20210425153745_create_history.sql
diff --git a/crates/turtle/db/server-pg-migrations/20210425153757_create_users.sql b/crates/server/db/server-pg-migrations/20210425153757_create_users.sql
index a25dcced..a25dcced 100644
--- a/crates/turtle/db/server-pg-migrations/20210425153757_create_users.sql
+++ b/crates/server/db/server-pg-migrations/20210425153757_create_users.sql
diff --git a/crates/turtle/db/server-pg-migrations/20210425153800_create_sessions.sql b/crates/server/db/server-pg-migrations/20210425153800_create_sessions.sql
index c2fb6559..c2fb6559 100644
--- a/crates/turtle/db/server-pg-migrations/20210425153800_create_sessions.sql
+++ b/crates/server/db/server-pg-migrations/20210425153800_create_sessions.sql
diff --git a/crates/turtle/db/server-pg-migrations/20220419082412_add_count_trigger.sql b/crates/server/db/server-pg-migrations/20220419082412_add_count_trigger.sql
index dd1afa88..dd1afa88 100644
--- a/crates/turtle/db/server-pg-migrations/20220419082412_add_count_trigger.sql
+++ b/crates/server/db/server-pg-migrations/20220419082412_add_count_trigger.sql
diff --git a/crates/turtle/db/server-pg-migrations/20220421073605_fix_count_trigger_delete.sql b/crates/server/db/server-pg-migrations/20220421073605_fix_count_trigger_delete.sql
index 6198f300..6198f300 100644
--- a/crates/turtle/db/server-pg-migrations/20220421073605_fix_count_trigger_delete.sql
+++ b/crates/server/db/server-pg-migrations/20220421073605_fix_count_trigger_delete.sql
diff --git a/crates/turtle/db/server-pg-migrations/20220421174016_larger-commands.sql b/crates/server/db/server-pg-migrations/20220421174016_larger-commands.sql
index 0ac43433..0ac43433 100644
--- a/crates/turtle/db/server-pg-migrations/20220421174016_larger-commands.sql
+++ b/crates/server/db/server-pg-migrations/20220421174016_larger-commands.sql
diff --git a/crates/turtle/db/server-pg-migrations/20220426172813_user-created-at.sql b/crates/server/db/server-pg-migrations/20220426172813_user-created-at.sql
index a9138194..a9138194 100644
--- a/crates/turtle/db/server-pg-migrations/20220426172813_user-created-at.sql
+++ b/crates/server/db/server-pg-migrations/20220426172813_user-created-at.sql
diff --git a/crates/turtle/db/server-pg-migrations/20220505082442_create-events.sql b/crates/server/db/server-pg-migrations/20220505082442_create-events.sql
index 57e16ec7..57e16ec7 100644
--- a/crates/turtle/db/server-pg-migrations/20220505082442_create-events.sql
+++ b/crates/server/db/server-pg-migrations/20220505082442_create-events.sql
diff --git a/crates/turtle/db/server-pg-migrations/20220610074049_history-length.sql b/crates/server/db/server-pg-migrations/20220610074049_history-length.sql
index b1c23016..b1c23016 100644
--- a/crates/turtle/db/server-pg-migrations/20220610074049_history-length.sql
+++ b/crates/server/db/server-pg-migrations/20220610074049_history-length.sql
diff --git a/crates/turtle/db/server-pg-migrations/20230315220537_drop-events.sql b/crates/server/db/server-pg-migrations/20230315220537_drop-events.sql
index fe3cae17..fe3cae17 100644
--- a/crates/turtle/db/server-pg-migrations/20230315220537_drop-events.sql
+++ b/crates/server/db/server-pg-migrations/20230315220537_drop-events.sql
diff --git a/crates/turtle/db/server-pg-migrations/20230315224203_create-deleted.sql b/crates/server/db/server-pg-migrations/20230315224203_create-deleted.sql
index 9a9e6263..9a9e6263 100644
--- a/crates/turtle/db/server-pg-migrations/20230315224203_create-deleted.sql
+++ b/crates/server/db/server-pg-migrations/20230315224203_create-deleted.sql
diff --git a/crates/turtle/db/server-pg-migrations/20230515221038_trigger-delete-only.sql b/crates/server/db/server-pg-migrations/20230515221038_trigger-delete-only.sql
index 3d0bba52..3d0bba52 100644
--- a/crates/turtle/db/server-pg-migrations/20230515221038_trigger-delete-only.sql
+++ b/crates/server/db/server-pg-migrations/20230515221038_trigger-delete-only.sql
diff --git a/crates/turtle/db/server-pg-migrations/20230623070418_records.sql b/crates/server/db/server-pg-migrations/20230623070418_records.sql
index a3e5de2e..a3e5de2e 100644
--- a/crates/turtle/db/server-pg-migrations/20230623070418_records.sql
+++ b/crates/server/db/server-pg-migrations/20230623070418_records.sql
diff --git a/crates/turtle/db/server-pg-migrations/20231202170508_create-store.sql b/crates/server/db/server-pg-migrations/20231202170508_create-store.sql
index ffb57966..ffb57966 100644
--- a/crates/turtle/db/server-pg-migrations/20231202170508_create-store.sql
+++ b/crates/server/db/server-pg-migrations/20231202170508_create-store.sql
diff --git a/crates/turtle/db/server-pg-migrations/20231203124112_create-store-idx.sql b/crates/server/db/server-pg-migrations/20231203124112_create-store-idx.sql
index 56d67145..56d67145 100644
--- a/crates/turtle/db/server-pg-migrations/20231203124112_create-store-idx.sql
+++ b/crates/server/db/server-pg-migrations/20231203124112_create-store-idx.sql
diff --git a/crates/turtle/db/server-pg-migrations/20240108124837_drop-some-defaults.sql b/crates/server/db/server-pg-migrations/20240108124837_drop-some-defaults.sql
index ad2af5a1..ad2af5a1 100644
--- a/crates/turtle/db/server-pg-migrations/20240108124837_drop-some-defaults.sql
+++ b/crates/server/db/server-pg-migrations/20240108124837_drop-some-defaults.sql
diff --git a/crates/turtle/db/server-pg-migrations/20240614104159_idx-cache.sql b/crates/server/db/server-pg-migrations/20240614104159_idx-cache.sql
index 12bbbecc..12bbbecc 100644
--- a/crates/turtle/db/server-pg-migrations/20240614104159_idx-cache.sql
+++ b/crates/server/db/server-pg-migrations/20240614104159_idx-cache.sql
diff --git a/crates/turtle/db/server-pg-migrations/20240621110731_user-verified.sql b/crates/server/db/server-pg-migrations/20240621110731_user-verified.sql
index 6eba02ec..6eba02ec 100644
--- a/crates/turtle/db/server-pg-migrations/20240621110731_user-verified.sql
+++ b/crates/server/db/server-pg-migrations/20240621110731_user-verified.sql
diff --git a/crates/turtle/db/server-pg-migrations/20240702094825_idx_cache_index.sql b/crates/server/db/server-pg-migrations/20240702094825_idx_cache_index.sql
index d1a7b194..d1a7b194 100644
--- a/crates/turtle/db/server-pg-migrations/20240702094825_idx_cache_index.sql
+++ b/crates/server/db/server-pg-migrations/20240702094825_idx_cache_index.sql
diff --git a/crates/turtle/db/server-pg-migrations/20260127000000_remove-email-verification.sql b/crates/server/db/server-pg-migrations/20260127000000_remove-email-verification.sql
index 15309920..15309920 100644
--- a/crates/turtle/db/server-pg-migrations/20260127000000_remove-email-verification.sql
+++ b/crates/server/db/server-pg-migrations/20260127000000_remove-email-verification.sql
diff --git a/crates/turtle/db/server-pg-migrations/20260611222503_make_user-id_an_uuid.sql b/crates/server/db/server-pg-migrations/20260611222503_make_user-id_an_uuid.sql
index d31c23e2..d31c23e2 100644
--- a/crates/turtle/db/server-pg-migrations/20260611222503_make_user-id_an_uuid.sql
+++ b/crates/server/db/server-pg-migrations/20260611222503_make_user-id_an_uuid.sql
diff --git a/crates/turtle/src/atuin_server/database/db/mod.rs b/crates/server/src/database/db/mod.rs
index 77bd0c61..77bd0c61 100644
--- a/crates/turtle/src/atuin_server/database/db/mod.rs
+++ b/crates/server/src/database/db/mod.rs
diff --git a/crates/turtle/src/atuin_server/database/db/wrappers.rs b/crates/server/src/database/db/wrappers.rs
index 0315e331..0315e331 100644
--- a/crates/turtle/src/atuin_server/database/db/wrappers.rs
+++ b/crates/server/src/database/db/wrappers.rs
diff --git a/crates/turtle/src/atuin_server/database/mod.rs b/crates/server/src/database/mod.rs
index 43fe5c3b..43fe5c3b 100644
--- a/crates/turtle/src/atuin_server/database/mod.rs
+++ b/crates/server/src/database/mod.rs
diff --git a/crates/turtle/src/atuin_server/database/models.rs b/crates/server/src/database/models.rs
index 3fa6f471..3fa6f471 100644
--- a/crates/turtle/src/atuin_server/database/models.rs
+++ b/crates/server/src/database/models.rs
diff --git a/crates/turtle/src/atuin_server/handlers/mod.rs b/crates/server/src/handlers/mod.rs
index b73df27b..c4332f80 100644
--- a/crates/turtle/src/atuin_server/handlers/mod.rs
+++ b/crates/server/src/handlers/mod.rs
@@ -1,7 +1,7 @@
use crate::atuin_common::api::{ErrorResponse, IndexResponse};
use axum::{Json, extract::State, http, response::IntoResponse};
-use crate::atuin_server::router::AppState;
+use crate::router::AppState;
pub(crate) mod v0;
diff --git a/crates/turtle/src/atuin_server/handlers/v0/mod.rs b/crates/server/src/handlers/v0/mod.rs
index 78fb47b8..78fb47b8 100644
--- a/crates/turtle/src/atuin_server/handlers/v0/mod.rs
+++ b/crates/server/src/handlers/v0/mod.rs
diff --git a/crates/turtle/src/atuin_server/handlers/v0/record.rs b/crates/server/src/handlers/v0/record.rs
index 9350e1c8..0381ded8 100644
--- a/crates/turtle/src/atuin_server/handlers/v0/record.rs
+++ b/crates/server/src/handlers/v0/record.rs
@@ -3,7 +3,7 @@ use metrics::counter;
use serde::Deserialize;
use tracing::{error, instrument};
-use crate::atuin_server::{
+use crate::{
handlers::{ErrorResponse, ErrorResponseStatus, RespExt},
router::{AppState, UserAuth},
};
diff --git a/crates/turtle/src/atuin_server/mod.rs b/crates/server/src/lib.rs
index a4b10acf..a4b10acf 100644
--- a/crates/turtle/src/atuin_server/mod.rs
+++ b/crates/server/src/lib.rs
diff --git a/crates/turtle/src/atuin_server/metrics.rs b/crates/server/src/metrics.rs
index 6380bef1..6380bef1 100644
--- a/crates/turtle/src/atuin_server/metrics.rs
+++ b/crates/server/src/metrics.rs
diff --git a/crates/turtle/src/atuin_server/router.rs b/crates/server/src/router.rs
index d6fe9482..2a5c5f15 100644
--- a/crates/turtle/src/atuin_server/router.rs
+++ b/crates/server/src/router.rs
@@ -16,7 +16,7 @@ use tower_http::trace::TraceLayer;
use uuid::Uuid;
use super::handlers;
-use crate::atuin_server::{
+use crate::{
handlers::{ErrorResponseStatus, RespExt},
metrics,
settings::Settings,
diff --git a/crates/turtle/src/atuin_server/settings.rs b/crates/server/src/settings.rs
index 73fc5e42..6a32fb9b 100644
--- a/crates/turtle/src/atuin_server/settings.rs
+++ b/crates/server/src/settings.rs
@@ -6,7 +6,7 @@ use fs_err::create_dir_all;
use serde::{Deserialize, Serialize};
use tracing::info;
-use crate::atuin_server::database::DbSettings;
+use crate::database::DbSettings;
#[derive(Clone, Debug, Deserialize, Serialize)]
pub(crate) struct Metrics {
@@ -50,18 +50,6 @@ pub(crate) struct Settings {
impl Settings {
pub(crate) fn new() -> Result<Self> {
- let mut config_file = std::env::var("ATUIN_CONFIG_DIR").map_or_else(
- |_| {
- let mut config_file = PathBuf::new();
- let config_dir = crate::atuin_common::utils::config_dir();
- config_file.push(config_dir);
- config_file
- },
- PathBuf::from,
- );
-
- config_file.push("server.toml");
-
// create the config file if it does not exist
let mut config_builder = Config::builder()
.set_default("host", "127.0.0.1")?
@@ -79,23 +67,25 @@ impl Settings {
.separator("__"),
);
- config_builder = if config_file.exists() {
- config_builder.add_source(ConfigFile::new(
- config_file.to_str().unwrap(),
- FileFormat::Toml,
- ))
- } else {
- // TODO(@bpeetz): Rework the config handling, so that we can actually auto-write a
- // file with defaults. <2026-06-13>
- create_dir_all(config_file.parent().unwrap())?;
+ if let Ok(mut config_file) = std::env::var("TURTLE_SERVER_CONFIG").map(PathBuf::from) {
+ config_builder = if config_file.exists() {
+ config_builder.add_source(ConfigFile::new(
+ config_file.to_str().unwrap(),
+ FileFormat::Toml,
+ ))
+ } else {
+ // TODO(@bpeetz): Rework the config handling, so that we can actually auto-write a
+ // file with defaults. <2026-06-13>
+ create_dir_all(config_file.parent().unwrap())?;
- info!(
- "No config file at: `{}`. Not adding one.",
- config_file.display()
- );
+ info!(
+ "No config file at: `{}`. Not adding one.",
+ config_file.display()
+ );
- config_builder
- };
+ config_builder
+ };
+ }
let config = config_builder.build()?;
diff --git a/crates/turtle/Cargo.toml b/crates/turtle/Cargo.toml
index 26ee6771..3595008d 100644
--- a/crates/turtle/Cargo.toml
+++ b/crates/turtle/Cargo.toml
@@ -1,7 +1,7 @@
[package]
-name = "atuin"
+name = "turtle"
edition = "2024"
-description = "atuin - magical shell history"
+description = "turtle - library for sqlite shell history"
readme = "./README.md"
rust-version = { workspace = true }
@@ -13,8 +13,6 @@ repository = { workspace = true }
[dependencies]
async-trait = "0.1.58"
-atuin-nucleo-matcher = { workspace = true }
-atuin-nucleo = { workspace = true }
axum = "0.8"
base64 = "0.22"
clap = { version = "4.5.7", features = ["derive"] }
diff --git a/crates/turtle/src/lib.rs b/crates/turtle/src/lib.rs
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/crates/turtle/src/lib.rs