diff --git a/packages/website/src/routeTree.gen.ts b/packages/website/src/routeTree.gen.ts
index f02250c52..a12d4d08f 100644
--- a/packages/website/src/routeTree.gen.ts
+++ b/packages/website/src/routeTree.gen.ts
@@ -9,6 +9,7 @@
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
import { Route as rootRouteImport } from './routes/__root'
+import { Route as PrivacyRouteImport } from './routes/privacy'
import { Route as DocsRouteImport } from './routes/docs'
import { Route as IndexRouteImport } from './routes/index'
import { Route as DocsIndexRouteImport } from './routes/docs/index'
@@ -19,6 +20,11 @@ import { Route as DocsConfigurationRouteImport } from './routes/docs/configurati
import { Route as DocsCliRouteImport } from './routes/docs/cli'
import { Route as DocsBestPracticesRouteImport } from './routes/docs/best-practices'
+const PrivacyRoute = PrivacyRouteImport.update({
+ id: '/privacy',
+ path: '/privacy',
+ getParentRoute: () => rootRouteImport,
+} as any)
const DocsRoute = DocsRouteImport.update({
id: '/docs',
path: '/docs',
@@ -68,6 +74,7 @@ const DocsBestPracticesRoute = DocsBestPracticesRouteImport.update({
export interface FileRoutesByFullPath {
'/': typeof IndexRoute
'/docs': typeof DocsRouteWithChildren
+ '/privacy': typeof PrivacyRoute
'/docs/best-practices': typeof DocsBestPracticesRoute
'/docs/cli': typeof DocsCliRoute
'/docs/configuration': typeof DocsConfigurationRoute
@@ -78,6 +85,7 @@ export interface FileRoutesByFullPath {
}
export interface FileRoutesByTo {
'/': typeof IndexRoute
+ '/privacy': typeof PrivacyRoute
'/docs/best-practices': typeof DocsBestPracticesRoute
'/docs/cli': typeof DocsCliRoute
'/docs/configuration': typeof DocsConfigurationRoute
@@ -90,6 +98,7 @@ export interface FileRoutesById {
__root__: typeof rootRouteImport
'/': typeof IndexRoute
'/docs': typeof DocsRouteWithChildren
+ '/privacy': typeof PrivacyRoute
'/docs/best-practices': typeof DocsBestPracticesRoute
'/docs/cli': typeof DocsCliRoute
'/docs/configuration': typeof DocsConfigurationRoute
@@ -103,6 +112,7 @@ export interface FileRouteTypes {
fullPaths:
| '/'
| '/docs'
+ | '/privacy'
| '/docs/best-practices'
| '/docs/cli'
| '/docs/configuration'
@@ -113,6 +123,7 @@ export interface FileRouteTypes {
fileRoutesByTo: FileRoutesByTo
to:
| '/'
+ | '/privacy'
| '/docs/best-practices'
| '/docs/cli'
| '/docs/configuration'
@@ -124,6 +135,7 @@ export interface FileRouteTypes {
| '__root__'
| '/'
| '/docs'
+ | '/privacy'
| '/docs/best-practices'
| '/docs/cli'
| '/docs/configuration'
@@ -136,10 +148,18 @@ export interface FileRouteTypes {
export interface RootRouteChildren {
IndexRoute: typeof IndexRoute
DocsRoute: typeof DocsRouteWithChildren
+ PrivacyRoute: typeof PrivacyRoute
}
declare module '@tanstack/react-router' {
interface FileRoutesByPath {
+ '/privacy': {
+ id: '/privacy'
+ path: '/privacy'
+ fullPath: '/privacy'
+ preLoaderRoute: typeof PrivacyRouteImport
+ parentRoute: typeof rootRouteImport
+ }
'/docs': {
id: '/docs'
path: '/docs'
@@ -231,6 +251,7 @@ const DocsRouteWithChildren = DocsRoute._addFileChildren(DocsRouteChildren)
const rootRouteChildren: RootRouteChildren = {
IndexRoute: IndexRoute,
DocsRoute: DocsRouteWithChildren,
+ PrivacyRoute: PrivacyRoute,
}
export const routeTree = rootRouteImport
._addFileChildren(rootRouteChildren)
diff --git a/packages/website/src/routes/index.tsx b/packages/website/src/routes/index.tsx
index c316b2971..814c4e06e 100644
--- a/packages/website/src/routes/index.tsx
+++ b/packages/website/src/routes/index.tsx
@@ -53,6 +53,16 @@ function Home() {
+ Paseo is a self-hosted tool for managing coding agents. Your code and + data stay on your machine. +
+ +Nothing. Paseo runs on your machine and doesn't send us any data.
++ If you use the optional encrypted relay to connect your phone to your + daemon, the relay sees: +
++ All messages between your phone and daemon are end-to-end encrypted + with AES-256-GCM. The relay cannot read your messages, see your code, + or decrypt your traffic. +
++ We don't use analytics, tracking pixels, cookies, or ads. The app + doesn't phone home. +
++ Paseo wraps agent providers like Claude Code, Codex, and OpenCode. + Those tools communicate with their own APIs (Anthropic, OpenAI, etc.) + using your credentials. Paseo doesn't manage or intercept those API + calls. +
++ If you use voice features with cloud providers (OpenAI speech), your + voice data is sent to those services according to their privacy + policies. +
++ We don't have your data to sell. Paseo is self-hosted and + local-first. +
++ If you have questions about privacy, open an issue on{' '} + + GitHub + + . +
+Last updated: February 2025
+