# Puter.js Documentation Build serverless applications with cloud storage, databases, and AI using Puter.js. > A complete context of Puter.js is available at https://docs.puter.com/prompt.md ## Overview - [Getting Started](https://docs.puter.com/getting-started/index.md): Get started with Puter.js for building your applications. No backend code, just add Puter.js and you're ready to start. - [Supported Platforms](https://docs.puter.com/supported-platforms/index.md): Use Puter.js on any platform with JavaScript support, including websites, Puter Apps, Node.js, and Serverless Workers. - [Security and Permissions](https://docs.puter.com/security/index.md): Learn how Puter.js handles authentication and manage app access to user data. - [User-Pays Model](https://docs.puter.com/user-pays-model/index.md): Discover Puter.js User-Pays Model and how it allows you to build applications without worrying about infrastructure costs. - [Examples](https://docs.puter.com/examples/index.md): Find examples of serverless applications built with Puter.js ## AI - [AI](https://docs.puter.com/AI/index.md): Add artificial intelligence capabilities to your applications with Puter.js AI feature. - [puter.ai.chat()](https://docs.puter.com/AI/chat/index.md): Chat with AI models, analyze images, and perform function calls using 500+ models from OpenAI, Anthropic, Google, and more. - [puter.ai.txt2img()](https://docs.puter.com/AI/txt2img/index.md): Generate images from text prompts using AI models like GPT Image, Nano Banana, and DALL-E 3. - [puter.ai.txt2speech()](https://docs.puter.com/AI/txt2speech/index.md): Convert text to speech with AI using multiple languages, voices, and engine types. - [puter.ai.txt2vid()](https://docs.puter.com/AI/txt2vid/index.md): Generate short-form videos with OpenAI Sora models through Puter.js. - [puter.ai.img2txt()](https://docs.puter.com/AI/img2txt/index.md): Extract text from images using OCR to read printed text, handwriting, and any text-based content. - [puter.ai.speech2txt()](https://docs.puter.com/AI/speech2txt/index.md): Transcribe or translate audio into text using OpenAI speech-to-text models. ## Apps - [Apps](https://docs.puter.com/Apps/index.md): Create, manage, and interact with applications in Puter desktop OS. - [puter.apps.create()](https://docs.puter.com/Apps/create/index.md): Create apps in the Puter desktop environment. - [puter.apps.list()](https://docs.puter.com/Apps/list/index.md): List all apps in your Puter account. - [puter.apps.delete()](https://docs.puter.com/Apps/delete/index.md): Delete apps from your Puter account. - [puter.apps.update()](https://docs.puter.com/Apps/update/index.md): Update app properties including name, title, icon, URL, and file associations - [puter.apps.get()](https://docs.puter.com/Apps/get/index.md): Retrieve details of your Puter app. ## Auth - [Auth](https://docs.puter.com/Auth/index.md): Authenticate users with their Puter accounts using Puter.js Auth API - [puter.auth.signIn()](https://docs.puter.com/Auth/signIn/index.md): Initiate sign in process in your application with user's Puter account. - [puter.auth.signOut()](https://docs.puter.com/Auth/signOut/index.md): Sign out the current user from your application. - [puter.auth.isSignedIn()](https://docs.puter.com/Auth/isSignedIn/index.md): Check if a user is currently signed into the application with their Puter account. - [puter.auth.getUser()](https://docs.puter.com/Auth/getUser/index.md): Retrieve the authenticated user basic information. - [puter.auth.getMonthlyUsage()](https://docs.puter.com/Auth/getMonthlyUsage/index.md): Get the user's current monthly resource usage in the Puter ecosystem. - [puter.auth.getDetailedAppUsage()](https://docs.puter.com/Auth/getDetailedAppUsage/index.md): Get detailed usage statistics for an application the user has accessed. ## Cloud Storage - [Cloud Storage](https://docs.puter.com/FS/index.md): Store and manage data in the cloud with Puter.js file system API. - [puter.fs.write()](https://docs.puter.com/FS/write/index.md): Write data to files in Puter file system. - [puter.fs.read()](https://docs.puter.com/FS/read/index.md): Read data from files in Puter file system. - [puter.fs.mkdir()](https://docs.puter.com/FS/mkdir/index.md): Create directories in Puter file system. - [puter.fs.readdir()](https://docs.puter.com/FS/readdir/index.md): List files and directories in Puter file system. - [puter.fs.rename()](https://docs.puter.com/FS/rename/index.md): Rename files or directories in Puter file system. - [puter.fs.copy()](https://docs.puter.com/FS/copy/index.md): Copy files or directories in Puter file system. - [puter.fs.move()](https://docs.puter.com/FS/move/index.md): Move files or directories to new locations in Puter file system. - [puter.fs.stat()](https://docs.puter.com/FS/stat/index.md): Get file or directory information in Puter file system. - [puter.fs.delete()](https://docs.puter.com/FS/delete/index.md): Deletes a file or directory in Puter file system. - [puter.fs.getReadURL()](https://docs.puter.com/FS/getReadURL/index.md): Generate a temporary URL to read a file in Puter file system. - [puter.fs.upload()](https://docs.puter.com/FS/upload/index.md): Upload local files to Puter file system. ## Serverless Workers - [Serverless Workers](https://docs.puter.com/Workers/index.md): Run and manage serverless JavaScript funcitons in the cloud. - [router](https://docs.puter.com/Workers/router/index.md): Handle HTTP requests with the router object with Puter Serverless Workers. - [puter.workers.create()](https://docs.puter.com/Workers/create/index.md): Create and deploy workers from JavaScript files. - [puter.workers.delete()](https://docs.puter.com/Workers/delete/index.md): Delete workers and stop their execution. - [puter.workers.list()](https://docs.puter.com/Workers/list/index.md): List all workers in your account. - [puter.workers.get()](https://docs.puter.com/Workers/get/index.md): Get information about a specific worker. - [puter.workers.exec()](https://docs.puter.com/Workers/exec/index.md): Execute workers as an authenticated user. ## Hosting - [Hosting](https://docs.puter.com/Hosting/index.md): Deploy and manage websites on Puter. - [puter.hosting.create()](https://docs.puter.com/Hosting/create/index.md): Create and host a website from a directory on Puter. - [puter.hosting.list()](https://docs.puter.com/Hosting/list/index.md): List all subdomains in your Puter account. - [puter.hosting.delete()](https://docs.puter.com/Hosting/delete/index.md): Delete a subdomain from your account. - [puter.hosting.update()](https://docs.puter.com/Hosting/update/index.md): Update a subdomain to point to a new directory. - [puter.hosting.get()](https://docs.puter.com/Hosting/get/index.md): Get information on a subdomain hosted on Puter. ## Key-Value Store - [Key-Value Store](https://docs.puter.com/KV/index.md): Store and retrieve data using key-value pairs in the cloud. - [puter.kv.set()](https://docs.puter.com/KV/set/index.md): Save or update values in key-value store. - [puter.kv.get()](https://docs.puter.com/KV/get/index.md): Get the value stored in a key from key-value store. - [puter.kv.incr()](https://docs.puter.com/KV/incr/index.md): Increment values in key-value store by a specified amount. - [puter.kv.decr()](https://docs.puter.com/KV/decr/index.md): Decrement numeric values in key-value store by a specified amount. - [puter.kv.del()](https://docs.puter.com/KV/del/index.md): Remove keys from key-value store. - [puter.kv.list()](https://docs.puter.com/KV/list/index.md): Retrieve all keys from your app's key-value store. - [puter.kv.flush()](https://docs.puter.com/KV/flush/index.md): Remove all key-value pairs from your app's store. ## Networking - [Networking](https://docs.puter.com/Networking/index.md): Establish network connections directly from the frontend without a server or proxy. - [Socket](https://docs.puter.com/Networking/Socket/index.md): Create a raw TCP socket directly in the browser. - [TLSSocket](https://docs.puter.com/Networking/TLSSocket/index.md): Create a TLS protected TCP socket connection directly in the browser. - [puter.net.fetch()](https://docs.puter.com/Networking/fetch/index.md): Fetch web resources securely without being bound by CORS restrictions. ## UI - [UI](https://docs.puter.com/UI/index.md): Create a rich UI and interactions in the Puter desktop environment. - [puter.ui.authenticateWithPuter()](https://docs.puter.com/UI/authenticateWithPuter/index.md): Presents a dialog to the user to authenticate with their Puter account. - [puter.ui.alert()](https://docs.puter.com/UI/alert/index.md): Displays an alert dialog by Puter. - [puter.ui.contextMenu()](https://docs.puter.com/UI/contextMenu/index.md): Displays a context menu at the current cursor position. - [puter.ui.createWindow()](https://docs.puter.com/UI/createWindow/index.md): Creates and displays a window. - [puter.exit()](https://docs.puter.com/UI/exit/index.md): Terminates the running application and closes its window. - [puter.ui.getLanguage()](https://docs.puter.com/UI/getLanguage/index.md): Retrieves the current language/locale code from the Puter environment. - [puter.ui.hideWindow()](https://docs.puter.com/UI/hideWindow/index.md): Hides the window of your application. - [puter.ui.launchApp()](https://docs.puter.com/UI/launchApp/index.md): Dynamically launches another app from within your app. - [puter.ui.on()](https://docs.puter.com/UI/on/index.md): Listens to broadcast events from Puter. - [puter.ui.onLaunchedWithItems()](https://docs.puter.com/UI/onLaunchedWithItems/index.md): Executes a callback function if the app is launched with items. - [puter.ui.onWindowClose()](https://docs.puter.com/UI/onWindowClose/index.md): Executes a function when the window is about to close. - [puter.ui.parentApp()](https://docs.puter.com/UI/parentApp/index.md): Obtains a connection to the app that launched this app. - [puter.ui.prompt()](https://docs.puter.com/UI/prompt/index.md): Displays a prompt dialog by Puter. - [puter.ui.setMenubar()](https://docs.puter.com/UI/setMenubar/index.md): Creates a menubar in the UI. - [puter.ui.setWindowHeight()](https://docs.puter.com/UI/setWindowHeight/index.md): Dynamically sets the height of the window. - [puter.ui.setWindowPosition()](https://docs.puter.com/UI/setWindowPosition/index.md): Sets the position of the window. - [puter.ui.setWindowSize()](https://docs.puter.com/UI/setWindowSize/index.md): Dynamically sets the width and height of the window. - [puter.ui.setWindowTitle()](https://docs.puter.com/UI/setWindowTitle/index.md): Dynamically sets the title of the window. - [puter.ui.setWindowWidth()](https://docs.puter.com/UI/setWindowWidth/index.md): Dynamically sets the width of the window. - [puter.ui.setWindowX()](https://docs.puter.com/UI/setWindowX/index.md): Sets the X position of the window. - [puter.ui.setWindowY()](https://docs.puter.com/UI/setWindowY/index.md): Sets the y position of the window. - [puter.ui.showColorPicker()](https://docs.puter.com/UI/showColorPicker/index.md): Presents a color picker dialog for selecting a color. - [puter.ui.showDirectoryPicker()](https://docs.puter.com/UI/showDirectoryPicker/index.md): Presents a directory picker dialog for selecting directories from Puter cloud storage. - [puter.ui.showFontPicker()](https://docs.puter.com/UI/showFontPicker/index.md): Presents a list of fonts for previewing and selecting. - [puter.ui.showOpenFilePicker()](https://docs.puter.com/UI/showOpenFilePicker/index.md): Presents a file picker dialog for selecting files from Puter cloud storage. - [puter.ui.showSaveFilePicker()](https://docs.puter.com/UI/showSaveFilePicker/index.md): Presents a file picker dialog for specifying where and with what name to save a file. - [puter.ui.showWindow()](https://docs.puter.com/UI/showWindow/index.md): Shows the window of your application. - [puter.ui.socialShare()](https://docs.puter.com/UI/socialShare/index.md): Presents a dialog for sharing a link on various social media platforms. - [puter.ui.wasLaunchedWithItems()](https://docs.puter.com/UI/wasLaunchedWithItems/index.md): Returns whether the app was launched to open one or more items. ## Drivers - [Drivers](https://docs.puter.com/Drivers/index.md): Interact and access various system resources with Puter drivers. - [puter.drivers.call()](https://docs.puter.com/Drivers/call/index.md): Call drivers that are not directly exposed by Puter.js high level API. ## Utilities - [Utilities](https://docs.puter.com/Utils/index.md): Helpful utility functions and properties when building with Puter.js - [puter.appID](https://docs.puter.com/Utils/appID/index.md): Returns the App ID of the running application. - [puter.env](https://docs.puter.com/Utils/env/index.md): Returns the environment in which Puter.js is being used. - [puter.print()](https://docs.puter.com/Utils/print/index.md): Prints a string by appending it to the body of the document. - [puter.randName()](https://docs.puter.com/Utils/randName/index.md): Generate a random domain-safe name. ## Objects - [Objects](https://docs.puter.com/Objects/index.md): Various object types and classes for different entities in the Puter ecosystem. - [AppConnection](https://docs.puter.com/Objects/AppConnection/index.md): Provides an interface for interaction with another app. - [App](https://docs.puter.com/Objects/app/index.md): The App object containing Puter app details. - [ChatResponse](https://docs.puter.com/Objects/chatresponse/index.md): The ChatResponse object containing AI chat response data. - [ChatResponseChunk](https://docs.puter.com/Objects/chatresponsechunk/index.md): The ChatResponseChunk object containing a chunk of streaming chat response data. - [DetailedAppUsage](https://docs.puter.com/Objects/detailedappusage/index.md): Object containing detailed resource usage statistics for a specific application. - [FSItem](https://docs.puter.com/Objects/fsitem/index.md): An FSItem object represents a file or a directory in the file system of a Puter. - [KVPair](https://docs.puter.com/Objects/kvpair/index.md): The KVPair object containing key-value pair data. - [MonthlyUsage](https://docs.puter.com/Objects/monthlyusage/index.md): Object containing user's monthly resource usage information in the Puter ecosystem. - [Speech2TxtResult](https://docs.puter.com/Objects/speech2txtresult/index.md): The Speech2TxtResult object containing speech-to-text transcription results. - [Subdomain](https://docs.puter.com/Objects/subdomain/index.md): The Subdomain object containing subdomain details. - [ToolCall](https://docs.puter.com/Objects/toolcall/index.md): The ToolCall object containing tool invocation details. - [User](https://docs.puter.com/Objects/user/index.md): The User object containing Puter user details. - [WorkerDeployment](https://docs.puter.com/Objects/workerdeployment/index.md): The WorkerDeployment object containing worker deployment result data. - [WorkerInfo](https://docs.puter.com/Objects/workerinfo/index.md): The WorkerInfo object containing worker information.