A local-first private AI assistant for everyday use. Runs on-device models with encrypted P2P sync, and supports sharing chats publicly on ATProto.
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: Added path unavailability during installation

- Checks if INSTALLER_PATH is in $PATH, if not alert user.

madclaws 883a0baa d1a114f4

+58 -40
+24 -6
scripts/install.sh
··· 1 1 #!/usr/bin/env bash 2 2 set -euo pipefail 3 3 4 - ENV="dev" # prod is another env, try taking it from github env 5 - REPO="tilesprivacy/tiles" 6 - # VERSION="${TILES_VERSION:-latest}" 7 - VERSION="0.4.1" 4 + ENV="prod" # prod is another env, try taking it from github env 5 + REPO="tilesprivacy/tiles" 6 + # VERSION="${TILES_VERSION:-latest}" 7 + VERSION="0.4.1" 8 8 INSTALL_DIR="$HOME/.local/bin" # CLI install location 9 9 SERVER_DIR="$HOME/.local/lib/tiles/server" # Python server folder 10 10 MODELFILE_DIR="$HOME/.local/lib/tiles/modelfiles" # Python server folder ··· 15 15 16 16 log() { echo -e "\033[1;36m$*\033[0m"; } 17 17 err() { echo -e "\033[1;31m$*\033[0m" >&2; exit 1; } 18 + warn() { 19 + printf "\033[1;33m%s\033[0m\n" "$*" 20 + } 18 21 19 22 log "⬇️ Downloading Tiles (${VERSION}) for ${ARCH}-${OS}..." 20 23 ··· 24 27 curl -fL -o "${TMPDIR}/tiles.tar.gz" "$TAR_URL" 25 28 else 26 29 # Installer suppose to ran from tiles root folder after running the bundler 27 - mv "dist/tiles-v${VERSION}-${ARCH}-${OS}.tar.gz" "${TMPDIR}/tiles.tar.gz" 30 + mv "dist/tiles-v${VERSION}-${ARCH}-${OS}.tar.gz" "${TMPDIR}/tiles.tar.gz" 28 31 fi 29 32 30 33 echo "⬇️ Installing tiles..." ··· 66 69 67 70 log "✅ Tiles installed successfully!" 68 71 log "" 69 - log "👉 Make sure ${INSTALL_DIR} is in your PATH." 72 + 73 + case ":$PATH:" in 74 + *":$INSTALL_DIR:"*) 75 + echo "🚀 Start Tiles by running \"tiles\"" 76 + ;; 77 + *) 78 + echo "" 79 + warn "⚠️ $INSTALL_DIR is not in your PATH." 80 + echo "" 81 + echo "ℹ️ To use Tiles, add this line to your shell configuration(ex: ~/.bashrc, ~/.zsrhc)" 82 + echo "" 83 + echo " export PATH=$INSTALL_DIR:\$PATH\"" 84 + echo "" 85 + echo "🚀 Then restart your terminal..." 86 + ;; 87 + esac
+2 -2
server/stack/requirements/app-server/packages-app-server.txt
··· 3 3 annotated-types==0.7.0 4 4 anyio==4.12.1 5 5 black==25.9.0 6 - certifi==2026.1.4 6 + certifi==2026.2.25 7 7 charset-normalizer==3.4.4 8 8 click==8.3.1 9 9 fastapi==0.119.0 10 10 filelock==3.24.3 11 11 fsspec==2026.2.0 12 12 h11==0.16.0 13 - hf-xet==1.2.0 13 + hf-xet==1.3.1 14 14 huggingface-hub==0.35.0 15 15 idna==3.11 16 16 jinja2==3.1.6
+2 -2
server/stack/requirements/app-server/pylock.app-server.meta.json
··· 1 1 { 2 2 "lock_input_hash": "sha256:182c606e20dd957344cc3adc54391f47f4b6dd80b4481ddf219392a7aad6e0ce", 3 3 "lock_version": 1, 4 - "locked_at": "2026-02-22T14:49:56.186836+00:00", 4 + "locked_at": "2026-02-25T13:24:58.188888+00:00", 5 5 "other_inputs_hash": "sha256:63b3c2cfe2ec414938e81dace7aac779c7b902bae681618cd8827e9f16880985", 6 - "requirements_hash": "sha256:5faf849cee4202eb30bd8411e1bb389777ccc019f6f09fda708be492eab40413", 6 + "requirements_hash": "sha256:dc0d11b6a0897aff3ae64d3bda37f52b66dd75932f713491457eeea1b68c3fde", 7 7 "version_inputs_hash": "sha256:58db986b7cd72eeded675f7c9afd8138fe024fb51451131b5562922bbde3cf43" 8 8 }
+30 -30
server/stack/requirements/app-server/pylock.app-server.toml
··· 62 62 63 63 [[packages]] 64 64 name = "certifi" 65 - version = "2026.1.4" 65 + version = "2026.2.25" 66 66 index = "https://pypi.org/simple" 67 67 68 68 [[packages.wheels]] 69 - url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl" 70 - upload-time = 2026-01-04T02:42:40Z 71 - size = 152900 69 + url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl" 70 + upload-time = 2026-02-25T02:54:15Z 71 + size = 153684 72 72 73 73 [packages.wheels.hashes] 74 - sha256 = "9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c" 74 + sha256 = "027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa" 75 75 76 76 [[packages]] 77 77 name = "charset-normalizer" ··· 177 177 178 178 [[packages]] 179 179 name = "hf-xet" 180 - version = "1.2.0" 180 + version = "1.3.1" 181 181 index = "https://pypi.org/simple" 182 182 183 183 [[packages.wheels]] 184 - url = "https://files.pythonhosted.org/packages/ea/40/e2e0a7eb9a51fe8828ba2d47fe22a7e74914ea8a0db68a18c3aa7449c767/hf_xet-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl" 185 - upload-time = 2025-10-24T19:04:09Z 186 - size = 2717584 184 + url = "https://files.pythonhosted.org/packages/d4/de/72acb8d7702b3cf9b36a68e8380f3114bf04f9f21cf9e25317457fe31f00/hf_xet-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl" 185 + upload-time = 2026-02-25T00:57:39Z 186 + size = 3518075 187 187 188 188 [packages.wheels.hashes] 189 - sha256 = "b70218dd548e9840224df5638fdc94bd033552963cfa97f9170829381179c813" 189 + sha256 = "0810b69c64e96dee849036193848007f665dca2311879c9ea8693f4fc37f1795" 190 190 191 191 [[packages.wheels]] 192 - url = "https://files.pythonhosted.org/packages/a5/7d/daf7f8bc4594fdd59a8a596f9e3886133fdc68e675292218a5e4c1b7e834/hf_xet-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" 193 - upload-time = 2025-10-24T19:04:00Z 194 - size = 3315004 192 + url = "https://files.pythonhosted.org/packages/1d/5c/ed728d8530fec28da88ee882b522fccf00dc98e9d7bae4cdb0493070cb17/hf_xet-1.3.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" 193 + upload-time = 2026-02-25T00:57:32Z 194 + size = 4174369 195 195 196 196 [packages.wheels.hashes] 197 - sha256 = "7d40b18769bb9a8bc82a9ede575ce1a44c75eb80e7375a01d76259089529b5dc" 197 + sha256 = "ecd38f98e7f0f41108e30fd4a9a5553ec30cf726df7473dd3e75a1b6d56728c2" 198 198 199 199 [[packages.wheels]] 200 - url = "https://files.pythonhosted.org/packages/f0/7c/60a2756d7feec7387db3a1176c632357632fbe7849fce576c5559d4520c7/hf_xet-1.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl" 201 - upload-time = 2025-10-24T19:04:22Z 202 - size = 3503401 200 + url = "https://files.pythonhosted.org/packages/df/31/de07e26e396f46d13a09251df69df9444190e93e06a9d30d639e96c8a0ed/hf_xet-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl" 201 + upload-time = 2026-02-25T00:57:49Z 202 + size = 4390709 203 203 204 204 [packages.wheels.hashes] 205 - sha256 = "f182f264ed2acd566c514e45da9f2119110e48a87a327ca271027904c70c5832" 205 + sha256 = "b3012c0f2ce1f0863338491a2bc0fd3f84aded0e147ab25f230da1f5249547fd" 206 206 207 207 [[packages.wheels]] 208 - url = "https://files.pythonhosted.org/packages/7f/8c/c5becfa53234299bc2210ba314eaaae36c2875e0045809b82e40a9544f0c/hf_xet-1.2.0-cp37-abi3-macosx_11_0_arm64.whl" 209 - upload-time = 2025-10-24T19:04:13Z 210 - size = 2722178 208 + url = "https://files.pythonhosted.org/packages/c0/e5/a2f3eaae09da57deceb16a96ebe9ae1f6f7b9b94145a9cd3c3f994e7782a/hf_xet-1.3.1-cp37-abi3-macosx_11_0_arm64.whl" 209 + upload-time = 2026-02-25T00:57:42Z 210 + size = 3523677 211 211 212 212 [packages.wheels.hashes] 213 - sha256 = "27df617a076420d8845bea087f59303da8be17ed7ec0cd7ee3b9b9f579dff0e4" 213 + sha256 = "329c80c86f2dda776bafd2e4813a46a3ee648dce3ac0c84625902c70d7a6ddba" 214 214 215 215 [[packages.wheels]] 216 - url = "https://files.pythonhosted.org/packages/9a/92/cf3ab0b652b082e66876d08da57fcc6fa2f0e6c70dfbbafbd470bb73eb47/hf_xet-1.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" 217 - upload-time = 2025-10-24T19:04:03Z 218 - size = 3320214 216 + url = "https://files.pythonhosted.org/packages/61/cd/acbbf9e51f17d8cef2630e61741228e12d4050716619353efc1ac119f902/hf_xet-1.3.1-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" 217 + upload-time = 2026-02-25T00:57:35Z 218 + size = 4178557 219 219 220 220 [packages.wheels.hashes] 221 - sha256 = "3651fd5bfe0281951b988c0facbe726aa5e347b103a675f49a3fa8144c7968fd" 221 + sha256 = "2973c3ff594c3a8da890836308cae1444c8af113c6f10fe6824575ddbc37eca7" 222 222 223 223 [[packages.wheels]] 224 - url = "https://files.pythonhosted.org/packages/92/68/89ac4e5b12a9ff6286a12174c8538a5930e2ed662091dd2572bbe0a18c8a/hf_xet-1.2.0-cp37-abi3-musllinux_1_2_x86_64.whl" 225 - upload-time = 2025-10-24T19:04:26Z 226 - size = 3508920 224 + url = "https://files.pythonhosted.org/packages/08/9c/b667098a636a88358dbeb2caf90e3cb9e4b961f61f6c55bb312793424def/hf_xet-1.3.1-cp37-abi3-musllinux_1_2_x86_64.whl" 225 + upload-time = 2026-02-25T00:57:52Z 226 + size = 4395743 227 227 228 228 [packages.wheels.hashes] 229 - sha256 = "a55558084c16b09b5ed32ab9ed38421e2d87cf3f1f89815764d1177081b99865" 229 + sha256 = "e5063789c9d21f51e9ed4edbee8539655d3486e9cad37e96b7af967da20e8b16" 230 230 231 231 [[packages]] 232 232 name = "huggingface-hub"